停止重启kubernetes pod

时间:2020-05-19 13:30:44

标签: kubernetes restart kubernetes-pod

有什么方法可以停止在容器内部失败时一次又一次地重新启动Pod。

一种简单的检查方法是将[ "exit", "1" ]传递给pod as-

enter code here
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: alpine:latest
    command: ['sh','-c','exit','1']

注意-
RestartPolicy : Never不支持此选项。

2 个答案:

答案 0 :(得分:1)

您将需要更改Pod的重启策略:

PodSpec的restartPolicy字段的值可能为Always,OnFailure和Never。默认值为始终。 restartPolicy适用于Pod中的所有容器。 restartPolicy仅指通过kubelet在同一节点上重新启动容器。由kubelet重新启动的已退出容器将以指数退避延迟(10s,20s,40s…)重新启动,上限为5分钟,并在成功执行十分钟后重置。如Pods文档中所述,一旦绑定到一个节点,一个Pod将永远不会反弹到另一个节点。

查看更多详细信息herehere

答案 1 :(得分:-1)

您使用的是StatefulSet,如果一个容器发生故障,则负责重启pod。如果您的容器是辅助工具,则不管是否失败,都可以在每次失败时包装容器的命令和exit 0,然后StatefulSet不会检测到任何失败。例如,您可以使用以下命令:

exit 1 & # your container's command should be here
PID=$!
wait $PID
exit 0