重新启动Kubernetes作业

8fq7wneg  于 2023-05-16  发布在  Kubernetes
关注(0)|答案(1)|浏览(167)

我在服务器端使用Kubernetes 1.26(EKS)和kubectl客户端1.27.1。
我有一个这样定义的工作:

apiVersion: batch/v1
kind: Job
metadata:
  name: build
spec:
  template:
    spec:
      restartPolicy: Never
      volumes:
          .....
      containers:
          - name: build-tool
          ....

我的pod由于OOMKilled或其他原因而死亡,然后Kubernetes启动另一个pod。为什么?
它不应该重新启动。
相关阅读:

unhi4e5o

unhi4e5o1#

我想你错过了文档的这一部分:
由于多种原因,整个Pod也可能失败,例如当Pod被踢出节点(节点升级,重启,删除等)时,或者Pod的容器失败并且.spec.template.spec.restartPolicy =“Never”。**当Pod失败时,Job控制器会启动一个新的Pod。**这意味着您的应用需要处理在新Pod中重新启动的情况。特别是,它需要处理临时文件、锁、不完整的输出等由以前的运行引起的问题。
spec.template.spec.restartPolicy的值影响Pod(docs)中失败 containers 的响应,但与Pod本身的失败无关。
您可以通过设置podFailurePolicy来控制Job控制器如何响应失败的 Pod

相关问题