如果部署将副本设置为2,则我们使用“ kubectl delete pods”命令删除一个Pod,那么旧Pod将处于“终止”状态,而新Pod将会出现。
因此,我希望新的Pod将在旧Pod成功终止后开始创建,那么,我应该怎么做?
答案 0 :(得分:0)
您可以使用wait命令:
等待一种或多种资源的特定条件。
该命令占用多个资源,并等待直到指定 每个给定资源的“状态”字段中都可以看到这种情况。
或者,该命令可以通过将关键字“ delete”作为值的集合,等待给定的资源集被删除。 --for标志。
以下是一个示例:
在发出“删除”命令后,等待荚“ busybox1”被删除,超时为60秒:
kubectl delete pod/busybox1
kubectl wait --for=delete pod/busybox1 --timeout=60s
---编辑---
取决于您的用例,其他选项是:
使用StatefulSet进行“有序,优雅的部署和扩展。”
将副本设置为1,直到第二个pod终止,然后再将其设置回2
使用其他deployment configuration,例如maxSurge
和maxUnavailable
(不建议使用)与grace-period=0
参数一起使用force
,但这可能会导致不一致或数据丢失,需要进行确认。 here和here的更多详细信息。
请让我知道是否有帮助。