CrashLoopBackOff - 后退重新启动失败的容器

Shw*_*wet 3 google-cloud-platform kubernetes kubectl

我的图像托管在 GCR 上。我想在我的本地系统(mac)上创建 Kubernetes 集群。

我遵循的步骤:

  1. 创建一个 imagePullSecretKey
  2. 创建通用密钥以与 GCP 通信。(kubectl 创建秘密通用 gcp-key --from-file=key.json)
  3. 我有部署.yaml 文件
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sv-premier
spec:
  selector:
    matchLabels:
      app: sv-premier
  template:
    metadata:
      labels:
        app: sv-premier
    spec:
      volumes:
      - name: google-cloud-key
        secret:
          secretName: gcp-key
      containers:
      - name: sv-premier
        image: gcr.io/proto/premiercore1:latest
        imagePullPolicy: Always
        command: ["echo", "Done deploying sv-premier"]
        volumeMounts:
        - name: google-cloud-key
          mountPath: /var/secrets/google
        env:
        - name: GOOGLE_APPLICATION_CREDENTIALS
          value: /var/secrets/google/key.json
        ports:
        - containerPort: 8080
      imagePullSecrets:
      - name: imagepullsecretkey
Run Code Online (Sandbox Code Playgroud)

当我执行命令 - kubectl apply -f deployment.yaml 时,出现CrashLoopBackOff错误

日志 -

kubectl 描述 pods podname

=======================

名称: sv-premier-6b77ddd747-cvdr5

命名空间:默认

优先级:0

节点:docker-desktop/192.168.65.3

开始时间:2020年2月4日星期二14:18:47 +0530

标签: app=sv-premier

pod-template-hash=6b77ddd747

注释:

状态:正在运行

IP:10.1.0.43

IP:

控制者:ReplicaSet/sv-premier-6b77ddd747

容器:

SV-超级联赛:

Container ID:  docker://141126d732409427fe39b405865f88856ac4e1d8586112797fc5bf4fdfbe317c

Image:         gcr.io/proto/premiercore1:latest

Image ID:      docker-pullable://gcr.io/proto/premiercore1@sha256:b3800ccca3f30725d5c9235dd349548f0fcfe309f51883d8af16397aef2c3953

Port:          8080/TCP

Host Port:     0/TCP

Command:

  echo

  Done deploying sv-premier

State:          Waiting

  Reason:       CrashLoopBackOff

Last State:     Terminated

  Reason:       Completed

  Exit Code:    0

  Started:      Tue, 04 Feb 2020 15:00:51 +0530

  Finished:     Tue, 04 Feb 2020 15:00:51 +0530

Ready:          False

Restart Count:  13

Environment:

  GOOGLE_APPLICATION_CREDENTIALS:  /var/secrets/google/key.json

Mounts:

  /var/run/secrets/kubernetes.io/serviceaccount from default-token-s4jgd (ro)

  /var/secrets/google from google-cloud-key (rw)
Run Code Online (Sandbox Code Playgroud)

状况:

类型 状态

初始化为真

准备好假

容器就绪 False

PodScheduled True

卷:

谷歌云密钥:

Type:        Secret (a volume populated by a Secret)

SecretName:  gcp-key

Optional:    false
Run Code Online (Sandbox Code Playgroud)

默认令牌-s4jgd:

Type:        Secret (a volume populated by a Secret)

SecretName:  default-token-s4jgd

Optional:    false
Run Code Online (Sandbox Code Playgroud)

QoS 等级:尽力而为

节点选择器:

容忍:node.kubernetes.io/not-ready:NoExecute 300 秒

             node.kubernetes.io/unreachable:NoExecute for 300s
Run Code Online (Sandbox Code Playgroud)

活动:

类型 原因
消息年龄

---- ------ ---- ----

正常调度 46m default-scheduler
已成功将 default/sv-premier-6b77ddd747-cvdr5 分配给 docker-desktop

正常拉取 45m(46m 上的 x4)kubelet、docker-desktop 成功拉取镜像“gcr.io/proto/premiercore1:latest”

正常 创建 45m (x4 over 46m) kubelet、docker-desktop 创建容器 sv-premier

正常启动 45m (x4 over 46m) kubelet, docker-desktop 启动容器 sv-premier

正常拉取 45m(46m 上 x5)kubelet、docker-desktop 拉取镜像“gcr.io/proto/premiercore1:latest”

警告 BackOff 92s (x207 over 46m) kubelet、docker-desktop 后退重新启动失败的容器

=======================

并输出 -

kubectl 记录 podname -->完成部署 sv-premier

我很困惑为什么我的容器正在退出。无法启动。

请指导。

DT.*_*DT. 6

使用长时间运行的任务示例更新您的deployment.yaml。

command: ["/bin/sh"]
args: ["-c", "while true; do echo Done Deploying sv-premier; sleep 3600;done"]
Run Code Online (Sandbox Code Playgroud)

这将使您的容器在部署后进入睡眠状态,并且每小时都会记录该消息。

在此处阅读有关pod 生命周期容器状态的更多信息