我是kubernetes的新手,我浏览了许多文章,但没有找到我的疑问的基本答案。
假设我有2个节点kubernete集群,然后在上面部署了2个应用程序。
我的两个应用程序都将托管在两个节点上?像两个节点上的app1一样,也像app2一样?这意味着默认情况下我们的复制因子为2。正确吗?
每个节点有1个吊舱?会是什么结构?
Node 1, Pod1 - > App1 Node 1, Pod1 - > App2 Node 2, Pod1 - > App1 Node 2, Pod1 - > App2
Node 1- Pod1 - > App1 Node 1- Pod2 - > App2 Node 2- Pod1 - > App1 Node 2- Pod2 - > App2
答案 0 :(得分:3)
没有预定义的Pod与节点的绑定。 Kubernetes调度程序会在创建Pod时动态地决定将Pod分配给哪个节点。
通常,Kubernetes应用程序由一组复制的Pod组成(大多数情况下由Deployment资源管理)。这些Pod最终在哪个节点上运行取决于调度程序。没有内置策略,即同一应用程序 的副本容器必须在不同的节点上运行。
但是,您可以通过各种机制来影响调度程序的决定:
答案 1 :(得分:0)
这取决于您在部署中设置了多少个副本? 如果您有2个节点,并且在A部署中设置了1个副本,则第一个节点或第二个节点将具有1个容器。如果您在A部署中设置了3个副本,那么您将在第一个节点或第二个节点中有3个Pod,或者在第一个节点中有2个Pod,在第二个节点中有1个Pod。
答案 2 :(得分:0)
Kubernetes调度程序始终尝试根据各种因素(包括资源可用性)在各个节点之间分布Pod。
关于您的问题:
- 我的两个应用程序都将托管在两个节点上?像两个节点上的app1一样,也像app2一样?这意味着我们有复制 系数默认为2。正确吗?
如果两个Pod的复制计数均为“ 1”,则无论节点数量如何,每个应用程序只会创建一个Pod实例。否则,Kubernetes调度程序将根据每个节点上可用的资源(CPU,内存)动态决定将额外副本放置在何处。默认复制计数(也称为副本)为1。
- 每个节点有1个吊舱?会是什么结构?
如果两个节点都具有足够的资源可用性,则结构可能如下所示:
Node 1 - Pod 1 -> App1
Node 2 - Pod 2 -> App2
- 如果我将复制因子设置为2,那么它将如何影响结构?它会创建
根据资源的可用性,kubernetes调度程序可以创建这样的其他副本:
Node 1 - Pod 1 -> App1
Pod 2 -> App2
Node 2 - Pod 1 -> App1
Pod 2 -> App2