弹性容器实例(VCI)支持镜像仓库 Mirror 配置,镜像拉取时会将请求的地址替换成 Mirror 仓库的地址拉取镜像。
在用户业务中,会存在需要拉取境外镜像源、多云场景协作等需求。VCI 基于火山引擎镜像仓库(CR)的远端代理(Proxy cache)能力,提供镜像仓库 Mirror 配置功能,在使用公开的海外镜像场景中,可通过该能力直接拉取对应的镜像,无需更换镜像地址,满足用户的跨地域业务需求。
说明
CR 远端代理相关说明,请参见 远端代理仓。
VCI 通过 Annotation 方式提供 Mirror 配置能力。Annotation 说明如下:
vci.volcengine.com/registry-mirror-config
{ 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"