删除一个吊舱时,如何延迟在部署中创建新吊舱?

时间:2020-04-20 09:33:29

标签: deployment kubectl

如果部署将副本设置为2,则我们使用“ kubectl delete pods”命令删除一个Pod,那么旧Pod将处于“终止”状态,而新Pod将会出现。

因此,我希望新的Pod将在旧Pod成功终止后开始创建,那么,我应该怎么做?

1 个答案:

答案 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,例如maxSurgemaxUnavailable

  • (不建议使用)与grace-period=0参数一起使用force,但这可能会导致不一致或数据丢失,需要进行确认。 herehere的更多详细信息。

请让我知道是否有帮助。