头盔失败的测试作业不断重新启动

问题描述 投票:0回答:1

我使用helm命令在集群中运行django单元测试。它们已正确启动,但是当单元测试失败时,尽管“ restartPolicy:Never”,kubernetes仍会一次又一次地重新启动它们。

如何强制kubernetes / helm仅运行一次单元测试,是否失败?

django-test.yml:

apiVersion: batch/v1
kind: Job
metadata:
  name: "{{ .Release.Name }}-django-test"
  labels:
    app: {{ template "myproject.fullname" . }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: "{{ .Release.Name }}"
  annotations:
    "helm.sh/hook": test
spec:
  template:
    metadata:
      name: "{{ .Release.Name }}-django-test"
    spec:
      containers:
        - name: main
          image: {{ template "myproject.django.image" . }}
          args:
            - test
      restartPolicy: Never
➜  ~ kubectl get pods --namespace mynamespace
NAME                            READY   STATUS      RESTARTS   AGE
myrel-django-install-jhspp   0/1     Completed   0          78m
myrel-django-test-6dzrq      0/1     Error       0          47m
myrel-django-test-7hpwm      0/1     Error       0          67m
myrel-django-test-nd74f      0/1     Error       0          73m
myrel-django-test-np5qd      0/1     Error       0          39m
myrel-django-test-nqjdw      0/1     Error       0          60m
myrel-django-test-tjbhc      0/1     Error       0          53m
...
kubernetes kubernetes-helm
1个回答
0
投票

查看backoffLimit选项。

Pod后退失败策略

在某些情况下,您可能要在完成某项工作后失败由于配置等逻辑错误而重试。为此,请设置.spec.backoffLimit在考虑之前指定重试次数作业失败。退避限制默认设置为6。

我还没有尝试过,但是我相信它将为您带来想要的行为。

    spec:
      containers:
        - name: main
          image: {{ template "myproject.django.image" . }}
          args:
            - test
      backoffLimit: 1
      restartPolicy: Never

您可能还会发现以下帖子很有用:Understanding backoffLimit in Kubernetes Job

© www.soinside.com 2019 - 2024. All rights reserved.