当添加命令时:在我的deployment.yaml中,我的Pod转到CrashLoopBackOff

时间:2019-09-17 18:28:13

标签: kubernetes-helm

当我将任何命令添加到deployment.yaml中时,我的吊舱将转到CrashLoopBackOff,如果我删除这些命令,它将正常运行。 kubectl日志显示我“你好”,但是http似乎没有启动。

    spec:
      containers:
      - name: {{ .Chart.Name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        env:
    {{- range $pkey, $pval := .Values.env }}
        - name: {{ $pkey }}
          value: {{ quote $pval }}
{{- end }}
        **command: ["echo hello"]**
        ports:
        - containerPort: {{ .Values.service.internalPort }}
        livenessProbe:
          httpGet:
            path: {{ .Values.probePath }}
            port: {{ .Values.service.internalPort }}
          initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
          periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
          successThreshold: {{ .Values.livenessProbe.successThreshold }}
          timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
        readinessProbe:
          httpGet:
            path: {{ .Values.probePath }}
            port: {{ .Values.service.internalPort }}
          periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
          successThreshold: {{ .Values.readinessProbe.successThreshold }}
          timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
        resources:
{{ toYaml .Values.resources | indent 12 }}
      terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
{{- end }}

有人可以帮助我吗? 谢谢

1 个答案:

答案 0 :(得分:1)

Docker容器一旦退出运行,就会被杀死。在您的情况下,Pod启动了一个容器,但是在echo hello之后没有任何事可做,因此该容器将以成功代码终止。但是kubernetes默认会尝试再次启动它,因此它会生成另一个容器,但又会退出,并且这是循环发生的,因此您会得到CrashLoopBackOff