所有文档

          容器引擎 CCE

          CCE集群中使用私有镜像实践

          私有镜像指位于私有仓库中的Docker镜像,用户需要使用仓库用户名密码登入(docker login)后才能拉取。在CCE集群中,需要为Pod配置imagePullSecrets,才能够在集群中使用私有镜像启动Pod中的容器。

          1. 创建用于私有镜像拉取的secret (imagePullSecrets)

          使用kubectl命令行创建,需要先获取

          • 镜像仓库登录用户名
          • 镜像仓库登录密码
          • 邮箱地址
          • 镜像仓库服务器地址

          创建命令为

          kubectl create secret docker-registry <secret名称> \
            --docker-server=<镜像仓库服务器地址> \
            --docker-username=<镜像仓库用户名> \
            --docker-password=<镜像仓库密码> \
            --docker-email=<邮箱地址>

          关于镜像仓库服务器地址(--docker-server参数):

          • 对于存储在百度智能云容器镜像服务CCR的私有镜像(镜像地址为registry.baidubce.com/<namespace>/<name>:<tag>),镜像仓库服务器地址参数须填写为 --docker-server='https://registry.baidubce.com'
          • 对于存储在百度智能云镜像仓库的私有镜像(镜像地址为hub.baidubce.com/<namespace>/<name>:<tag>),镜像仓库服务器地址参数须填写为 --docker-server='https://hub.baidubce.com'
          • 其他第三方镜像仓库请按照实际服务器地址进行配置,可参考 社区说明文档 或咨询镜像服务提供商。

          注意:

          • secret需与引用该secret的pod在同一个k8s命名空间内。

          创建完毕后,可以通过kubectl get secret查看到一个类型为 kubernetes.io/dockerconfigjson 的secret被创建。

          $ kubectl get secret	
          NAME                  TYPE                                  DATA      AGE	
          default-token-bx894   kubernetes.io/service-account-token   3         4d	
          private-repo-auth     kubernetes.io/dockerconfigjson        1         2m	

          2. 在pod spec中指定拉取镜像的secret

          pod.spec.imagePullSecrets 中指定secret的名称,即可在pod中使用相应的私有镜像。

          以创建一个Deployment为例,假设已经在default命名空间中通过上述方式创建了名为private-repo-auth的secret,对应的Deployment yaml文件如下:

          apiVersion: apps/v1	
          kind: Deployment	
          metadata:	
            name: my-nginx	
          spec:	
            replicas: 1	
            selector:	
              matchLabels:	
                app: my-nginx	
            template:	
              metadata:	
                name: my-nginx	
                labels:	
                  app: my-nginx	
              spec:	
                imagePullSecrets:	
                - name: private-repo-auth	
                containers:	
                - name: my-nginx	
                  image: nginx	

          注意:

          • 可以在同一个pod中指定多个拉取镜像的secret,用于拉取Pod中声明的来自多个来源的私有镜像。
          上一篇
          CCE-访问公网实践
          下一篇
          CCE集群网络说明及规划