我在kubernetes集群中有3个节点。我创建了一个daemonset
并将其部署在所有3个设备中。这个daemonset
创建了3个pod并且它们已成功运行。但由于某些原因,其中一个pod失败了。
我需要知道如何在不影响守护程序集中的其他pod的情况下重新启动此pod,同时不创建任何其他守护程序集部署?
由于
答案 0 :(得分:30)
kubectl delete pod <podname>
它将删除这一个pod并且DaemonSet将重新安排一个新的
答案 1 :(得分:6)
仅供其他阅读此内容的人...
更好的解决方案(IMHO)是实施liveness prob,如果容器未通过探针测试,则该容器将强制Pod重新启动容器。
这是K8s开箱即用的一项出色功能。这是自动修复。
还要查看lifecycle docs窗格。
答案 2 :(得分:1)
还有其他可能实现您想要的东西:
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的名称。