Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes:一个吊舱,更多节点上的更多容器_Kubernetes_Cluster Computing_Google Compute Engine - Fatal编程技术网

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

Kubernetes:一个吊舱,更多节点上的更多容器,kubernetes,cluster-computing,google-compute-engine,Kubernetes,Cluster Computing,Google Compute Engine,有人可以帮我为Kubernetes创建一个yaml配置文件,以应对这样的情况:一个pod包含3个容器(例如),这些容器必须部署在集群的3个节点上(Google GCE) 节点1| |O |-->| Cont2 |-->| Node2 | GCE集群 |D | | Cont3 |------->节点3| 感谢来自 Kubernetes集群中的pod可以通过两种主要方式使用:pod 运行单个容器。“每个吊舱一个集装箱”模式是最先进的 通用Kubernetes用例;在这种情况下,您可以将豆荚视为 包

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

节点1|
|O |-->| Cont2 |-->| Node2 | GCE集群
|D | | Cont3 |------->节点3|
感谢来自

Kubernetes集群中的pod可以通过两种主要方式使用:pod 运行单个容器。“每个吊舱一个集装箱”模式是最先进的 通用Kubernetes用例;在这种情况下,您可以将豆荚视为 包装在一个容器上,库伯内特斯负责管理吊舱 而不是直接从容器中取出运行多个容器的吊舱 需要共同努力。Pod可以封装应用程序 由紧密耦合的多个共同放置的容器组成 需要共享资源。这些位于同一位置的容器可能会形成 单个内聚服务单元–一个容器,用于从 向公众共享卷,同时使用单独的“侧车”容器 刷新或更新这些文件。吊舱将这些容器包裹起来 将存储资源整合为一个可管理的实体

简言之,最有可能的是,您应该将每个容器放在一个Pod中,以真正受益于微服务体系结构,而不是通常部署在vm中的单片体系结构。然而,有些情况下,您需要考虑共同定位容器。即,如本文所述,一些复合容器应用包括:

  • 侧车集装箱
扩展和增强“主”容器

  • 大使集装箱
代理与世界的本地连接

  • 适配器容器
标准化和规范化输出


定义并运行展开后,计划程序将负责为您的pod选择最合适的放置位置,除非您通过在展开的YAML中定义标签(除非您知道正在执行的操作,否则不建议这样做)。

您可以将多个容器分配给单个pod。您可以将POD分配给特定的节点池。但我不确定是否有可能将多个容器分配给一个pod中运行的多个节点

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

nodeSelector:
   nodeclass: pool1

正如他们在这里的文档中所说的:Pod中的容器在集群中的同一个物理或虚拟机上自动地被共同定位和共同调度。这意味着吊舱的容器始终位于同一节点上。如果您想水平扩展,可以将容器放在单独的吊舱中。奇怪的是,我无法在更多群集节点上部署一些容器,因为这样我就无法利用群集的弹性和kubernetes实用程序轻松扩展web服务器电池,一次完成一些操作……好吧,通常,组件不需要以相等的度量进行缩放。您的数据库可以处理一定的负载,但您的网页本身可能需要进行更大的扩展以处理相同数量的用户。在这种情况下,让它们能够单独扩展是非常有益的。如果你把它们放在同一个豆荚里,它们总是必须以完全相同的程度水平缩放。为什么要将它们捆绑在一起?实际上,我们的想法是为db提供一个pod,为web服务器提供一个不同的pod。但是我考虑用这种方式开发,因为我确信我可以使用集群将所有web服务器作为单个服务进行管理。另一方面,如果一个包含多个容器的pod只能部署在一个节点上,那么拥有一个节点集群的意义是什么?考虑到集群节点具有相同的硬件功能,在同一节点中拥有多个容器意味着对一个容器进行称重,而让另一个容器卸载。现在我真的不明白使用cluster+kubernetes有什么用处……假设您的节点有两个吊舱运行您的web服务。您的集群将平衡两台服务器之间的负载,现在您可以处理更多流量。较小的节点通常也比拥有一个大的整体要便宜。此外,如果您正在运行两个Web服务器,而其中一个服务器崩溃,则仍然可以为来自备份的流量提供服务。Kubernetes还将重新启动停止的服务。您应该研究可用性和水平可伸缩性等术语。它还可以让您更有效地使用硬件。如果您有两个小型服务,那么它们可以安装在一个节点上,从而节省成本。
nodeSelector:
   nodeclass: pool1