【发布时间】:2015-12-28 14:19:18
【问题描述】:
所以 Kubernetes 有一个非常新颖的网络模型,我相信这是基于它认为默认 Docker 网络的一个缺点。虽然我仍在努力理解:(1)它认为实际的缺点是什么,以及(2)Kubernetes 的一般解决方案是什么,但我现在已经到了我想实现的地步解决方案,也许这会给我带来更好的线索。
尽管 Kubernetes 文档的其余部分非常成熟且编写良好,但配置网络的说明却很少,基本上不连贯,并且跨越许多不同的文章,而不是位于一个特定的地方。
我希望以前(从头开始)设置过 Kubernetes 集群的人可以帮助我完成基本程序。我对在 GCE 或 AWS 上运行不感兴趣,现在我对使用任何类型的覆盖网络(如 flannel)不感兴趣。
我的基本理解是:
- 为您的所有 pod 创建一个
/16子网。这会将您限制为一些 65K pod,这对于大多数普通应用程序来说应该足够了。此子网中的所有 IP 都必须是“公共”的,并且不在某些传统的私有(分类)范围内。 - 在某处创建
cbr0网桥并确保其持久性(但在什么机器上?) - 删除/禁用 Docker 安装的
MASQUERADE规则。 - 如何配置
iptables路由(再次,在哪里?),以便 Kubernetes 启动的每个 pod 接收其中一个公共 IP。 - 需要进行一些其他设置才能使用负载平衡
Services和动态 DNS。 - 提供 5 个虚拟机:1 个主虚拟机,4 个从属虚拟机
- 在所有 5 台虚拟机上安装/配置 Docker
- 将
kubectl、controller-manager、apiserver和etcd安装/配置到主服务器,并将它们作为服务/守护进程运行 - 在每个 minion 上安装/配置
kubelet和kube-proxy并将它们作为服务/守护进程运行
这是我从 2 天的研究中收集到的最好的结果,它们可能是错误的(或误导的)、无序的和完全不完整的。
我可以不受限制地在本地 vCenter 集群中创建虚拟机。如果需要对 VLAN/交换机/等进行更改。我可以让基础设施参与进来。
我应该为 Kubernetes 设置多少个虚拟机(对于中小型集群),为什么?我需要对上面模糊的说明进行哪些确切的更正,以便完全配置网络?
我擅长安装/配置所有二进制文件。只是在设置的网络端完全窒息。
【问题讨论】:
标签: networking kubernetes