1

使用 calico 为每个 pod 网络设置了一个 kubernetes 集群后,我想知道将服务公开给外部世界的最佳实践是什么。

恕我直言,我在这里有两个选择,将内部 pod IP(172 ...)通过 BGP 连接到边缘路由器/防火墙(在我的情况下为 vyos),并在防火墙/路由器上执行 SNAT。但是我需要每个 pod 一个公共 IP 才能公开。

优点:需要使用更少的公共 IP 缺点:Pod 更改需要更新防火墙规则?!

或者第 2 种:将提供的公共网络作为 IP 池交给 calico,供 Pod 使用。缺点:大量公共 IP 被浪费在不会暴露在互联网上的内部服务上

希望有人能启发我或指出我正确的方向。

谢谢!

4

2 回答 2

2

Calico 没有提供任何特殊的方式来在 Kubernetes 中公开服务。您应该使用标准的 Kubernetes 服务、节点端口等来公开您的服务。将来,Calico 有可能提供 kube-proxy 目前为 Kubernetes 提供的一些功能(例如公开服务 IP),但目前,Calico 仅适用于低级网络 API 层。Calico 在 Kubernetes 集成中的真正优势在于能够使用新的 Kubernetes NetworkPolicy API 定义网络安全策略。

资料来源:我是 Calico 的核心开发人员之一。

于 2016-08-01T10:50:53.733 回答
0

Calico 不负责 k8s 服务 IP 管理或将服务 ip 转换为容器(工作负载端点)它为新创建的 pod 分配 IP 地址并进行必要的系统配置更改以实施 calico 策略

于 2019-04-22T09:08:42.200 回答