Kubernetes:一个pod,更多节点上的容器

时间:2017-11-10 16:17:08

标签: kubernetes cluster-computing google-compute-engine

有人可以帮我为Kubernetes创建一个yaml配置文件,以便面对如下情况:一个包含3个容器的pod(例如),这些容器必须部署在一个集群的3个节点上(Google GCE)

|P|      |Cont1| ----> |Node1|
|O| ---> |Cont2| ----> |Node2| <----> GCE cluster
|D|      |Cont3| ----> |Node3|

由于

2 个答案:

答案 0 :(得分:0)

来自Kuberenets Concepts

  

Kubernetes集群中的Pod可以通过两种主要方式使用: Pods   运行一个容器。 “one-container-per-Pod”模型是最多的   常见的Kubernetes用例;在这种情况下,您可以将Pod视为一个   包装在一个容器周围,Kubernetes管理Pods   而不是直接的容器。 运行多个容器的Pod   需要一起工作。 Pod可能会封装应用程序   由多个紧密耦合的共同定位的容器组成   并需要共享资源。这些共同定位的容器可能形成一个   单一的有凝聚力的服务单位 - 一个容器,提供来自的文件   共享卷向公众,而单独的“边车”容器   刷新或更新这些文件。 Pod包装这些容器和   存储资源作为一个可管理的实体。

简而言之,最有可能的是,您应该将每个容器放在一个Pod中,以真正受益于微服务架构与通常部署在VM中的单片架构。但是,在某些情况下,您需要考虑共同定位容器。即,如本article (Patterns for Composite Containers)中所述,一些复合容器应用程序是:

  • 边车容器
  

扩展并增强“主”容器

  • 大使集装箱
  

代理与世界的本地连接

  • 适配器容器
  

标准化和标准化输出

一旦定义并运行部署,调度程序将负责为您的Pod选择最合适的展示位置,除非您manually assign Nodes通过在部署的YAML中定义标签(除非您知道自己在做什么,否则不推荐) )。

答案 1 :(得分:0)

您可以将多个容器分配给单个容器。您可以将窗格分配给特定的节点池。但是我不确定是否可以将多个容器分配给在单个Pod中运行的多个节点。

您可以在这里执行的操作是,将每个容器分配给不同的容器(3个容器-> 3个容器),然后通过将此代码添加到部署的.yaml文件中,将每个容器分配给不同的节点池。

nodeSelector:
   nodeclass: pool1