kubernetes无法从本地主机注册表运行docker映像
我正在尝试使用kubernetes运行单个docker容器kubernetes无法从本地主机注册表运行docker映像,docker,kubernetes,docker-registry,kubectl,Docker,Kubernetes,Docker Registry,Kubectl,我正在尝试使用kubernetes运行单个docker容器 cat /path/to/docker/docker.conf [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// --live-restore=true --iptables=false --log-opt max-size=100m --log-opt max-file=3 --bip ${FLANNEL_SUBNET} --mtu ${FLANNEL_MTU} DO
cat /path/to/docker/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --live-restore=true --iptables=false --log-opt max-size=100m --log-opt max-file=3 --bip ${FLANNEL_SUBNET} --mtu ${FLANNEL_MTU}
DOCKER_OPTS="--insecure-registry localhost:5000"
我想创建一个本地注册表,因为我不希望我的图像驻留在公共回购上
docker run -d -p 5050:5000 --restart=always --name registry registry:2
然后我就建立我的形象
docker build -f "Dockerfile" -t localhost:5050/myImage .
docker push localhost:5050/myImage
这两种方法都有效,可以肯定的是,我也可以运行映像
docker run -d -p 5000:5000 --name myImage --hostname myImage -v /some/path/to/mount:/some/path/to/mount localhost:5050/myImage
现在我试着去做
kubectl run myImage --image=localhost:5050/myImage --port=5050
但是
我做错了什么
docker version
Client:
Version: 17.05.0-ce
API version: 1.29
及
问题是kubernetes试图在自己的容器中解析
localhost
要解决这个问题,您需要让kubernetes能够访问注册表。这可以通过多种方式完成,但其中之一是在kubernetes内部运行注册表,然后提供一个代理,以便也可以在外部访问它
此处将更详细地描述此过程:
重要步骤如下:
kubectl创建-f kube注册表.yaml
(kube-registry.yaml可在此处找到:)
kubectl端口转发——名称空间kube系统\
$(kubectl获取po-n kube系统| grep kube-registry-v0 |\
awk'{print$1;}')5000:5000
1.尝试使用docker rmi从计算机中删除映像。然后尝试从您的回购中提取图像。2.下载映像时,您可以查看kubelet日志以找出确切的错误消息。可能注册表主机只是在kube节点上解析,而不是在启动
kubectl run
时—如果是这样,kubectl
可能无法在其本地主机上找到注册表
docker version
Client:
Version: 17.05.0-ce
API version: 1.29
kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.6", GitCommit:"114f8911f9597be669a747ab72787e0bd74c9359", GitTreeState:"clean", BuildDate:"2017-03-28T13:36:31Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.6", GitCommit:"114f8911f9597be669a747ab72787e0bd74c9359", GitTreeState:"clean", BuildDate:"2017-03-28T13:36:31Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}