在公用同一公网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,例如nginx、qcloud(本文腾讯云CLB)等。

3.4 测试验证

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

  1. 从白名单IP访问:

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

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

  2. 从非白名单IP访问:

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

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

相关推荐
PS测3 小时前
centos安装K8s步骤
k8s
无言听风雨丶5 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
无言听风雨丶8 小时前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
无言听风雨丶18 小时前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao19 小时前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉20 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
相思难忘成疾1 天前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
weirong1 天前
给 K8s 加一个自动值班员:分级故障自愈引擎
kubernetes
云和数据.ChenGuang1 天前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
weirong1 天前
为什么 HPA 会震荡?手写一个带冷却窗口的伸缩决策引擎
kubernetes