【发布时间】:2018-08-07 19:16:16
【问题描述】:
Kubernetes 新手,但想在不同机器上快速运行一些 Docker 容器,例如,节点 1(物理机 1)上的容器 1、2 和 3 以及节点 2(物理机 2)上的容器 4、5 和 6 .有人可以帮助我使用配置文件和命令来启动并运行它,并且所有容器都可以相互通信吗?
我在https://gettech1.wordpress.com/2016/10/03/kubernetes-forcefully-run-pod-on-specific-node/ 中找到了我想要的示例,但只有一个 pod。如何使用两个 pod(假设我可以在每个 pod 中添加更多容器)并在一个部署中一起运行两个 pod(以便容器在同一个网络中,因此可以相互通信)?
我还想运行一个带有“共享”绑定传播的绑定挂载的 Docker 容器,我该如何指定它?
就个人而言,我发现 Kubernetes 文档在相互引用的概念层中有点难以浏览。任何人都可以指出一个干净的教程也会有所帮助。我想学习如何在多台机器上运行容器,然后如何通过在 pod 中添加更多容器、在节点上添加更多 pod 以及在集群中添加更多节点来自动扩展。然后是不同类型的网络和卷管理。
【问题讨论】:
-
这是一个很好的问题,因为它表明了一些概念上的混乱。听起来在问题中应该用术语 pod 代替术语容器。 Pod 是调度单元,而不是单个容器。容器可以通过多种方式与其他容器通信 - 例如通过服务名称 - 即使它们没有一起打包在同一个 pod 中。看起来 k8s 只支持 rshared 绑定传播,不支持共享。一些背景:medium.com/kokster/kubernetes-mount-propagation-5306c36a4a2d
-
也许将绑定挂载部分拆分为一个单独的问题?
-
这是我的困惑,在 Kubernetes 文档前面有点无能为力。我的理解是,一个 Pod 可以有多个容器,但不能跨节点(物理机)。首先,我只想配置 Pod1(容器 1、2 和 3)在 Node1 上运行,Pod2(容器 4、5 和 6)在 Node2 上运行,并让所有这些容器能够通信彼此,但我只是找不到一个简单的例子来说明如何做到这一点。我可以在一台机器上使用 docker-compose 轻松运行这些容器,并且容器之间可以正常通信。
-
@hanaZ 容器 1、2、3 和 4、5、6 之间需要进行什么样的通信?使用http调用每个?还是别的什么?
-
例如容器1是管理节点,所有其他节点都需要注册。容器 4 服务于元数据,容器 2 和 5 服务于存储,容器 3 和 6 是访问存储的客户端。存储和客户端从管理容器中获取元数据容器的 IP 地址和端口,然后进行元数据查询。客户端也从管理容器中获取存储地址。
标签: docker kubernetes