美文网首页Amazing Arch
kubernetes从私有镜像仓库拉取镜像

kubernetes从私有镜像仓库拉取镜像

作者: 北二条 | 来源:发表于2019-07-11 17:09 被阅读285次

写在前面

这篇https://www.jianshu.com/p/a275fed0bb55
我们部署了一套harbor镜像仓库,作为用户的私有镜像仓库,那么本篇就主要介绍kubernetes从私有镜像仓库拉取镜像的方法。

  1. 提前拉取镜像
  2. 在节点上配置对私有镜像仓库的认证
  3. 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

以上↑

相关文章

网友评论

    本文标题:kubernetes从私有镜像仓库拉取镜像

    本文链接:https://www.haomeiwen.com/subject/hnpdkctx.html