Kubernetes上的私人码头注册表对其他pod不可见

时间:2016-05-18 22:02:43

标签: kubernetes docker-registry

我有一个CoreOS基础Kubernetes部署。我按照GitHub上的说明设置了私有Docker注册表: https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/registry/README.md

注册表出现了,注册表代理也出现了:

$ kubectl get po --namespace=kube-system
NAME                              READY     STATUS    RESTARTS   AGE
kube-dns-v9-hd0hz                 4/4       Running   0          1d
kube-registry-proxy-10.1.52.113   1/1       Running   0          1d
kube-registry-proxy-10.1.52.114   1/1       Running   0          1d
kube-registry-proxy-10.1.52.117   1/1       Running   0          1d
kube-registry-proxy-10.1.52.118   1/1       Running   0          1d
kube-registry-v0-ib8vx            1/1       Running   0          1d
kubernetes-dashboard-17zfm        1/1       Running   0          1d

我还能够使用端口转发方法推送私有映像(端口转发到注册表窗格或注册表代理窗格。)但是当我尝试使用图像时,我得到PullImageError:

kubectl run -i --tty ubuntu --image=localhost:5000/myfirstubuntu/ubuntu --restart=Never -- bash

如果我只是用普通的ubuntu创建一个新的容器并尝试卷曲localhost:5000,我没有得到404错误,如说明所示,所以看起来同一节点上的pod没有与注册表通话-proxy如预期的那样。有什么方法可以进一步调试它?

2 个答案:

答案 0 :(得分:0)

运行docker images以确保您的图片“REPOSITORY”的值为“localhost:5000 / myfirstubuntu / ubuntu”

[root@centos7 ~]# docker images    
REPOSITORY                                            TAG                  IMAGE ID            CREATED             VIRTUAL SIZE
localhost:5000/myfirstubuntu/ubuntu                   latest               05e197984182        18 hours ago        516.7 MB

答案 1 :(得分:0)

可以尝试在/ etc / default / docker文件中添加配置项 DOCKER_OPTS =“$ DOCKER_OPTS --insecure-registry = localhost:5000” 然后服务码头重启

希望提供一些参考!