Ubuntu ImagePullBackOff在从机上运行kubernetes部署时出错,主机中存在docker docker映像
我有一个kubernetes群集,2台机器在裸机上,主机上包含docker映像,我只想将其部署在从属节点上,但我不想使用云存储库进行映像存储,我正在从主机上运行的jenkins job构建docker映像,如果我使用dockerhub中的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
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
命令在工作节点上加载图像