0

我是 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. 就上述物理/逻辑结构而言,部署是什么?它与服务有何不同?部署特定于每个节点?
4

3 回答 3

3

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

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

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

于 2019-09-20T09:15:20.630 回答
0

这取决于您在部署中设置了多少副本?如果您有 2 个节点并且在 A 部署中设置了 1 个副本,那么您将在第一个节点或第二个节点中有 1 个 pod。如果您在 A 部署中设置 3 个副本,那么您将在第一个节点或第二个节点中有 3 个 pod,或者在第一个节点中有 2 个 pod,在第二个节点中有 1 个 pod 或其他。

于 2019-09-20T08:21:43.740 回答
0

一个 pod 由一个应用程序容器或一组应用程序容器组成。当一个 pod 中有超过 1 个容器时,kubernetes 调度程序会确保在 pod 规范中定义的所有容器都在同一个节点上创建。

Kubernetes 调度程序总是尝试根据各种因素(包括资源可用性)跨节点分布 Pod。

关于你的问题:

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

如果两个 pod 的复制计数均为“1”,则无论节点数量如何,每个应用程序都只会创建一个 pod 实例。否则,Kubernetes 调度程序会根据每个节点上可用的资源(CPU、内存)动态地决定在哪里放置额外的副本。默认复制计数(也称为副本)为 1。

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

如果两个节点都有足够的资源可用性,则结构可能如下所示:

Node 1 - Pod 1 -> App1
Node 2 - Pod 2 -> App2
  1. 如果我设置了复制因子=2,那么它将如何影响结构?会不会创造

根据资源可用性,kubernetes 调度程序可以创建额外的副本,如下所示:

Node 1 - Pod 1 -> App1
         Pod 2 -> App2
Node 2 - Pod 1 -> App1
         Pod 2 -> App2
于 2019-09-20T09:37:59.060 回答