posts - 81,comments - 59,trackbacks - 0

一般情况下,我们项目构建的镜像统一会推送至私有仓库,那么这里大家可以参考阿里云的私有仓库搭建教程。那么我们可以通过以下步骤拉取:

1.推送及拉取镜像

1.1. 登录阿里云Docker Registry

    $ sudo docker login --username=[用户名] registry.cn-qingdao.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在产品控制台首页修改登录密码。

1.2. 从Registry中拉取镜像

    $ sudo docker pull registry.cn-qingdao.aliyuncs.com/xxxx/test:[镜像版本号]

1.3. 将镜像推送到Registry

    $ sudo docker login --username=xxx registry.cn-qingdao.aliyuncs.com
    $ sudo docker tag [ImageId] registry.cn-qingdao.aliyuncs.com/niechen/test:[镜像版本号]
    $ sudo docker push registry.cn-qingdao.aliyuncs.com/niechen/test:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

2. k8s拉取阿里云的私有镜像

2.1、 保存用户名与密码

    kubectl create secret docker-registry registry-secret --docker-server=registry.cn-shenzhen.aliyuncs.com --docker-username=user-test --docker-password=xxxxxx --docker-email=xxx@xxx.com -n default
    --docker-server: 仓库地址
    --docker-username: 仓库登陆账号
    --docker-password: 仓库登陆密码
    --docker-email: 邮件地址(选填)
    -n 命名空间

此时我们运行kubectl describe secret可以看到详细的secret信息

2.2 、更改配置

在对应的rc或者deployment更改如下的配置:

       spec:
          serviceAccountName: test
          imagePullSecrets:
          - name: registry-secret
          containers:
          - name: test
            image: registry.cn-shenzhen.aliyuncs.com/xxxx/test:latest

spec.imagePullSecrets[0].name里指定刚才创建的secret

posted on 2019-02-12 11:36  聂晨  阅读(1440)  评论(0编辑  收藏