操作场景
对于使用自建Harbor存储容器镜像的用户,支持通过以下三种方式将镜像迁移至容器镜像服务企业版实例中:
Harbor同步镜像:通过在容器镜像服务企业版配置同步规则,将镜像推送至企业版实例。
镜像导入:通过天翼云OOS迁移工具将镜像文件迁移至企业版实例的对象存储中,再通过控制台导入镜像。
开源工具迁移:通过开源镜像迁移工具image-syncer,批量将镜像同步至企业版实例。
方式一:Harbor同步镜像
前提条件
已开通容器镜像服务企业版实例。
本地镜像库采用Harbor 2.0
操作步骤
步骤1:创建命名空间
登录容器镜像服务控制台。
点击已开通的企业版实例名称。
在左侧导航栏选择容器镜像 > 命名空间。
点击创建命名空间,填写相关参数后点击确定。
| 参数 | 说明 |
|---|---|
| 命名空间 | 填写Harbor中需要同步的项目名称,例如ns1。 |
| 自动创建仓库 | 建议选择开启。若不开启,同步完成后需手动创建对应的仓库,才能查看同步过来的制品。 |
步骤2:在Harbor上配置目标仓库
登录自建Harbor系统。
在左侧导航栏选择系统管理 > 仓库管理。
点击新建目标,填写相关参数如下:
参数 说明 提供者 选择 Docker Registry。目标名 自定义名称,例如 crs-xxxxx。描述 自定义描述信息。 目标URL 填写容器镜像服务控制台中访问控制 > 访问凭证的地址。请根据实际网络环境选择公网或内网地址;若使用公网访问,请确保公网白名单已放通。 访问ID 推拉镜像时使用的用户名。 访问密码 推拉镜像时使用的密码。 点击测试连接,提示“测试连接成功”即代表参数填写正确且可正常访问容器镜像服务,点击确定完成创建。
步骤3:配置并执行同步规则
在Harbor左侧导航栏选择系统管理 > 复制管理。
点击新建规则,填写相关参数后点击保存:
参数 说明 名称 自定义规则名称。 描述 自定义描述信息。 复制模式 选择 Push-based。源资源过滤器 用于过滤需要同步的资源,可根据提示自行填写,默认为全部资源。 目标仓库 选择在步骤二中创建的目标。 目标 名称空间填写步骤一中创建的命名空间;仓库扁平化建议选择 替换1级,例如Harbor中的library/nginx最终会同步为ns1/nginx。触发模式 自定义触发方式。 带宽 限制同步时的最大网络带宽,默认为 -1(无限制),建议保持默认。规则创建完成后,选中该规则并点击复制,即可将存量镜像同步至CRS企业版实例。当复制任务状态变为
Succeeded时,表示同步任务执行完毕。
方式二:镜像导入
前提条件
已开通容器镜像服务企业版实例。
自建Harbor使用对象存储存储镜像。
操作步骤
步骤1:迁移镜像文件至对象存储
参考OOS数据迁移工具,将自建Harbor对象存储中的镜像文件迁移至企业版镜像仓库的对象存储中。
步骤2:创建对象存储镜像导入规则
登录容器镜像服务控制台。
点击已开通的企业版实例名称。
在左侧导航栏选择实例管理 > 镜像导入,点击创建导入规则。
填写导入规则名称,选择源实例为对象存储,并选择导入内容与目标命名空间,点击确定。
步骤3:创建和执行镜像导入任务
在实例管理 > 镜像导入页面,选择刚创建的镜像导入规则。
点击立即执行按钮启动导入任务。
步骤4:查看导入任务进度
在实例管理 > 镜像导入页面,点击导入任务页签。
查看对象存储镜像导入任务的执行进度和状态。
方式三:开源工具迁移
前提条件
已开通容器镜像服务企业版实例。
自建Harbor使用对象存储存储镜像。
操作步骤
步骤1:下载并安装image-syncer
执行以下命令下载并解压image-syncer:
wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz
tar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz也可参考官方文档使用其他方式安装。
步骤2:配置认证信息
创建镜像仓库认证文件auth.json,填写Harbor和容器镜像服务企业版的地址、用户名及密码:
{
"<harbor_url>": { // Harbor地址
"username": "xxx", // Harbor用户名
"password": "xxx" // Harbor密码
},
"registry-huadong1.crs.ctyun.cn": { // 企业版实例地址
"username": "xxx", // 企业版用户名
"password": "xxx" // 企业版密码
}
}步骤3:配置同步规则
创建镜像同步规则文件images.json,指定源仓库与目标仓库的对应关系:
"<harbor_url>/myns/nginx": "registry-huadong1.crs.ctyun.cn/myns/nginx" // 格式为源仓库:目标仓库,image-syncer将自动同步源仓库下的镜像至目标仓库注意
企业版实例需提前创建对应的命名空间和镜像仓库,或在命名空间中开启自动创建仓库选项。
步骤4:执行迁移命令
运行以下命令开始镜像迁移:
./image-syncer --auth=./auth.json --images=./images.json命令行支持的可选参数如下:
| 参数 | 说明 |
|---|---|
| –images | 设置镜像同步规则文件的路径。 |
| –auth | 设置镜像仓库认证文件的路径。 |
| –log | 设置输出日志文件路径,默认打印到标准错误输出。 |
| –proc | 镜像同步的并发数,默认为5。 |
| –retries | 同步任务失败时的重试次数,默认为2。重试有助于减少因网络波动导致的同步失败。 |
步骤5:确认迁移结果
等待命令执行完成,镜像即可成功迁移至企业版实例的对应仓库下。