【问题标题】:ImagePullBackOff error while running kubernetes deployment on slave machine , where docker docker image is present in master machine在从机上运行 kubernetes 部署时出现 ImagePullBackOff 错误,其中 docker docker 映像存在于主机中
【发布时间】:2018-11-04 13:15:18
【问题描述】:

我在裸机机器上有一个 2 台机器的 kubernetes 集群,其中主机包含我只想在从节点上部署的 docker 映像,但我不想使用云存储库进行映像存储,我正在构建 docker来自在主机上运行的詹金斯作业的图像,如果我使用来自 dockerhub 的 docker 图像,部署工作正常,但是当图像在主机上时,在从节点上部署时它会给我一个错误,

NAME                            READY     STATUS             RESTARTS  AGE

dash-deploy-5bd7cb4484-wvwcr    0/1       ImagePullBackOff   0         22h

hello-deploy-5756df7ff4-mwzcw   1/1       Running            0         21h

hello-deploy 使用来自 docker hub 的 docker 镜像,而 dash-deploy 使用主节点上的 docker 镜像,两者的部署都是在从节点上完成的。 我知道还有很多其他方法可以做到这一点,但是对此的任何帮助将不胜感激。 我正在使用 ubuntu 16.04

kubeadm 版本:&version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:“go1.9.3”,编译器:“gc”,平台:“linux/amd64”}

kubectl version 客户端版本:version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-07T12:22:21Z", GoVersion:“go1.9.2”,编译器:“gc”,平台:“linux/amd64”}

服务器版本:version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:“go1.9.3”,编译器:“gc”,平台:“linux/amd64”}

我的 yaml 文件看起来像

---
apiVersion: extensions/v1beta1     
kind: Deployment    
metadata:    
  name: dash-deploy    
spec:    
  replicas: 1    
  minReadySeconds: 1    
  strategy:    
    type: RollingUpdate    
    rollingUpdate:    
      maxUnavailable: 1    
      maxSurge: 1    
  template:    
    metadata:    
      labels:    
        app: dashboard    
    spec:    
      containers:    
      - name: dash-pod    
        image: 32:32    
        imagePullPolicy: IfNotPresent    
        ports:    
        - containerPort: 8080    
---    
apiVersion: v1    
kind: Service    
metadata:    
  name: dash-svc    
  labels:    
    app: dashboard    
spec:    
  type: NodePort    
  ports:    
  - port: 8080    
    nodePort: 30002    
    protocol: TCP    
  selector:    
    app: dashboard    
---

【问题讨论】:

    标签: ubuntu docker kubernetes


    【解决方案1】:

    slave 需要从某个地方下载图像。图像不会自动分发给从站。

    如果您不想使用 dockerhub,则需要在集群中托管自己的 Docker Registry 以从中下载镜像。 This guide will help you do it.

    【讨论】:

      【解决方案2】:

      正如 fiunchinho 提到的,您可以设置一个 docker 注册表并将其用于您的部署。

      另一个解决方案是从你的 Jenkins 中导出图像,docker import 它在你的奴隶上

      【讨论】:

        【解决方案3】:

        如果您没有在您的环境中设置 docker 注册表,那么您需要使用 docker load -i 命令在工作节点上加载图像

        【讨论】:

          猜你喜欢
          • 2019-08-05
          • 1970-01-01
          • 1970-01-01
          • 2017-02-22
          • 2019-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-08
          相关资源
          最近更新 更多