networking - 在 vCenter 上运行 Kubernetes

标签 networking kubernetes

所以 Kubernetes 有一个非常新颖的网络模型,我相信这是基于它认为默认 Docker 网络的一个缺点。虽然我仍在努力理解:(1)它认为实际的缺点是什么,以及(2)Kubernetes 的一般解决方案是什么,但我现在已经到了我想实现的地步解决方案,也许这会给我带来更好的线索。

尽管 Kubernetes 文档的其余部分非常成熟且写得很好,但配置网络的说明很少,基本上不连贯,并且跨越许多不同的文章,而不是位于一个特定的地方。

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

我的基本理解是:

  • 开辟一个/16所有 pod 的子网。这会将您限制为一些 65K pod,这对于大多数普通应用程序来说应该足够了。此子网中的所有 IP 都必须是“公共(public)的”,并且不在某些传统上的私有(private)(分类)范围内。
  • 创建 cbr0在某处桥接并确保其持久性( 但在什么机器上?)
  • 删除/禁用 MASQUERADE Docker 安装的规则。
  • 一些如何配置iptables路由(再次, where? ),以便 Kubernetes 启动的每个 pod 接收这些公共(public) IP 之一。
  • 需要一些其他设置才能使用负载平衡 Services和动态DNS。
  • 配置 5 个虚拟机:1 个主服务器,4 个从属服务器
  • 在所有 5 个虚拟机上安装/配置 Docker
  • 安装/配置kubectl , controller-manager , apiserveretcd到主服务器,并将它们作为服务/守护进程运行
  • 安装/配置kubeletkube-proxy在每个 minion 上并将它们作为服务/守护进程运行

  • 这是我从 2 天的研究中收集到的最好的结果,它们可能是错误的(或误导的)、无序的和完全不完整的。

    我可以不受限制地在本地 vCenter 集群中创建虚拟机。如果需要对 VLAN/交换机/等进行更改。我可以让基础设施参与进来。

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

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

    最佳答案

    关于 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.

    All IPs in this subnet must be "public" and not inside of some traditionally-private (classful) range.



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

    关于networking - 在 vCenter 上运行 Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872147/

    相关文章:

    sorting - Kubernetes:按年龄升序显示 Pod

    在程序中检查网络状态和控制PPP

    java - 具有传出 UDP 流量是否允许此端口上的传入流量?

    networking - 路由器如何利用路由表来选择出线呢?

    networking - 如何在Blackberry中编写SMS应用程序?

    azure - Kubernetes网络: my frontend cannot reach backend

    Java 套接字 : DataOutputStream or OutputStream?

    hadoop - kubernetes 中的多节点 Hadoop

    docker - openshift中pod经常崩溃

    docker - 在 docker-for-desktop OSX 上删除 kubernetes 集群?