使用Harbor的远程复制能力同步镜像到CCR企业版实例
更新时间:2025-08-11
背景
本文介绍如何使用Harbor的远程复制功能将自建Harbor上的增量镜像自动同步到百度云CCR企业版实例。
备注:本文示例中使用的Harbor版本是v2.12.0,所以截图都是基于该版本,不同的harbor版本之间可能会略有差异。
前提条件
创建容器镜像服务CCR企业版实例,具体操作请参考 创建企业版实例。
同时,CCR实例要配置好网络访问控制,具体操作请参考 配置网络访问控制。 预期目标是在自建Harbor里可以访问到CCR实例的公网或内网域名。
自建Harbor同步镜像至CCR企业版实例
步骤一:在CCR实例上创建命名空间
建议按照业务实际需求,在CCR中先创建出要保存镜像的命名空间,用于在配置镜像同步规则时直接使用。
- 登录容器镜像服务控制台,在顶部菜单栏,选择所需地域并查看企业版>实例列表
- 在实例列表页面单击目标CCR企业版实例。
- 在企业版实例管理页面选择仓库管理 > 命名空间。
- 在命名空间页面单击创建命名空间,在对话框中设置命名空间名称,单击确定。
步骤二:在自建Harbor上配置目标仓库
- 登录Harbor,在左侧导航栏选择系统管理 > 仓库管理,在仓库管理页面点击新建目标。
- 在新建目标对话框,填写参数配置。
参数 | 说明 |
---|---|
提供者 | 选择Docker Registry |
目标名 | 自定义 |
描述 | 自定义 |
目标URL | 填写CCR企业版实例目标仓库域名地址,请确保访问控制已开启,更多信息请参考 配置网络访问控制 私有网络访问示例:https://<$企业版实例ID>-vpc.cnc.<$Region>.baidubce.com 公网访问示例:https://<$企业版实例ID>-pub.cnc.<$Region>.baidubce.com |
访问ID | 登录CCR镜像仓库的用户名 |
访问密码 | 登录CCR镜像仓库的密码登录CCR镜像仓库的用户名密码查看方式请参考 配置访问凭据 |
验证远程证书 | CCR镜像仓库支持https访问,保持默认勾选即可。 |
- 参数配置填写完成后,单击测试连接。若出现测试连接成功,则代表参数填写正确,单击确定保存配置。
步骤三:在自建Harbor上配置镜像同步规则
- 登录Harbor,在左侧导航栏选择系统管理 > 复制管理,在赋值管理页面点击新建规则。
- 在新建规则对话框,填写参数。
参数 | 说明 |
---|---|
名称 | 自定义 |
描述 | 自定义 |
复制模式 | 选择Push-based,含义是有本地Harbor主动push到远程镜像仓库 |
资源过滤器 | 用于过滤需要同步的资源,可依据Harbor界面的提示自行填写,默认为全部资源。例如:如果只想把自建harbor中的cce-test命名空间下的镜像同步到远程,可以写成cce-test/** |
目标仓库 | 选择步骤二创建的目标仓库 |
目标 | 用于指定镜像同步到CCR仓库以后保存的命名空间路径,可依据Harbor界面的提示自行填写。推荐选择替换1级,含义是只替换第一级的命名空间名称,cce-test/nginx -> cce-test/nginx或cce-test/nginx -> ccr-target-ns/nginx |
触发模式 | 推荐选择事件驱动,含义是每当往自建Harbor里push镜像时,会自动触发同步符合过滤条件的镜像到远程仓库中。备注:删除本地资源时同时也删除远程的资源的选择默认不回勾选,除非有特殊需求需要打开,否则此项配置保持默认即可。 |
带宽 | 限制同步时的最大网络带宽。默认为-1,表示无限制。如果需要考虑自建Harbor到CCR之间带宽使用率的场景下(例如专线打通),可以根据实际情况配置限额。 |
选项 | 覆盖配置默认开启:表示在镜像同步过程中,如果目标CCR中已经有同名的镜像是否会覆盖。推荐保持开启,这样能够保持当自建Harbor中进行有覆盖更新的时候,目标CCR也会保持同步更新。 |
- 在填写完参数,检查无误以后单击保存同步规则。
步骤四:往自建Harbor上传镜像并检查镜像同步任务运行情况
- 在做完前几个步骤的配置以后,尝试往自建Harbor中需要同步镜像的命名空间上传镜像
docker push {自建harbor域名}/cce-test/web-service:v1
- 确保镜像已经成功上传到自建Harbor中以后,同时去检查镜像同步任务是否自动触发并检查任务运行情况
备注:点击ID跳转到Harbor任务日志页面,可以查看镜像同步任务执行详情。
- 在CCR控制台实例详情选择 仓库管理>镜像仓库 ,选中命名空间后,查看目标镜像是否已经同步成功。
点击仓库名称跳转到版本管理页面,查看镜像的版本详情以及公网或内网拉取命令。
使用拉取命令即可以用docker拉取到镜像,或者在k8s集群中部署工作负载。
在CCE集群中使用CCR镜像部署工作负载
步骤一:在CCR实例上配置cce集群的私有网络访问
在CCE集群里使用CCR镜像,推荐配置私有网络访问。
- 登录容器引擎CCE控制台,在顶部菜单栏,选择所需地域并查看企业版集群管理>集群列表。
- 点击集群名称进入CCE集群详情页面,查看cce集群的节点网络。
-
在CCR控制台实例详情选择 仓库管理>访问控制 ,默认进入私有网络配置页面。
私有网络:选择CCE集群所在的私有网络。
子网:选择任意一个有可用ip的子网。
ip地址和自动解析保持默认自动模式。
点击 确定 保存后,等待几秒钟生效。当状态变为可用以后,表示私有网络配置完成。
步骤二:在cce集群创建工作负载
在CCE集群里使用CCR镜像部署工作负载,推荐使用私有网络地址访问镜像。
- 在CCE控制台集群页面选择 工作负载>无状态 ,进入工作负载页面。
- 点击新建无状态或使用Yaml创建,进入工作负载创建页面
备注:私有镜像仓库访问凭证配置参考 私有镜像使用实践;同时CCE支持免密拉取CCR镜像,需要安装CCE免密组件。
- 查看工作负载运行情况
在CCE控制台工作负载页面,可以查看工作负载运行情况,以及工作负载使用的镜像等信息