有人能告诉我你是如何以最优化和最优雅的方式解决这个问题的吗?有一个包含一些部署的 Kubernetes 集群,一些客户端需要将我们的 IP 添加到他们的白名单中,以便应用程序可以发出请求。随着集群的可扩展性,有必要从我们的新节点为客户端提供新的 IP 以列入白名单,或者在同一节点上部署应用程序。
该解决方案并非最佳方案,因此您需要修复 IP。将其设为静态或通过一个网关传出。
Kubernetes 安装是网络提供商 Flannel 的标准配置。此提供商没有此功能。
- 这样的特征例如有印花布。https://projectcalico.docs.tigera.io/networking/use-specific-ip
- 我还发现了这个项目:https://github.com/nirmata/kube-static-egress-ip-有人用过吗?
你有什么建议?
如果有帮助的话,我们的托管在 Hetzner 上。
谢谢!
答案1
最优雅的解决方案可能是 Antreahttps://antrea.io/docs/v1.3.0/docs/egress/例如,VMWare Tanzu 等公司使用的 CNI。使用 Antrea,您可以定义一个 EgressIPPool,CNI 将自动管理池,在 Kubernetes 节点之间提供 HA 功能。在那些需要使用静态传出地址的 pod 上设置一个标签,就大功告成了。
Calico 具有类似的功能,但 Egress Gateway 是付费选项,因此您只能使用 IPPool 并将 IP 块分配给 K8s 节点,并标记某些 pod 以使其使用这些 IP。正如您所猜测的,在大型集群环境中,这些 IP 池可能会很快用完。此外,我还遇到了 L2 路由问题(无法从同一 VLAN 内的地址访问 pod),但这可能是我的配置错误。
我也尝试安装 Cillium,它确实先进且高效,但对于 Egress Gateway,它仅支持节点上的单个 IP(必须在节点的接口上手动配置),而没有 HA 功能。
如果无法进行 CNI 迁移,那么你最后的资源