6

我正在尝试将 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 解决过同样的问题?

任何帮助、提示、文档或替代配置将不胜感激。

4

2 回答 2

0

我设法使用NetworkPolicy解决了基于 istio 的服务(使用 istio 代理并通过公共 LB 通过 istio 入口网关公开的应用程序)的白名单 IP 地址问题。

就我而言,这是拓扑:

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

因此,我设置了 2 个网络策略:

  1. NetworkPolicy 保护从Internet 连接我的 Istio Ingress Gateway Controller Pods的传入连接。在我的网络策略配置中,我只需将该字段设置为Dedicated Istio Ingress Gateway Controller Podsspec.podSelector.matchLabelspod 标签

  2. 另一个 NetworkPolicy 将传入连接限制为我的 Deployment -> 仅来自 Istio Ingress Gateway Controller pods/deployments。

于 2018-10-30T10:56:50.063 回答
0

看看注释概述,似乎istiowhitelist-source-range不支持:

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

nginx、haproxy、流量服务器

于 2017-09-23T18:30:38.160 回答