Kubernetes:需要建议删除一个pod列表,删除之间会有暂停

xxe27gdn  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(109)

日安
有没有Kubernetes pod删除方法,可以删除48个pod的列表,同时等待上一个pod的状态为“Running”,然后删除列表中的下一个pod?
我尝试使用一个for循环,在删除之间使用sleep,但是,有些pod需要比其他pod更长的时间才能重新生成,有时长达8分钟。

sycxhyv7

sycxhyv71#

如果Pod由Deployment管理,kubectl rollout restart deployment ...的行为几乎与您描述的方式相同。在内部,这会更改Pod规范上的注解,对Deployment的大多数其他更改都将表现类似。你不需要自己管理这个。
特别是,通过滚动更新部署,Kubernetes将终止并重新创建Pod。虽然文档中描述了一些更详细的控件,但标准行为是Kubernetes将立即终止25%的Pod,并立即创建新的Pod,最多新的Pod和旧的Pod的总数比replicas:值高25%。随着这些新的Pod开始上线并通过健康检查,更多的旧Pod将被终止和替换。对于你的用例来说,重要的是Kubernetes本身等待健康检查通过;您不需要自己手动管理它。
在有48个副本的示例中,Kubernetes将确保至少有36个副本正在运行(使用maxUnavailable:值),并且最多有60个旧副本和新副本(使用maxSurge:)。假设12个旧副本被删除,24个新副本被创建。一旦第一个新副本更改为Running状态,Kubernetes将删除另一个旧副本,因此始终至少有36个副本正在运行。Kubernetes将为您管理这一点,即使新Pod需要几分钟才能出现(假设其健康检查允许)。

相关问题