写在前面
这篇https://www.jianshu.com/p/a275fed0bb55
我们部署了一套harbor镜像仓库,作为用户的私有镜像仓库,那么本篇就主要介绍kubernetes从私有镜像仓库拉取镜像的方法。
- 提前拉取镜像
- 在节点上配置对私有镜像仓库的认证
- POD上配置imageSecret
提前拉取镜像
就是提前把镜像docker pull 也好,docker load也好,现在节点上准备好,基本等于废话。。。。
在节点上配置对私有镜像仓库的认证
第二个方法,在节点上配置对私有镜像仓库的认证,这个是说,我们执行docker login {registry_ip} 这个命令,就是把登录信息记录到~/.docker/config.json这个文件中了,我们生成一次这个文件,然后把这个文件拷贝到所有节点上去,相当于免密了。
{
"auths": {
"172.18.11.18": {
"auth": "YWRtaW46MTIzNDU2NzgK"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}
如上,那个auth的内容其实就是{}用户名:密码}然后base64一下。如此,在所有节点上就可以直接pull私有镜像仓库了
POD上配置imageSecret
第三种,也是最常用的一种,就是kubernetes支持一种image拉取的时候呢,传入一个secret的认证信息,由kubernetes来完成验证,从而拉取镜像。
步骤也很简单,首先我们先生成一个secret:
kubectl create secret docker-registry myregistrykey --docker-server=https://172.18.11.18 --docker-username=admin --docker-password=12345678 --docker-email=beiertiao@me.com
其中docker-registry为secret的类型
--docker-server、--docker-username、docker-password必填,email选填。
如此生成了一个secret(默认namespace为default),然后在pod中写入一个imagePullSecret就好了。
...
spec:
template:
spec:
containers:
- imagePullSecrets
- name: myregistrykey
以上↑
网友评论