上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 实践:集群中使用私有镜像
容器引擎服务CCE
百度智能云容器引擎服务 CCE 实践:集群中使用私有镜像

文档简介:
私有镜像指位于私有仓库中的Docker镜像,用户需要使用仓库用户名密码登入(docker login)后才能拉取。在CCE集群中,需要为Pod配置imagePullSecrets,才能够在集群中使用私有镜像启动Pod中的容器。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

私有镜像指位于私有仓库中的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命名空间内。

后续推荐使用 CCR,创建 CCR 镜像仓库 Secret 命令如下:

kubectl create secret docker-registry private-repo-auth \
  --docker-server=registry.baidubce.com \
  --docker-username=<镜像仓库用户名> \
  --docker-password=<镜像仓库密码> \
  --docker-email=<邮箱地址>

创建完毕后,可以通过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中声明的来自多个来源的私有镜像。
相似文档
  • 有效的规划集群的网络,可以适应业务发展的需要。 本文将介绍在百度智能云私有网络 VPC 环境下 CCE Kubernetes 集群里各种网络地址的作用,以及地址段该如何规划。
  • CCE 支持用户使用开源工具velero对云上的kubernetes集群进行备份、恢复。用于集群误操作、集群故障、集群迁移等场景。 velero的作用: 灾备能力:提供备份、恢复k8s集群的能力。 迁移能力:提供拷贝集群资源到其他集群的能力。
  • 在一些场景中,用户需要让 VPC-CNI 模式集群中的节点或 Pod 具备访问公网的能力,如通过 yum install 等命令访问外部源地址下载安装软件、容器需要访问公网中的某些服务等等。 对于节点访问公网的操作,请参考 CCE-访问公网实践。
  • CCE 目前提供了 VPC网络 、 VPC-CNI 以及 VPC-Hybrid 三种网络模式,三种模式各有特点,选择合适的容器网络模式,可以适应业务发展的需要。 VPC网络 模式的原理与 kubernetes 原生的网络方案 kubenet 类似,配合百度云 VPC 的高速网络,能给集群高性能和稳定的容器网络体验,但支持的特性少。
  • 持续构建与发布是企业研发工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,Jenkins的持续发布流程可以跟Kubernetes集群更好的对接,更好的发挥它的部署优势,这篇文档可以指定用户把Jenkins发布流程跟CCE集群集成。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部