更新时间:2024-12-18 GMT+08:00

使用第三方镜像

操作场景

CCE支持拉取第三方镜像仓库的镜像来创建工作负载。

通常第三方镜像仓库必须经过认证(账号密码)才能访问,而CCE中容器拉取镜像是使用密钥认证方式,这就要求在拉取镜像前先创建镜像仓库的密钥。

前提条件

使用第三方镜像时,请确保Autopilot可以正常访问私有仓库所在的网络环境,可供选择的方案如下:

  • 内网访问:私有仓库位于集群所在VPC。
  • 云专线或VPN访问:将私有仓库网络环境通过云专线VPN与集群所在VPC打通。

通过界面操作

  1. 创建第三方镜像仓库的密钥。

    单击集群名称进入集群,在左侧导航栏选择“配置与密钥”,在右侧选择“密钥”页签,单击右上角“创建密钥”,密钥类型必须选择为kubernetes.io/dockerconfigjson。详细操作请参见创建密钥

    此处的“用户名”“密码”请填写第三方镜像仓库的账号密码。

    图1 添加密钥

  2. 创建工作负载时,可以在“镜像名称”中直接填写私有镜像地址,填写的格式为domainname/namespace/imagename:tag,并选择1中创建的密钥。

    图2 填写私有镜像地址

  3. 填写其他参数后,单击“创建工作负载”

使用kubectl创建第三方镜像仓库的密钥

  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 通过kubectl创建认证密钥 ,该密钥类型为kubernetes.io/dockerconfigjson类型。

    kubectl create secret docker-registry myregistrykey  -n default --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

    其中,myregistrykey为密钥名称,default为密钥所在的命名空间,其余参数如下所示。

    • DOCKER_REGISTRY_SERVER:第三方镜像仓库的地址,如“www.3rdregistry.com”“10.10.10.10:443”
    • DOCKER_USER:第三方镜像仓库的账号。
    • DOCKER_PASSWORD:第三方镜像仓库的密码。
    • DOCKER_EMAIL:第三方镜像仓库的邮箱。

  3. 创建工作负载时使用第三方镜像,具体步骤请参见如下。

    kubernetes.io/dockerconfigjson类型的密钥作为私有镜像获取的认证方式,以Pod为例,创建的myregistrykey作为镜像的认证方式。
    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
      namespace: default
    spec:
      containers:
        - name: foo
          image: www.3rdregistry.com/janedoe/awesomeapp:v1
      imagePullSecrets:
        - name: myregistrykey              #使用上面创建的密钥