我有一组正在运行命令的Pod,可能需要几秒钟。 有一个进程会跟踪打开的请求以及请求正在运行的Pod。 当缩小Pod的规模时,我希望使用该信息 - 可通过指定要保留的Pod或指定要关闭的Pod来实现。在更改副本数量时是否可能指定这种类型的信息,例如我想要X个副本,请尽量不要在A、B、C Pod上杀死我的长时间运行任务?
我有一组正在运行命令的Pod,可能需要几秒钟。 有一个进程会跟踪打开的请求以及请求正在运行的Pod。 当缩小Pod的规模时,我希望使用该信息 - 可通过指定要保留的Pod或指定要关闭的Pod来实现。在更改副本数量时是否可能指定这种类型的信息,例如我想要X个副本,请尽量不要在A、B、C Pod上杀死我的长时间运行任务?
controller.kubernetes.io/pod-deletion-cost: -999
注释来标注特定的Pod,并启用 PodDeletionCost
功能开关。此功能在 1.21 版本中实现 Alpha 版本,在 1.22 版本中实现 Beta 版本。
controller.kubernetes.io/pod-deletion-cost
注释可设置以提示删除与同一 ReplicaSet 中其他 Pod 相比,删除 Pod 的成本。成本较低的 Pod 将首先被删除。
https://github.com/kubernetes/kubernetes/pull/99163 https://github.com/kubernetes/kubernetes/pull/101080
目前这是不可能的。当您缩小副本数量时,系统会选择一个进行删除;没有一种方法可以“提示”要删除哪个副本。
您可以做的一件事是更改正在运行的 Pod 上的标签,这可能会影响它们在复制控制器中的成员资格。这可用于隔离您想要调试的 Pod(使其不成为服务的一部分或被缩放事件删除),但也可能适用于您的用例。