将Kubernetes配置为每个至少有一个吊舱

将Kubernetes配置为每个至少有一个吊舱,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我们有一个有3个节点的GKE集群 在这些节点上,一个ReplicationController被设置为运行3个A型吊舱,另一个ReplicationController被设置为运行4个B型吊舱 我们设置了一个实例组管理器来自动缩放CPU上的节点 因为集群上没有负载,所以它缩小到1个节点。 现在,该节点只运行2个B型吊舱和0个A型吊舱 我有点期待它在缩小比例后至少剩下1个A荚和1个B荚,但那没有发生。 有没有办法将Kubernetes(或GKE)配置为每个pod至少有一个?有。使用并设置副本:1群

我们有一个有3个节点的GKE集群

在这些节点上,一个ReplicationController被设置为运行3个A型吊舱,另一个ReplicationController被设置为运行4个B型吊舱

我们设置了一个实例组管理器来自动缩放CPU上的节点

因为集群上没有负载,所以它缩小到1个节点。 现在,该节点只运行2个B型吊舱和0个A型吊舱

我有点期待它在缩小比例后至少剩下1个A荚和1个B荚,但那没有发生。
有没有办法将Kubernetes(或GKE)配置为每个pod至少有一个?有。使用并设置副本:1

群集自动缩放器通常基于群集设置节点数。它不知道您在虚拟机上运行什么(吊舱或其他),只查看利用率

GoogleContainerEngine/Kubernetes调度程序查看每个pod的资源请求,并找到运行pod的可用节点。如果没有可用空间,pod将保持挂起状态,而不是开始运行

听起来您正在经历这样一种情况:正在运行的POD没有使用足够的CPU,导致autoscaler向您的集群添加新节点,但现有节点没有足够的容量容纳您要调度的POD

配置VM autoscaler时,您可以根据希望在集群中始终运行的最小机架占用空间设置最小VM数(请参阅)。这样,autoscaler就不会删除所有POD运行所需的VM


您还可以查看Kubernetes 1.1中的,以根据观察到的CPU使用情况增加复制控制器中pod副本的数量

我们已经使用了复制控制器,将A设置为3,B设置为4。我们如何使复制控制器规模与实例组管理器保持同步?这是一个不同的问题,我不知道为什么要这样做,但您可以试试autoscaler,例如