使用 calico 为每个 pod 网络设置了一个 kubernetes 集群后,我想知道将服务公开给外部世界的最佳实践是什么。
恕我直言,我在这里有两个选择,将内部 pod IP(172 ...)通过 BGP 连接到边缘路由器/防火墙(在我的情况下为 vyos)并在防火墙/路由器上执行 SNAT。但是我需要每个 pod 一个公共(public) IP 才能公开。
优点:需要使用的公共(public) IP 更少
缺点:Pod 更改需要更新防火墙规则?!
或者 2nd: 将提供的公共(public)网络作为 IP 池交给 calico 用于 Pod。
缺点:大量公共(public) IP 被浪费在不会暴露在互联网上的内部服务上
希望有人能启发我或指出我正确的方向。
谢谢!
最佳答案
Calico 没有提供任何特殊的方式来在 Kubernetes 中公开服务。您应该使用标准的 Kubernetes 服务、节点端口等来公开您的服务。 future ,Calico 有可能提供 kube-proxy 目前为 Kubernetes 提供的一些功能(例如公开服务 IP),但目前,Calico 仅适用于低级网络 API 层。 Calico 在 Kubernetes 集成中的真正优势在于能够使用新的 Kubernetes NetworkPolicy API 定义网络安全策略。
资料来源:我是 Calico 的核心开发人员之一。
关于networking - 使用 Calico 在 Kubernetes 中公开服务的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638106/