弹性容器实例(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"