所以Kubernetes有一个非常新颖的网络模型,我相信它基于它认为是默认Docker网络的缺点。虽然我仍然在努力理解:(1)它认为实际存在的缺点是什么,以及(2)Kubernetes的一般解决方案是什么,我现在正处于一个我想要实施的地步解决方案,也许这会让我更好一点。
尽管Kubernetes的其他文档非常成熟且编写得很好,但配置网络的说明很少,基本上不连贯,并且跨越了许多不同的文章,而不是位于一个特定的位置。
我希望之前(从头开始)设置Kubernetes群集的人可以帮助我完成基本程序。我对在GCE或AWS上运行不感兴趣,现在我对使用任何类型的覆盖网络都不感兴趣,例如flannel
。
我的基本理解是:
/16
子网。这将限制您使用大约65K的容量,这对于大多数正常应用来说应该足够了。此子网中的所有IP都必须是“公共”,而不是某些传统私有(有类)范围内的。cbr0
网桥并确保其持久性(但在哪台计算机上?)MASQUERADE
规则。iptables
路由(再次,在哪里?),以便Kubernetes发布的每个pod都会收到其中一个公共IP。Services
和动态DNS。kubectl
,controller-manager
,apiserver
和etcd
到主服务器,并将其作为服务/守护程序运行kubelet
和kube-proxy
并将其作为服务/守护进程运行这是我可以从2整天的研究中收集到的最好的,它们可能是错误的(或误导的),乱序,完全不完整。
我可以在内部部署的vCenter群集中无限制地创建虚拟机。如果需要对VLAN / Switches /等进行更改。我可以参与基础设施。
我应该为Kubernetes设置多少个虚拟机(适用于中小型集群),为什么?我需要对上面的模糊说明做出哪些确切的更正,以便完全配置网络?
我很擅长安装/配置所有二进制文件。只是在设置的网络方面完全窒息。
答案 0 :(得分: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间接使其复杂化。 另请参阅Setting up the network for Kubernetes以获得一个很好的答案。
评论您的其他观点: 1.
此子网中的所有IP必须是" public"而不是在一些传统的私人(有类)范围内。
"内部网络" kubernetes通常使用私有IP,参见上面的幻灯片,其中使用10.x.x.x作为示例。我想混淆来自一些kubernetes文本,这些文本指的是" public" as"在节点外可见#34;但它们并不意味着" Internet公共IP地址范围"。