在公用同一公网IP和端口的K8S环境中,不同域名实现不同访问需求的解决方案

目录

[1. 访问需求](#1. 访问需求)

[2. 解决方案](#2. 解决方案)

[3. 具体配置](#3. 具体配置)

[3.1 允许互联网访问的域名(a.lmzf.com)](#3.1 允许互联网访问的域名(a.lmzf.com))

[3.2 需IP白名单访问的域名(b.lmzf.com)](#3.2 需IP白名单访问的域名(b.lmzf.com))

[3.3 关键参数说明](#3.3 关键参数说明)

[3.4 测试验证](#3.4 测试验证)


1. 访问需求

在腾讯云TKE环境中,多个域名解析到同一负载均衡器(CLB),域名共用一端口(443),对域名A(a.lmzf.com允许互联网访问,对域名B(b.lmzf.com限制指定IP访问

2. 解决方案

  • 配置点:域名访问控制 (应用层)
  • 实现方式:Ingress Annotations

3. 具体配置

为需要不同访问策略的域名创建独立的Ingress资源。

3.1 允许互联网访问的域名(a.lmzf.com

复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-public
  annotations:
    kubernetes.io/ingress.class: nginx # 或使用的其他Ingress Controller
spec:
  rules:
  - host: a.lmzf.com # 互联网允许访问的域名
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-service-a 
            port:
              number: 443

3.2 需IP白名单访问的域名(b.lmzf.com

创建另一个Ingress,并使用白名单注解。

复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-restricted
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/whitelist-source-range: "5.6.7.8/32, 192.168.1.100/24" # 允许的IP段
spec:
  rules:
  - host: b.lmzf.com # 需加白访问的域名
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-service-b
            port:
              number: 443

3.3 关键参数说明

  • nginx.ingress.kubernetes.io/whitelist-source-range:此注解用于设置允许访问的源IP地址段(CIDR格式),多个IP段用英文逗号隔开。

  • kubernetes.io/ingress.class:指定处理此Ingress规则的Controller,例如nginxqcloud(本文腾讯云CLB)等。

3.4 测试验证

配置完成后,务必进行验证:

  1. 从白名单IP访问:

    • 访问 a.lmzf.com 应成功。

    • 访问 b.lmzf.com 应成功。

  2. 从非白名单IP访问:

    • 访问 a.lmzf.com 应成功。

    • 访问 b.lmzf.com 应被拒绝(返回 403 Forbidden 或连接失败)。

相关推荐
运维老郭4 小时前
Kubernetes 二进制部署完全指南:从零搭建生产级HA集群
运维·云原生·kubernetes
阿洛学长4 小时前
Kubernetes超详细教程,从零开始学习k8s,从入门到实战
k8s·ks
成为你的宁宁5 小时前
【K8S黑盒监控实践:Probe配置、Prometheus验证与Grafana可视化】
kubernetes·grafana·prometheus
成为你的宁宁5 小时前
【Prometheus Operator监控K8S Nginx】
nginx·kubernetes·prometheus
宇明一不急5 小时前
k8s headless svc
云原生·容器·kubernetes
成为你的宁宁6 小时前
【K8S使用Helm部署MySQL一主多从并集成Prometheus监控】
mysql·kubernetes·prometheus
openFuyao7 小时前
openFuyao使能灵衢超节点::让容器业务丝滑释放节点能力
容器·kubernetes·ai原生·openfuyao·多样化算力·超节点·集群软件
无聊的老谢8 小时前
Spring Cloud Alibaba 应用的容器化部署与 K8s 编排
云原生·容器·kubernetes
liux35288 小时前
Namespace 多租户隔离:K8s 资源管理的基石
docker·容器·kubernetes
没有退路那我就不要散步21 小时前
kube-proxy优化
docker·容器·kubernetes