首页 > 解决方案 > 节点、Pod、容器之间的关系是什么?应用程序如何在集群中复制?

问题描述

我是 Kubernetes 的新手,我浏览了很多文章,但没有找到基本答案来解决我的疑问。

假设我有 2 个节点 kubernete 集群,然后我在上面部署了 2 个应用程序。

  1. 我的两个应用程序都将托管在两个节点上?就像两个节点上的 app1 和 app2 一样?这意味着我们的复制因子默认为 2。正确的?

  2. 每个节点会有 1 个 pod?结构会是怎样的?

Node 1, Pod1 - > App1
Node 1, Pod1 - > App2
Node 2, Pod1 - > App1
Node 2, Pod1 - > App2
  1. 如果我设置了复制因子=2,那么它将如何影响结构?会不会创造
Node 1- Pod1 - > App1
Node 1- Pod2 - > App2
Node 2- Pod1 - > App1
Node 2- Pod2 - > App2
  1. 就上述物理/逻辑结构而言,部署是什么?它与服务有何不同?部署特定于每个节点?

标签: kubernetesgoogle-kubernetes-enginekubernetes-cluster

解决方案


没有预定义的 Pod 与节点的绑定。Kubernetes 调度程序会在创建 pod 时动态决定将 pod 分配给哪个节点。

通常,Kubernetes 应用程序由一组复制的 pod 组成(大多数情况下由部署资源管理)。这些 pod 最终在哪些节点上运行取决于调度程序。没有内置策略要求同一应用程序的副本 pod必须在不同节点上运行。

但是,您可以通过各种机制影响调度程序的决策:


推荐阅读