将IP地址加入白名单以使用Kubernetes ingress Istio访问部署

8

我正在尝试将一个IP添加到我的Kubernetes集群内部以访问部署。

我在网上查找了一些相关文档,但只找到了

ingress.kubernetes.io/whitelist-source-range

为了让Ingress授权给特定的IP范围,但是我仍然无法隔离部署。

这是Ingress配置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时遇到了同样的问题?

非常感谢任何帮助、提示、文档或替代配置。


嗨@Lan,我想知道你是否已经得到了答案? - Agung Pratama
2个回答

0

我已经成功解决了基于Istio的服务(使用Istio代理的应用程序,并通过公共LB通过Istio入口网关公开)的IP地址白名单问题,使用了NetworkPolicy

对于我的情况,这是拓扑图:

公共负载均衡器(在GKE中,使用保留客户端IP模式 ==> 专用Istio网关控制器Pod(请参见我的答案这里 ==> 我的Pod(istio-proxy旁路容器、我的主容器)。

所以,我设置了两个网络策略:

  1. 网络策略(NetworkPolicy)用于保护从互联网连接我的Istio入口网关控制器Pods的传入连接。在我的网络策略配置中,我只需要将spec.podSelector.matchLabels字段设置为专用Istio入口网关控制器Pods的Pod标签。

  2. 另一个网络策略(NetworkPolicy)限制了对我的部署(Deployment)的传入连接,仅允许来自Istio入口网关控制器Pods/Deployments。


0

请查看注释概述,似乎whitelist-source-range不受istio支持:

whitelist-source-range:启用访问的IP地址的逗号分隔列表。

nginx、haproxy、trafficserver


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接