【问题标题】:CrashLoopBackOff - Back-off restarting failed containerCrashLoopBackOff - 后退重启失败的容器
【发布时间】:2020-05-21 00:45:59
【问题描述】:

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

我遵循的步骤:

  1. 创建 imagePullSecretKey
  2. 创建通用密钥以与 GCP 通信。 (kubectl create secret generic gcp-key --from-file=key.json)
  3. 我有 deployment.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

当我执行命令 - 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)

条件:

类型状态

初始化为真

准备假

ContainersReady 错误

PodScheduled True

卷:

谷歌云密钥:

Type:        Secret (a volume populated by a Secret)

SecretName:  gcp-key

Optional:    false

默认令牌-s4jgd:

Type:        Secret (a volume populated by a Secret)

SecretName:  default-token-s4jgd

Optional:    false

QoS 等级:尽力而为

节点选择器:

容忍度:node.kubernetes.io/not-ready:NoExecute for 300s

             node.kubernetes.io/unreachable:NoExecute for 300s

事件:

输入原因年龄来自
留言

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

正常调度 46m 默认调度器
成功分配 default/sv-premier-6b77ddd747-cvdr5 到 码头工人桌面

Normal Pulled 45m (x4 over 46m) kubelet, docker-desktop 成功拉取图片 "gcr.io/proto/premiercore1:latest"

Normal Created 45m (x4 over 46m) kubelet, docker-desktop 创建容器 sv-premier

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

Normal Pulling 45m (x5 over 46m) kubelet, docker-desktop 拉取镜像“gcr.io/proto/premiercore1:latest”

Warning BackOff 92s (x207 over 46m) kubelet, docker-desktop 回退重启失败的容器

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

输出为 -

kubectl logs podname --> 完成部署 sv-premier

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

请指导。

【问题讨论】:

  • 您的容器已完成,退出代码为零,即成功代码。你应该用一个长时间运行的命令替换你的命令,比如sleep
  • 谢谢 DT。它解决了我的问题。这里有一个简单的问题 - 创建部署时,我正在尝试使用 curl localhost:8080 访问应用程序,但是 - 无法连接到 localhost 端口 8080:连接被拒绝
  • 您需要通过服务公开您的部署阅读更多here
  • 嗨@DT。你能看看这个吗--stackoverflow.com/q/60088378/2784032

标签: kubernetes google-cloud-platform kubectl


【解决方案1】:

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

command: ["/bin/sh"]
args: ["-c", "while true; do echo Done Deploying sv-premier; sleep 3600;done"]

这将使您的容器在部署后进入休眠状态,并且每隔一小时就会记录一次消息。

阅读更多关于pod lifecycle容器状态here

【讨论】:

    猜你喜欢
    • 2022-01-15
    • 2019-10-30
    • 2021-01-13
    • 1970-01-01
    • 2020-03-05
    • 2018-05-15
    • 2021-11-21
    • 2019-06-23
    • 2020-10-02
    相关资源
    最近更新 更多