【发布时间】:2020-08-27 10:51:50
【问题描述】:
我有一个部署在 Kubernetes 上的应用程序。
此应用程序有 4 个副本,我正在对每个部署进行滚动更新。
此应用程序有一个正常关闭,可能需要数十分钟(它必须等待正在运行的任务完成)。
我的问题是,在更新期间,我的容量过剩,因为所有旧版本的 pod 在创建所有新 pod 时都停留在“Terminating”状态。
在更新期间,我最终运行了 8 个容器,这是我试图避免的事情。
我尝试将 maxSurge 设置为 0,但此设置没有考虑“Terminating” pod,因此部署期间我的服务器上的负载太高。
我想要得到的行为是,只有在旧版本的 pod 成功完成后才会创建新的 pod,所以我始终没有超过我设置的副本数。
我想知道是否有办法实现这种行为。
【问题讨论】:
-
使用
maxSurge,您是在向 kubernetes 说,您允许多少个 pod 居住在所需数量的范围内。您是否尝试将maxUnavailable设置为 1 ?这是在更新过程中可能不可用的 pod 数量。 -
这不会削减它,因为每次部署都需要几个小时,因为它会一个一个地替换 Pod。
标签: kubernetes kubernetes-deployment