目錄
1. 訪問需求
2. 解決方案
3. 具體配置
3.1 允許互聯網訪問的域名(a.lmzf.com)
3.2 需IP白名單訪問的域名(b.lmzf.com)
3.3 關鍵參數說明
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-publicannotations:kubernetes.io/ingress.class: nginx # 或使用的其他Ingress Controller
spec:rules:- host: a.lmzf.com # 互聯網允許訪問的域名http:paths:- path: /pathType: Prefixbackend: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-restrictedannotations:kubernetes.io/ingress.class: nginxnginx.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: Prefixbackend:service:name: your-service-bport: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 測試驗證
配置完成后,務必進行驗證:
從白名單IP訪問:
訪問?
a.lmzf.com
?應成功。訪問?
b.lmzf.com
?應成功。從非白名單IP訪問:
訪問?
a.lmzf.com
?應成功。訪問?
b.lmzf.com
?應被拒絕(返回?403 Forbidden
?或連接失敗)。