在vCenter上运行Kubernetes

sme*_*eeb 8 networking kubernetes

所以Kubernetes有一个非常新颖的网络模型,我相信它是基于它认为默认的Docker网络的缺点.虽然我仍然在努力理解:(1)它认为实际存在的缺点是什么,以及(2)Kubernetes的一般解决方案是什么,我现在正处于一个我想要实施的地步解决方案,或许这会让我更好一点.

虽然Kubernetes文档的其余部分非常成熟且编写得很好,但配置网络的说明很少,很大程度上不连贯,并且跨越了许多不同的文章,而不是位于一个特定的位置.

我希望之前(从头开始)设置Kubernetes集群的人可以帮助我完成基本程序.我对运行GCE或AWS不感兴趣,现在我对使用任何类型的覆盖网络都不感兴趣flannel.

我的基本理解是:

  1. /16为您的所有pod创建一个子网.这将限制您使用大约65K的容量,这对于大多数正常应用来说应该足够了.此子网中的所有IP都必须是"公共",而不是某些传统私有(有类)范围内的IP.
  2. cbr0某处创建一个桥并确保其持久化(但在什么机器上?)
  3. 删除/禁用MASQUERADEDocker安装的规则.
  4. 一些如何配置iptables路由(再次,在哪里?),以便Kubernetes旋转的每个pod接收其中一个公共IP.
  5. 需要一些其他设置来使用负载平衡Services和动态DNS.
  6. 提供5个VM:1个主人,4个小兵
  7. 在所有5个VM上安装/配置Docker
  8. 安装/配置kubectl,controller-manager,apiserveretcd船长,并运行它们作为服务/守护进程
  9. 安装/配置kubeletkube-proxy每个奴才和运行它们作为服务/守护进程

这是我在2天的研究中可以收集的最好的,它们可能是错误的(或误导的),乱序,完全不完整.

我有权在内部部署的vCenter群集中无限制地创建VM.如果需要对VLAN/Switches /等进行更改.我可以参与基础设施.

我应该为Kubernetes设置多少个VM(适用于中小型集群),为什么?我需要对上面模糊的说明做出哪些确切的更正,以便完全配置网络?

我很擅长安装/配置所有二进制文件.只是在设置的网络方面完全窒息.

小智 3

对于 kubernetes 网络的一般介绍,我发现http://www.slideshare.net/enakai/architecture-overview-kubernetes-with-red-hat-enterprise-linux-71非常有帮助。

关于您的项目(1)和(2):恕我直言,它们在https://github.com/kubernetes/kubernetes/blob/master/docs/admin/networking.md#docker-model中有很好的描述。根据我的经验:Docker NAT 类型的方法有什么问题?有时您需要在软件中配置所有节点的所有端点(172.168.10.1:8080、172.168.10.2:8080 等)。在 kubernetes 中,您可以简单地将 pod 的 IP 配置到彼此的 pod 中,Docker 使用 NAT 间接将其复杂化。另请参阅为 Kubernetes 设置网络以获得很好的答案。

对您其他观点的评论:1。

该子网中的所有 IP 必须是“公共”的,并且不在某些传统私有(有类)范围内。

kubernetes 的“内部网络”通常使用私有 IP,另请参见上面的幻灯片,其中使用 10.xxx 作为示例。我猜想混淆来自于一些 kubernetes 文本,它们将“公共”称为“节点外部可见”,但它们并不意味着“互联网公共 IP 地址范围”。