我想知道Mesos或K8是否可以从多个网络接口(interface)提供资源?
我想在mesos(或K8s)从属节点上附加多个网络接口(interface)(公共(public)eth0,私有(private)eth1),并想在特定接口(interface)上绑定(bind)在Mesos的从属节点上运行的特定应用程序吗?
还是K8需要不同的物理网络,例如OpenStack拥有四个不同的物理网络?
有参考指南或文档吗?

最佳答案

在Kubernetes上,没有完全支持的方法来执行此操作。我认为泊坞窗(https://github.com/docker/docker/issues/1824)也不支持此功能

解决方法是,您可以通过以下方式进行操作:

  • 具有一个接口(interface),是Pod的“默认网络接口(interface)”。它是您配置要使用的Kubelet和docker的一种。您的大多数 pod 都使用此 pod 。他们获得了PodIP。
  • 对于需要访问另一个接口(interface)或同时访问这两个接口(interface)的“特殊”容器,请在这些容器上使用“hostNet:true”参数,并且Kubernetes不会将容器放入网络容器中。这些 pod
  • 可以绑定(bind)到任一接口(interface)。
  • 将不会获得“podIP”,而是使用其使用的任何接口(interface)的IP。
  • 您将必须自己管理端口冲突。您可能要对这些 pods 使用DaemonSet。
  • 您将无法使用hostNet在pod之间获得任何NetworkPolicy保护。
  • 使用hostNet在同一节点上的所有pod都可以在localhost上相互通信,因此隔离度降低。

  • 如果只有一个或几个应用程序需要“非默认”网络,并且这些应用程序是“系统应用程序”,并且由管理集群的同一团队而不是“不那么受信任”的应用程序团队来管理,则此解决方法很好。或者,如果您的组织规模很小,只有几个人在运行Kubernetes集群。

    07-28 01:41
    查看更多