Pod 创建后从 Docker Hub 拉取镜像时,Kubernetes CrashLoopBackOff

Pod 创建后从 Docker Hub 拉取镜像时,Kubernetes CrashLoopBackOff

在 Digital Ocean Kubernetes 集群上,我尝试使用从 Docker Hub 提取的 Docker 镜像创建一个 pod,但它不断出现 CrashLoopBackOff 并重新启动失败。该镜像是 docker 容器中的 Rails 应用程序,非常大。我怀疑 Kubernetes 在镜像加载之前重新启动了 pod。

错误如下:

kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE exactpos-deployment-864c768bff-zr86t 0/1 CrashLoopBackOff 10 27m 10.244.66.4 sleepy-nobel-3v8a nginx-deployment-7d69d57649-97w92 1/1 Running 0 40m 10.244.66.7 sleepy-nobel-3v8a

事件:类型原因年龄来自消息
---- ------ ---- ---- ------- 正常计划 27m 默认调度程序已成功将 default/exactpos-deployment-864c768bff-zr86t 分配给 sleepy-nobel-3v8a

正常拉取 26 分钟(x4 超过 27 分钟)kubelet、sleepy-nobel-3v8a 成功拉取镜像“index.docker.io/markhorrocks/exactpos_web:prod”

正常 创建时间 26 分钟(x4 共 27 分钟) kubelet、sleepy-nobel-3v8a 创建容器

正常启动 26 分钟(x4 超过 27 分钟) kubelet、sleepy-nobel-3v8a 启动容器

正常拉动 26m(x5 超过 27m)kubelet,sleepy-nobel-3v8a 拉动图像“index.docker.io/markhorrocks/exactpos_web:prod”

警告 BackOff 2m(x117 超过 27m)kubelet,sleepy-nobel-3v8a 后退重启失败的容器

这是我的 yaml 文件

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  name: exactpos-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: exactpos-deployment
  template:
    metadata:
      labels:
        app: exactpos-deployment
    spec:
      containers:
        - name: exactpos
          image: index.docker.io/markhorrocks/exactpos_web:prod
          imagePullPolicy: Always
          command: [ "echo", "SUCCESS" ]
      imagePullSecrets:
         - name: dockerhub-cred

答案1

我花大约 18 个小时甚至更长时间来解决这类问题。

解决方案很简单,像往常一样。只需检查您的 /etc/resolv.conf 即可工人有正确的 DNS 解析。像这样:

修改 /etc/resolv.conf

名称服务器 8.8.8.8 (新行) 名称服务器 8.8.4.4

通过删除损坏的 pod 来重新启动它们。

这是四年前的问题。但我从未在互联网上的任何地方看到过我的答案。

相关内容