Kubernetes在创建Pod时给出CrashLoopBackOff错误

时间:2020-01-17 09:16:00

标签: linux docker kubernetes orchestration

我正在创建节点容器的容器,它给出了 CrashLoopBackOff 错误。

kubectl获取广告连播

enter image description here

kubectl描述pod test-node3

enter image description here

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

您的容器运行时间不长。容器中的主进程以退出代码0退出,这通常表示该进程已成功终止。您可以在kubectl描述您共享的输出中看到它。

Reason: Completed 
Exit Code: 0

答案 1 :(得分:2)

您可以添加以下命令,以便Pod保持运行状态。

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

参考:Doc

答案 2 :(得分:1)

一旦通过调度程序将Pod分配给节点,kubelet将开始使用容器运行时来创建容器。容器有三种可能的状态:等待,正在运行和已终止。

已终止:表示容器已完成执行并已停止运行

容器成功完成执行或由于某种原因失败时都会进入容器。无论如何,都会显示原因和退出代码,以及容器的开始和结束时间。

在屏幕截图中,可以清楚地看到pod内的容器正在运行并完成工作,退出代码为0,如下面的片段

  State:          Terminated
    Reason:       Completed
    Exit Code:    0

您应该在容器中添加一个长时间运行的过程,或者在pod定义中定义restartPolicy: Never

添加了正确的重启策略,对映像进行了测试,POD可以正常运行而不会崩溃

kubectl run test --image=abhishekk27/kube-pub:new --restart=Never

$ kubectl get pods
NAME      READY   STATUS      RESTARTS   AGE
test      0/1     Completed   0          8m12s

生成的Yaml:

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: test
  name: test
spec:
  containers:
  - image: abhishekk27/kube-pub:new
    name: test
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never

结果

$ kubectl describe pod test
Name:         test
Namespace:    default
Priority:     0
Node:         dlv-k8s-node-1/131.160.200.104
Start Time:   Fri, 17 Jan 2020 09:45:00 +0000
Labels:       run=test
Annotations:  <none>
Status:       Succeeded
IP:           10.244.1.12
IPs:
  IP:  10.244.1.12
Containers:
  test:
    Container ID:   docker://b335e5fef022dced824f85ba2bfe4c024608c9b5463599eb36591a14d709786d
    Image:          abhishekk27/kube-pub:new
    Image ID:       docker-pullable://abhishekk27/kube-pub@sha256:6a696bd733edaa48b9be781960f4ee178d16f1c9aea51e53bd0f54326a3d05b1
    Port:           <none>
    Host Port:      <none>
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Fri, 17 Jan 2020 09:45:48 +0000
      Finished:     Fri, 17 Jan 2020 09:45:48 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-7f4mt (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-7f4mt:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-7f4mt
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age    From                     Message
  ----    ------     ----   ----                     -------
  Normal  Scheduled  6m50s  default-scheduler        Successfully assigned default/test to dlv-k8s-node-1
  Normal  Pulling    6m46s  kubelet, dlv-k8s-node-1  Pulling image "abhishekk27/kube-pub:new"
  Normal  Pulled     5m58s  kubelet, dlv-k8s-node-1  Successfully pulled image "abhishekk27/kube-pub:new"
  Normal  Created    5m58s  kubelet, dlv-k8s-node-1  Created container test
  Normal  Started    5m58s  kubelet, dlv-k8s-node-1  Started container test
相关问题