关于节点Kubernetes吊舱分配概念的质疑

关于节点Kubernetes吊舱分配概念的质疑,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我是Kuberenetes的初学者,我想询问一些与Kuberenetes吊舱作业相关的概念 假设需要部署3个副本集 (一) 假设有4个节点,其中每个节点都是具有不同CPU和内存的不同物理服务器 部署完成后,kubernetes将如何将POD关联到节点?是否存在这样一种情况:它将在同一台服务器上放置多个pod,而服务器没有pod分配(由于资源考虑) (二) 假设有4个节点(在4个相同的物理服务器上),并且在4个节点中的每个节点上创建1个pod 假设现在其中一个节点发生故障。库贝雷内特斯会怎么处理?

我是Kuberenetes的初学者,我想询问一些与Kuberenetes吊舱作业相关的概念

假设需要部署3个副本集

(一)

假设有4个节点,其中每个节点都是具有不同CPU和内存的不同物理服务器

部署完成后,kubernetes将如何将POD关联到节点?是否存在这样一种情况:它将在同一台服务器上放置多个pod,而服务器没有pod分配(由于资源考虑)

(二)

假设有4个节点(在4个相同的物理服务器上),并且在4个节点中的每个节点上创建1个pod

假设现在其中一个节点发生故障。库贝雷内特斯会怎么处理?它是否会在其他3个节点中的一个节点上重新创建pod,基于哪个节点具有更多可用资源



谢谢你事先提出的任何建议

  • Kubernetes将尝试将POD部署到多个节点,以获得更好的可用性和恢复能力。这将基于节点的资源可用性。因此,如果任何节点没有足够的容量承载一个pod,则可能会将一个pod的多个副本调度到同一节点中

  • Kubernetes将把pod从故障节点重新调度到其他有足够容量承载pod的可用节点。在此过程中,如果没有足够的节点可以承载副本,则有可能在同一节点上调度多个副本

  • 您可以阅读有关调度算法的更多信息

    您可以通过以下方式影响计划程序:

  • Kubernetes将尝试将POD部署到多个节点,以获得更好的可用性和恢复能力。这将基于节点的资源可用性。因此,如果任何节点没有足够的容量承载一个pod,则可能会将一个pod的多个副本调度到同一节点中

  • Kubernetes将把pod从故障节点重新调度到其他有足够容量承载pod的可用节点。在此过程中,如果没有足够的节点可以承载副本,则有可能在同一节点上调度多个副本

  • 您可以阅读有关调度算法的更多信息


    您可以通过

    来影响调度程序。Kubernetes文档中简要讨论了。通常,调度是相当不透明的,但您也倾向于将目标放在负载相当好的节点上;从应用程序的角度来看,重要的是在pod规范中设置适当的资源
    请求:
    。只要每个节点上有足够的空间来满足资源请求,通常选择哪个节点并不重要

    在您描述的场景中,(1)两个副本可能放置在同一个节点上,因此两个节点将不使用。如果节点不完全相同并且有资源限制,则尤其如此:如果您的POD需要4GB的RAM,但您的某些节点的RAM小于4GB(在考虑系统POD和守护程序集POD之后),则无法在那里安排POD

    如果某个节点出现故障(2),Kubernetes将在可能的情况下自动重新安排该节点上运行的POD。“失败”是一个广泛的情况,可以包括故意停止升级或更换的节点。在后一种情况下,您可以控制集群的行为;请参阅文档中的


    许多环境都将运行一个。这可能会导致节点自动进出:如果您尝试调度一个pod,但它不适合,autoscaler将分配一个新节点,如果一个节点的利用率低于50%,它将被删除(并重新调度其pod)。在第一个场景中,您可能只从一个节点开始,但当pod副本不完全适合时,autoscaler会创建一个新节点,一旦可用,多余的pod就可以安排在那里。

    Kubernetes文档中简要讨论了。通常,调度是相当不透明的,但您也倾向于将目标放在负载相当好的节点上;从应用程序的角度来看,重要的是在pod规范中设置适当的资源
    请求:
    。只要每个节点上有足够的空间来满足资源请求,通常选择哪个节点并不重要

    在您描述的场景中,(1)两个副本可能放置在同一个节点上,因此两个节点将不使用。如果节点不完全相同并且有资源限制,则尤其如此:如果您的POD需要4GB的RAM,但您的某些节点的RAM小于4GB(在考虑系统POD和守护程序集POD之后),则无法在那里安排POD

    如果某个节点出现故障(2),Kubernetes将在可能的情况下自动重新安排该节点上运行的POD。“失败”是一个广泛的情况,可以包括故意停止升级或更换的节点。在后一种情况下,您可以控制集群的行为;请参阅文档中的

    许多环境都将运行一个。这可能会导致节点自动进出:如果您尝试调度一个pod,但它不适合,autoscaler将分配一个新节点,如果一个节点的利用率低于50%,它将被删除(并重新调度其pod)。在第一个场景中,您可能只从一个节点开始,但当pod副本不完全适合时,autoscaler会创建一个新节点,一旦可用,多余的pod就可以安排在那里