愈来越多的企业和团体都有自己的私有仓库,但是在kubernetes中部署时,拉取私有仓库的私有镜像会出现拉取失败的问题。本文主要讲解如果解决这个问题。
HTTPS支持
如果是公开认证的证书,请忽略本步骤;如果是自生成的证书,需要配置docker。
在kubernetes所有节点中,配置docker,添加证书。
在/etc/docker/certs.d文件夹下,创建以私有仓库域名为名字的文件夹,并将私有仓库的ca证书放到文件夹中。
例如我的:
/e/d/certs.d# tree
.
└── hub.ict.ac.cn
└── ca.crt
拉取公开镜像
自签名证书需要先配置docker信任证书。
证书配置完成后可直接拉取,使用镜像。
拉取私有镜像
核心思路:拉取私有仓库镜像需要配置私有仓库的登陆信息,用Secret存储,并且定义Deployment或者Pod时,指定imagePullSecret为保存了私有仓库登陆信息的Secret名。
docker credential创建Secret
如果使用docker login登陆过私有仓库,那么可以直接使用.docker/config.json文件生成Secret。
kubectl create secret generic \
--from-file=.dockerconfigjson= \
--type=kubernetes.io/dockerconfigjson
如果需要改变namespace 可以添加-n 。也可以自定义Secret,