节点、pods、容器之间的关系是什么?应用程序如何在集群中复制?
What is the relation between nodes, pods, containers? How app is replicated in cluster?
我是 kubernetes 的新手,我浏览了很多文章,但没有找到基本的答案来解决我的疑问。
假设我有 2 个节点的 kubernete 集群,然后我在上面部署了 2 个应用程序。
我的两个应用程序都将托管在两个节点上吗?像两个节点上的 app1 和类似的 app2?这意味着默认情况下我们的复制因子为 2。正确吗?
每个节点有 1 个 pod?会是什么结构?
Node 1, Pod1 - > App1
Node 1, Pod1 - > App2
Node 2, Pod1 - > App1
Node 2, Pod1 - > App2
- 如果我设置复制因子=2 那么它会如何影响结构?它会创造
Node 1- Pod1 - > App1
Node 1- Pod2 - > App2
Node 2- Pod1 - > App1
Node 2- Pod2 - > App2
- 上述physical/logical结构的部署是什么?它与服务有何不同?部署特定于每个节点?
这取决于您在部署中设置了多少个副本?
如果您有 2 个节点并且在 A 部署中设置了 1 个副本,那么您将在第一个节点或第二个节点中有 1 个 pod。如果您在 A 部署中设置 3 个副本,那么您将在第一个节点或第二个节点中有 3 个 pod,或者在第一个节点中有 2 个 pod,在第二个节点中有 1 个 pod,或者其他。
没有预定义的 pods 与节点的绑定。 Kubernetes 调度程序在创建 pod 时动态决定将 pod 分配给哪个节点。
一般来说,一个 Kubernetes 应用程序包含一组复制的 pods(在大多数情况下由 Deployment 资源管理)。这些 pods 最终 运行 在哪些节点上取决于调度程序。没有内置策略要求同一应用 的副本 pods 必须 运行 在不同节点上。
但是,您可以通过各种机制影响调度程序的决策:
一个pod由一个应用容器或一组应用容器组成。当 pod 中有超过 1 个容器时,kubernetes 调度程序确保 pod 规范中定义的所有容器都在同一节点上创建。
Kubernetes 调度程序始终尝试根据包括资源可用性在内的各种因素在节点之间传播 pods。
关于您的问题:
- My both of the apps will be hosted on both of the nodes? Like app1 on both of the nodes and similarly app2? it means we have replication
factor of 2 by default. Correct?
如果两个 pods 的复制计数都是“1”,则无论节点数量如何,每个应用程序都只会创建一个 pod 实例。否则,Kubernetes 调度程序会根据每个节点上可用的资源(CPU、内存)动态决定将额外副本放置在何处。默认复制计数(又名副本)为 1。
- It will have 1 pod per node? What will be the structure?
如果两个节点都有足够的资源可用性,结构可能如下所示:
Node 1 - Pod 1 -> App1
Node 2 - Pod 2 -> App2
- If I have set replication factor=2 then how it will affect the structure? Will it create
根据资源可用性,kubernetes 调度程序可以像这样创建额外的副本:
Node 1 - Pod 1 -> App1
Pod 2 -> App2
Node 2 - Pod 1 -> App1
Pod 2 -> App2
我是 kubernetes 的新手,我浏览了很多文章,但没有找到基本的答案来解决我的疑问。
假设我有 2 个节点的 kubernete 集群,然后我在上面部署了 2 个应用程序。
我的两个应用程序都将托管在两个节点上吗?像两个节点上的 app1 和类似的 app2?这意味着默认情况下我们的复制因子为 2。正确吗?
每个节点有 1 个 pod?会是什么结构?
Node 1, Pod1 - > App1 Node 1, Pod1 - > App2 Node 2, Pod1 - > App1 Node 2, Pod1 - > App2
- 如果我设置复制因子=2 那么它会如何影响结构?它会创造
Node 1- Pod1 - > App1 Node 1- Pod2 - > App2 Node 2- Pod1 - > App1 Node 2- Pod2 - > App2
- 上述physical/logical结构的部署是什么?它与服务有何不同?部署特定于每个节点?
这取决于您在部署中设置了多少个副本? 如果您有 2 个节点并且在 A 部署中设置了 1 个副本,那么您将在第一个节点或第二个节点中有 1 个 pod。如果您在 A 部署中设置 3 个副本,那么您将在第一个节点或第二个节点中有 3 个 pod,或者在第一个节点中有 2 个 pod,在第二个节点中有 1 个 pod,或者其他。
没有预定义的 pods 与节点的绑定。 Kubernetes 调度程序在创建 pod 时动态决定将 pod 分配给哪个节点。
一般来说,一个 Kubernetes 应用程序包含一组复制的 pods(在大多数情况下由 Deployment 资源管理)。这些 pods 最终 运行 在哪些节点上取决于调度程序。没有内置策略要求同一应用 的副本 pods 必须 运行 在不同节点上。
但是,您可以通过各种机制影响调度程序的决策:
一个pod由一个应用容器或一组应用容器组成。当 pod 中有超过 1 个容器时,kubernetes 调度程序确保 pod 规范中定义的所有容器都在同一节点上创建。
Kubernetes 调度程序始终尝试根据包括资源可用性在内的各种因素在节点之间传播 pods。
关于您的问题:
- My both of the apps will be hosted on both of the nodes? Like app1 on both of the nodes and similarly app2? it means we have replication factor of 2 by default. Correct?
如果两个 pods 的复制计数都是“1”,则无论节点数量如何,每个应用程序都只会创建一个 pod 实例。否则,Kubernetes 调度程序会根据每个节点上可用的资源(CPU、内存)动态决定将额外副本放置在何处。默认复制计数(又名副本)为 1。
- It will have 1 pod per node? What will be the structure?
如果两个节点都有足够的资源可用性,结构可能如下所示:
Node 1 - Pod 1 -> App1
Node 2 - Pod 2 -> App2
- If I have set replication factor=2 then how it will affect the structure? Will it create
根据资源可用性,kubernetes 调度程序可以像这样创建额外的副本:
Node 1 - Pod 1 -> App1
Pod 2 -> App2
Node 2 - Pod 1 -> App1
Pod 2 -> App2