Kubernetes:需要删除 Pod 列表并在删除之间暂停的建议

问题描述 投票:0回答:1

美好的一天。

是否有一种 Kubernetes pod 删除方法,可以删除 48 个 pod 的列表,同时等待前一个 pod 处于“正在运行”状态,然后再删除列表中的下一个 pod?

我尝试使用 for 循环并在删除之间进行睡眠,但是,某些 pod 需要比其他 pod 更长的时间才能重新生成,有时长达 8 分钟。

kubernetes kubectl
1个回答
0
投票

如果 Pod 由 Deployment 管理,

kubectl rollout restart deployment ...
的行为几乎与您描述的方式相同。在内部,这会更改 Pod 规范上的注释,并且对 Deployment 的大多数其他更改都会表现类似。您不需要自己管理。

特别是,通过“滚动更新部署”,Kubernetes 将终止并重新创建 Pod。虽然文档中描述了一些更详细的控制,但标准行为是 Kubernetes 将立即终止 25% 的 Pod,并立即创建新 Pod,新旧 Pod 总数不得超过 25% replicas:价值。随着这些新 Pod 开始上线并通过健康检查,更多旧 Pod 将被终止和替换。对于您的用例来说,重要的是 Kubernetes 本身会等待运行状况检查通过;您不需要自己手动管理。

在具有 48 个副本的示例中,Kubernetes 将确保至少有 36 个副本正在运行(使用 

maxUnavailable:

值),并且最多有 60 个旧副本和新副本(使用

maxSurge:
)。假设删除 12 个旧副本,并创建 24 个新副本。一旦第一个新副本变为
Running
状态,Kubernetes 将删除另一个旧副本,以便始终至少有 36 个副本在运行。即使新 Pod 需要几分钟才能启动,Kubernetes 也会为您管理此操作(假设其运行状况检查允许这样做)。
    

© www.soinside.com 2019 - 2024. All rights reserved.