Kubernetes按比例缩小特定吊舱

时间:2020-07-04 15:04:07

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-pod kubernetes-hpa

我有一个Kubernetes部署,其中可以有多个副本容器。我希望根据我的python应用程序中的某些逻辑(而不是hpa中的自定义指标)来水平地增加或减少pod。

我有两种方法:

  1. 通过使用Kubernetes API通过我的应用程序使用水平Pod自动标量并更改minReplicas,maxReplicas
  2. 使用API​​直接更新我的部署中的“ / spec / replicas”字段

以上两种情况都适用于高端和低端。

但是,当我缩小比例时,我想删除一个特定的Pod,而不要删除任何其他Pod。

如果我在HPA中更新minReplicas maxReplicas,则它会随机删除一个pod。 更新部署中的/ spec / replicas字段时,该操作相同。

在缩小时如何删除特定的窗格?

1 个答案:

答案 0 :(得分:0)

我不知道有什么方法可以确保在缩小期间删除ReplicaSet中的特定容器。您可以使用StatefulSet实现此行为,该方法将始终按比例删除最后一个pod。

例如,如果我们有一个StatefulSet foo,它被缩放为3,那么我们将拥有pod:

  • foo-0
  • foo-1
  • foo-2

如果将StatefulSet缩放为2,则控制器将删除foo-2。但是请注意,StatefulSet还需要注意其他limitations