在公用同一公网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 或连接失败)。

相关推荐
牛奶咖啡131 天前
k8s容器编排技术实践——使用containerd作为容器运行时部署k8s集群
kubernetes·k8s的安装部署·开启系统的ipvs支持·安装containerd·containerd配置加速器·安装k8s的工具·安装calico网络插件
万里侯1 天前
云原生数据备份与恢复:保障数据安全的最佳实践
微服务·容器·k8s
2301_780789661 天前
手游遇到攻击为什么要用SDK游戏盾手游遇到攻击为什么要用 SDK 游戏盾?
安全·web安全·游戏·架构·kubernetes·ddos
珂玥c1 天前
k8s集群ingress碎碎念
云原生·容器·kubernetes
佳杰云星1 天前
如何给大模型集群选“大脑”?智算调度与管理平台 10 维选型指南(附选型评分表)
人工智能·kubernetes·大模型·云计算·gpu·算力调度·智算中心
比特森林探险记1 天前
context 在 gRPC / Gin / K8s 中的实战
容器·kubernetes·gin
汪汪大队u1 天前
基于 K8s 的物联网平台运维体系:Ansible+Zabbix 自动化监控与故障自愈(三)—— Zabbix Server 启动排错记
运维·kubernetes·ansible
日取其半万世不竭1 天前
OpenCost:Kubernetes 成本监控,开源的云资源费用分析
容器·kubernetes·开源
万里侯1 天前
Ansible自动化运维实战:从入门到生产级应用
微服务·容器·k8s
Cat_Rocky1 天前
k8s zabbix7学习-设置告警
学习·容器·kubernetes