【发布时间】:2018-06-02 21:55:10
【问题描述】:
我在一个 K8s 集群中运行一些内部服务和一些面向客户的服务。内部服务应该只能从某些特定的 ip 访问,面向客户的服务应该可以在全球范围内访问。
所以我创建了我的 Ingresses 和一个 nginx Ingress Controller 以及一些带有适当 ip 过滤器的 K8s LoadBalancer 服务。
现在我看到 GCP 中的那些防火墙规则是在幕后创建的。但它们是相互冲突的,“面向客户”的防火墙规则推翻了“内部”的规则。因此,我的 K8s 集群的所有内容都在全球范围内可见。
用例对我来说听起来并不那么奇特 - 你知道如何让 K8s 集群的某些部分受到防火墙规则的保护,而某些部分在任何地方都可以访问吗?
【问题讨论】:
-
使用“内部”,您的意思是可以从您的集群中的其他 pod 访问?或者您的意思是可以从您的本地网络访问?还是可以从您的 GCP 项目访问?
-
我的意思是这些服务需要可以从我们的本地网络访问。
-
您的 GCP 和本地网络的范围是多少?它们重叠吗?
-
不,它们不重叠。与此同时,我找到了解决方案。如果我部署 2 个不同的入口、入口控制器、具有不同防火墙设置在不同端口上运行的负载均衡器,我可以实现我的目标......但缺点是有一些非标准端口,例如 myservice.mydomain.wtf:12345
-
你不应该使用 2 个入口控制器。
标签: kubernetes google-cloud-platform