我尝试将IP列入白名单以访问Kubernetes集群内的部署。
我在网上搜索了一些关于此的文档,但我只找到了
ingress.kubernetes.io/whitelist-source-range
用于允许访问某些IP范围的入口。但是,我仍然无法隔离部署。
这是入口配置YAML文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-internal
annotations:
kubernetes.io/ingress.class: "istio"
ingress.kubernetes.io/whitelist-source-range: "xxx.xx.xx.0/24, xx.xxx.xx.0/24"
spec:
rules:
- host: white.example.com
http:
paths:
- backend:
serviceName: white
servicePort: 80
我可以通过白名单IP和手机访问部署(不同的IP不在配置中列入白名单)
有没有人使用ingress和Istio处理同样的问题?
非常感谢任何帮助,提示,文档或替代配置。
答案 0 :(得分:1)
看看annotation overview, istio 似乎不支持whitelist-source-range
:
whitelist-source-range:用于启用访问权限的逗号分隔的IP地址列表。
nginx,haproxy,trafficserver
答案 1 :(得分:0)
我设法使用NetworkPolicy解决了基于istio的服务(使用istio代理并通过istio入口网关通过公共LB公开的应用)的白名单ip地址问题。
对于我来说,这是拓扑:
公共负载均衡器(在GKE中,使用preserve clientIP mode) ==> 专用的Istio网关控制器盒(请参阅我的回答here) ==> 我的豆荚(istio-proxy Sidecar容器,我的主容器)。
因此,我设置了2个网络策略:
NetworkPolicy,用于保护从 internet连接到我的Istio Ingress Gateway Controller Pods 的传入连接。在我的网络策略配置中,我只需要将spec.podSelector.matchLabels
字段设置为专用Istio Ingress网关控制器Pod 的
另一种限制从我的部署->仅从Istio Ingress Gateway Controller吊舱/部署的传入连接的网络策略。