Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu ImagePullBackOff在从机上运行kubernetes部署时出错,主机中存在docker docker映像_Ubuntu_Docker_Kubernetes - Fatal编程技术网

Ubuntu ImagePullBackOff在从机上运行kubernetes部署时出错,主机中存在docker docker映像

Ubuntu ImagePullBackOff在从机上运行kubernetes部署时出错,主机中存在docker docker映像,ubuntu,docker,kubernetes,Ubuntu,Docker,Kubernetes,我有一个kubernetes群集,2台机器在裸机上,主机上包含docker映像,我只想将其部署在从属节点上,但我不想使用云存储库进行映像存储,我正在从主机上运行的jenkins job构建docker映像,如果我使用dockerhub中的docker映像,部署工作正常,但当映像位于主机中时,在从属节点上部署时会出现错误 NAME READY STATUS RESTARTS AGE dash-deploy-5

我有一个kubernetes群集,2台机器在裸机上,主机上包含docker映像,我只想将其部署在从属节点上,但我不想使用云存储库进行映像存储,我正在从主机上运行的jenkins job构建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{大调:“1”,小调:“10”, GitVersion:“v1.10.2”, GitCommit:“81753B10DF112992BF51BBC2F2F85208AAD78335”, 吉特庄园:“清洁”,建造日期:“2018-04-27T09:10:24Z”, GoVersion:“go1.9.3”,编译器:“gc”,平台:“linux/amd64”}

kubectl版本客户端版本:version.Info{Major:“1”,Minor:“9”, GitVersion:“v1.9.3”, GitCommit:“D2835416544F298C919E2EAD3BE3D0864B5223B”, 吉特庄园:“清洁”,建造日期:“2018-02-07T12:22:21Z”, GoVersion:“go1.9.2”,编译器:“gc”,平台:“linux/amd64”}

服务器版本:Version.Info{Major:“1”,Minor:“10”, GitVersion:“v1.10.3”, GitCommit:“2bba0127d85d5a46ab4b778548be28623b32d0b0”, 吉特庄园:“清洁”,建造日期:“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    
---

从属服务器需要从某处下载映像。图像不会自动分发到从属服务器


如果不想使用dockerhub,则需要在群集中托管自己的Docker注册表,以便从中下载图像

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


另一种解决方案是从Jenkins导出图像,
docker import
将其导入从属服务器

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