You need to enable JavaScript to run this app.
导航
创建实例并配置远端代理仓
最近更新时间:2024.11.22 15:20:25首次发布时间:2024.11.22 15:20:25

弹性容器实例(VCI)支持镜像仓库 Mirror 配置,镜像拉取时会将请求的地址替换成 Mirror 仓库的地址拉取镜像。

背景信息

在用户业务中,会存在需要拉取境外镜像源、多云场景协作等需求。VCI 基于火山引擎镜像仓库(CR)的远端代理(Proxy cache)能力,提供镜像仓库 Mirror 配置功能,在使用公开的海外镜像场景中,可通过该能力直接拉取对应的镜像,无需更换镜像地址,满足用户的跨地域业务需求。

说明

CR 远端代理相关说明,请参见 远端代理仓

功能说明

VCI 通过 Annotation 方式提供 Mirror 配置能力。Annotation 说明如下:

  • Annotation Keyvci.volcengine.com/registry-mirror-config
  • Annotation Value
    • 参数值支持的格式为 JSON。
    • JSON 文件格式及参数说明如下:
      {
          mirrors: {  // 远端代理仓域名配置。
              "docker.io": ["address1.cr.volces.com", "address2.cr.volces.com"],  // 按需配置,表示将 docker.io 远端仓镜像映射到指定的 CR 代理仓。填写多个代理仓域名时按前后顺序从代理仓中拉取镜像。
              "hub.byted.org": ["address2.cr.volces.com"],  // 按需配置,表示将 hub.byted.org 远端仓镜像映射到指定的 CR 代理仓。
              "*": ["default-address.cr.volces.com"]  // 按需配置,表示所有类型镜像,均映射到指定的 CR 代理仓。
          },
          configs: {
              "address1.cr.volces.com": {  // 为指定的 CR 代理仓,配置访问策略。
                  "auth": {
                      "username": "xxx",  // CR 代理仓实例的登录用户名。
                      "password": "yyy" // CR 代理仓实例的登录密码,需要进行 Base64 编码后传入。
                  },
                  "tls": {
                      "insecure_skip_verify": true // 按需配置,表示登录 CR 代理仓实例时忽略证书校验。
                  }
              }
          }
      }
      

使用方法

下文以创建通用型 VCI 实例为例,详细的操作说明,请参见 指定容器 vCPU 和内存创建通用型实例

前提条件

代码示例

创建 VCI Deployment 的示例代码如下所示:

说明

Mirror 镜像仓库以外的配置相关说明,请参见 指定容器 vCPU 和内存创建通用型实例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        vke.volcengine.com/burst-to-vci: enforce  #强制使用 VCI
        vke.volcengine.com/preferred-subnet-ids: subnet-3tispp1nai**** #指定子网 ID,可指定同一个可用区内多个子网,多个子网之间用半角逗号(,)分隔
        vci.vke.volcengine.com/preferred-instance-family: vci.u1 #指定 VCI 的规格族
        vci.volcengine.com/registry-mirror-config: |
          {
              mirrors: {
                  "docker.io": ["address1.cr.volces.com", "address2.cr.volces.com"], 
                  "hub.byted.org": ["address2.cr.volces.com"],
                  "*": ["default-address.cr.volces.com"]
              },
              configs: {
                  "address1.cr.volces.com": {
                      "auth": {
                          "username": "demo-user",
                          "password": "*****************"
                      },
                      "tls": {
                          "insecure_skip_verify": true
                      }
                  }
              }
          }
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: docker.io/nginx:latest # 容器镜像的地址和版本,请配置为您自己的远端仓镜像地址
        ports:
        - containerPort: 80
        resources:
          requests:  #指定容器的 vCPU 和内存  
            cpu: "500m"      
            memory: "1024Mi"
          limits:
            cpu: "1"      
            memory: "2048Mi"