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

S A*_*rew 22 kubernetes

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

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

谢谢

dev*_*tor 54

还有其他可能性来实现你想要的:

  • 只需使用rollout命令

    kubectl rollout restart deployment mydeploy

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

    kubectl set env deployment mydeploy DEPLOY_DATE="$(date)"

  • 您可以将部署扩展到零,然后恢复到某个正值

    kubectl scale deployment mydeploy --replicas=0
    kubectl scale deployment mydeploy --replicas=1
Run Code Online (Sandbox Code Playgroud)


Rad*_*nka 43

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

  • 您可以使用选择器删除所有 pod:`kubectl delete pod -l app=my-app` (7认同)
  • 如果您收到“来自服务器的错误(NotFound):未找到 pods &lt;podname&gt;”,我意识到我还需要添加名称空间“kubectl delete pod &lt;podname&gt; -n &lt;namespace&gt;” (2认同)

Eld*_*sis 7

只供其他人阅读...

更好的解决方案(IMHO)是实现活动探针,如果探针测试失败,则该容器将强制容器重新启动容器。

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

另请参阅Pod 生命周期文档

  • 它将重新启动一个容器,但不会重新启动 pod。 (2认同)