让Kubernetes集群使用本地image registry

来源:互联网 发布:android 全景拼接算法 编辑:程序博客网 时间:2024/06/04 00:48

  • 在本地搭建docker registry
    • 在容器中运行registry服务
    • 把pod基础通信容器的镜像存入本地image registry
  • 在本地k8s集群部署kubernetes-bootcamp示例服务
    • 修改基础通信容器的下载地址
    • 部署kubernetes-bootcamp示例

在本地搭建docker registry

在容器中运行registry服务

在某台安装了docker的机器上,指定一个永久运行的image registry容器。
docker1.13版本以上,使用REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY环境变量,指定image的存储路径;必须把container里的这个存储路径,映射到host机器可访问的持久存储目录。

docker run -d -p 5000:5000 --restart=always --name="docker-image" --hostname="docker-image" -v /home/wzp/data/docker-image:/registry -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/registry registry

把pod基础通信容器的镜像存入本地image registry

先从尚未屏蔽的docker.io上,下载kubernetes/pause镜像。

docker pull docker.io/kubernetes/pause

然后把pause镜像存入本地registry

docker tag <pause镜像的imageID> <registry所在的hostname>:5000/pause-amd64:3.0docker push <registry所在的hostname>:5000/pause-amd64:3.0

 
 
 

在本地k8s集群部署kubernetes-bootcamp示例服务

修改基础通信容器的下载地址

pod基础通信容器的镜像默认是从gcr.io下载,可此网站已被墙。
需修改minion上的参数文件:/etc/kubernetes/kubelet

加入配置:KUBELET_ARGS="–pod-infra-container-image=<registry所在的hostname>:5000/pause-amd64:3.0"

重启每台minion的kubelet服务:systemctl restart kubelet

部署kubernetes-bootcamp示例

先下载kubernetes-bootcamp镜像

docker pull docker.io/jocatalin/kubernetes-bootcamp:v1

再把kubernetes-bootcamp镜像存入本地image registry

docker tag <kubernetes-bootcamp镜像的imageID> <registry所在的hostname>:5000/kubernetes-bootcamp:v1docker push <registry所在的hostname>:5000/kubernetes-bootcamp:v1

部署kubernetes-bootcamp示例服务

kubectl run kubernetes-bootcamp --image=<registry所在的hostname>:5000/kubernetes-bootcamp:v1 --port=8080
0 0
原创粉丝点击