【发布时间】:2018-04-11 22:16:16
【问题描述】:
我在没有互联网的隔离环境中使用 kbuernetes 和 docker,我总是在其他机器上拉图像并保存到 .tar 文件并加载到隔离环境,但有时 kubernetes 的 Pod 无法成功启动并说 Pod 是拉图像但网络不正常。 但是我查看了docker的镜像,镜像已经加载了,为什么还要拉同一个镜像呢?
这是docker的镜像,MYSQL的镜像已经加载完毕:
[root@localhost kubecfg]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.12.0 4a9cd8a2008a 3 weeks ago 230.5 MB
docker.io/mysql latest 5195076672a7 3 weeks ago 371.4 MB
gcr.io/google_containers/kube-apiserver-amd64 v1.9.2 7109112be2c7 11 weeks ago 210.4 MB
这是 Kubernetes 的错误日志
[root@localhost kubecfg]# kubectl describe pod mysql-vmwdw
Name: mysql-vmwdw
Namespace: default
Node: localhost.localdomain/192.168.88.129
Start Time: Mon, 02 Apr 2018 14:14:07 +0800
Labels: app=mysql
Annotations: <none>
Status: Running
IP: 192.168.0.61
Controlled By: ReplicationController/mysql
Containers:
mysql:
Container ID: docker://9aa3128eaa1f330dfd0d6ebf732dca5a99ad49d7d6d4002a2384bdb03e056d7d
Image: docker.io/mysql
Image ID: docker-pullable://docker.io/mysql@sha256:691c55aabb3c4e3b89b953dd2f022f7ea845e5443954767d321d5f5fa394e28c
Port: 3306/TCP
State: Waiting
Reason: ImagePullBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Tue, 10 Apr 2018 14:56:04 +0800
Finished: Wed, 11 Apr 2018 08:56:04 +0800
Ready: False
Restart Count: 3
Environment:
MYSQL_ROOT_PASSWORD: 123456
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-s7kq2 (ro)
Conditions:
Type Status
Initialized True
Ready False
PodScheduled True
Volumes:
default-token-s7kq2:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-s7kq2
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulMountVolume 19m kubelet, localhost.localdomain MountVolume.SetUp succeeded for volume "default-token-s7kq2"
Normal SandboxChanged 19m (x12 over 19m) kubelet, localhost.localdomain Pod sandbox changed, it will be killed and re-created.
Warning FailedCreatePodSandBox 19m (x12 over 19m) kubelet, localhost.localdomain Failed create pod sandbox.
Warning Failed 9m (x6 over 18m) kubelet, localhost.localdomain Failed to pull image "docker.io/mysql": rpc error: code = Unknown desc = Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/mysql/images. You may want to check your internet connection or if you are behind a proxy.
Warning Failed 4m (x41 over 18m) kubelet, localhost.localdomain Error: ImagePullBackOff
它说:“无法提取图像“docker.io/mysql”:rpc 错误:代码 = 未知描述 = 尝试连接到 https://index.docker.io/v1/repositories/library/mysql/images 时网络超时。您可能需要检查您的互联网连接或者如果您使用代理。”
我已经加载了图像,为什么 docker 会再次拉取相同的图像?我应该怎么做才能解决这个问题?
【问题讨论】:
标签: docker kubernetes