在搭建Kubernetes集群的时候,为了方便部署,可以搭建一个集群内的私有镜像仓库。
安装docker
1 | yum install docker |
拉取registry镜像
1 | # docker pull docker.io/registry |
启动registry
1 | docker run -d -p 5000:5000 --name=registry --restart=always --privileged=true --log-driver=none -v /data/registrydata:/var/lib/registry registry |
其中/data/registrydata为本地目录,/var/lib/registry为镜像内目录。
不确定镜像中对应的目录可以使用docker inspect registry
查看images的具体信息。
Volumes字段确定镜像内的具体目录。
更改名称并推送
1 | docker search pod-infrastructure |
push完镜像后可以从本机的挂载目录查看镜像仓库:1
2
3
4
5
6# pwd
/data/registrydata
# ll docker/registry/v2/repositories/
total 0
drwxr-xr-x 5 root root 55 Mar 20 11:02 kubernetes-dashboard-amd64
drwxr-xr-x 5 root root 55 Mar 20 11:01 pod-infrastructure
可以看到上述信息。
更改镜像地址
pod-infrastructure是在node的kubelet配置文件中定义的,要更改每个node中/etc/kubernetes/kubelet中对应的KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
为KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.186.61.103:5000/pod-infrastructure:latest"
。更改之后需要重启kubelet服务。
Dashboard是在yaml中定义的,要更改dashboard.yaml中对应的image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1
为image: 0.186.61.103:5000/kubernetes-dashboard-amd64:latest
。