0

我在 minikube 中应用了约束。我已经构建了一个 go 程序作为图像,它将通过应用 pod.yaml 文件作为 pod 执行。当我使用“kubectl get pods”获取 pod 的状态时,几秒钟后它显示“crashloopbackoff”作为状态。然后它显示为警告“后退重新启动失败的容器”。为什么 pod 在没有显示 crashoopbackoff 错误或任何重启警告状态的情况下无法永久成功运行。

豆荚.yaml

apiVersion: v1
kind: Pod
metadata:
 name: opa
 labels:
name: opa
namespace: test
owner: name.agilebank.demo
spec:
containers:
  - name: opa
    image: user-name/image-name
resources:
  limits:
    memory: "1Gi"
    cpu: "200m"
ports:
  - containerPort: 8000

     
    `kubectl get pods`
     NAME   READY   STATUS             RESTARTS   AGE
     opa    0/1     CrashLoopBackOff   12         41m


     `kubectl describe pod pod-name`
      Name:         opa
      Namespace:    default
      Priority:     0
      Node:         minikube/ip
      Start Time:   Mon, 23 Aug 2021 19:31:52 +0530
      Labels:       name=opa
          namespace=test
          owner=name.agilebank.demo
      Annotations:  <none>
      Status:       Running
      IP:           ip-no
      IPs:
        IP:  ip-no
        Containers:
      opa:
        Container ID:   docker://no
        Image:          username/img-name
        Image ID:       docker-pullable://username/img-name
        Port:           8000/TCP
        Host Port:      0/TCP
        State:          Waiting
        Reason:       CrashLoopBackOff
        Last State:     Terminated
        Reason:       Completed
        Exit Code:    0
        Started:      Mon, 23 Aug 2021 20:13:02 +0530
        Finished:     Mon, 23 Aug 2021 20:13:05 +0530
        Ready:          False
        Restart Count:  12
        Limits:
          cpu:     200m
          memory:  1Gi
        Requests:
          cpu:        200m
          memory:     1Gi
          Environment:  <none>
          Mounts:
            /var/run/secrets/kubernetes.io/serviceaccount from            default-token-5zjvn (ro)
          Conditions:
          Type              Status
          Initialized       True 
          Ready             False 
          ContainersReady   False 
          PodScheduled      True 
          Volumes:
             default-token-5zjvn:
          Type:        Secret (a volume populated by a Secret)
          SecretName:  default-token-5zjvn
          Optional:    false
          QoS Class:       Guaranteed
          Node-Selectors:  <none>
          Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
          node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
          Events:
          Type     Reason     Age                  From               Message
           ----     ------     ----                 ----               -------
          Normal   Scheduled  45m                  default-scheduler  Successfully assigned default/opa to minikube
          Normal   Pulling    45m                  kubelet            Pulling image "usernaame/img-name"
          Normal   Pulled     41m                  kubelet            Successfully pulled image "username/img-name"
          Normal   Created    39m (x5 over 41m)    kubelet            Created container opa
          Normal   Started    39m (x5 over 41m)    kubelet            Started container opa
          Normal   Pulled     30m (x7 over 41m)    kubelet            Container image "username/img-name" already present on machine
         Warning  BackOff    19s (x185 over 41m)  kubelet            Back-off restarting failed container
4

1 回答 1

0

你的申请有问题。你的应用程序退出Exit Code: 0

它可能会执行您告诉执行和完成工作的内容,如果您想让容器保持活动状态,您的应用程序应该在该容器内运行。

这不是探测错误。如果出现探测错误,您可能会遇到类似以下的事件:

  Warning  Unhealthy  13s (x4 over 43s)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 404

您在容器中的应用程序是一直在运行还是什么?如果你想执行它并完成,你不应该使用Pod. 你应该使用Job.

于 2021-08-23T19:20:47.573 回答