有人可以帮我为Kubernetes创建一个yaml配置文件,以便面对如下情况:一个包含3个容器的pod(例如),这些容器必须部署在一个集群的3个节点上(Google GCE)
|P| |Cont1| ----> |Node1|
|O| ---> |Cont2| ----> |Node2| <----> GCE cluster
|D| |Cont3| ----> |Node3|
由于
答案 0 :(得分:0)
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