为什么带有简单 hello-world 镜像的 kubernetes pod 会收到 CrashLoopBackOff 消息

Sno*_*ash 3 kubernetes

pod.yml

apiVersion: v1
kind: Pod
metadata:
    name: hello-pod
    labels:
        zone: prod
        version: v1
spec:
    containers:
    - name: hello-ctr
      image: hello-world:latest
      ports:
      - containerPort: 8080
Run Code Online (Sandbox Code Playgroud)

kubectl create -f pod.yml

kubectl get pods
NAME        READY     STATUS             RESTARTS   AGE
hello-pod   0/1       CrashLoopBackOff   5          5m
Run Code Online (Sandbox Code Playgroud)

为什么CrashLoopBackOff

aur*_*ius 8

在这种情况下,预期的行为是正确的。hello-world 容器旨在打印一些消息,然后在完成后退出。所以这就是为什么你会得到CrashLoopBackOff-

Kubernetes 运行一个 pod - 内部的容器运行预期的命令,然后退出。

突然下面没有任何东西在运行 - 所以 Pod 再次运行 -> 同样的事情发生并且数量restarts增加。

您可以看到,其中kubectl describe podstateTerminated是可见的,而Reasonfor it 是 status Completed。如果您选择完成后不退出的容器映像,则 Pod 将处于运行状态。