如何在kubernetes部署中重新启动失败的pod

时间:2018-03-21 12:05:43

标签: kubernetes

我在kubernetes集群中有3个节点。我创建了一个daemonset并将其部署在所有3个设备中。这个daemonset创建了3个pod并且它们已成功运行。但由于某些原因,其中一个pod失败了。

我需要知道如何在不影响守护程序集中的其他pod的情况下重新启动此pod,同时不创建任何其他守护程序集部署?

由于

4 个答案:

答案 0 :(得分:30)

kubectl delete pod <podname>它将删除这一个pod并且DaemonSet将重新安排一个新的

答案 1 :(得分:6)

仅供其他阅读此内容的人...

更好的解决方案(IMHO)是实施liveness prob,如果容器未通过探针测试,则该容器将强制Pod重新启动容器。

这是K8s开箱即用的一项出色功能。这是自动修复。

还要查看lifecycle docs窗格。

答案 2 :(得分:1)

还有其他可能实现您想要的东西:

  • 您可以仅设置一些环境变量,以强制您的部署Pod重新启动:

let x = 4; let y = []; let z = {}; let v = 5; let a = function() {}; let u = 4; z.c = []; w = 2;

  • 您可以将部署扩展到零,然后再恢复到正值
kubectl set env deploy/mydeploy DEPLOY_DATE="$(date)"

答案 3 :(得分:0)

kubectl -n <namespace> delete pods --field-selector=status.phase=Failed

当您要重新启动1个或多个失败的Pod时,我认为上述命令非常有用:D

我们不需要关心失败的pod的名称。