阿里云开源容器镜像同步工具-image-syncer,再也不怕跨环境同步容器镜像了


1. 镜像同步工具(image-syncer)介绍

image-syncer是一个容器镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务

2.下载地址

请根据使用的操作系统选择对应的二进制文件进行下载,对下载的文件进行解压,解压后可看到可执行文件image-syncer

apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % ls -lt

-rw-r--r--@ 1 apple  staff     11357  7 24 14:25 LICENSE
-rw-r--r--@ 1 apple  staff      8380  7 24 14:25 README.md
-rwxrwxrwx@ 1 apple  staff  15278386  7 24 14:25 image-syncer

3. 执行镜像同步

3.1 获取config.yaml配置文件

config.yaml 在二进制包中不存在,需要自己手动创建或通过官网下载样例 文件完整样例如下:

auth:  
  registry.xx.cn:
    username: demo_xx
    password: 8nq99ye
  registry.xx.net.cn:
    username: demo_xx
    password: NNDActz
images:
  registry.xx.cn/app-base/app-framework:V1.4.2: registry.xx.com.cn/app-base/app-framework:V1.4.2
  registry.xx.cn/app-base/web-framework:V1.4.2: registry.xx.com.cn/app-base/web-framework:V1.4.2

3.2 修改配置文件config.yaml

3.2.1 下面将config.yaml配置内容分2部分进行介绍
3.2.1.1 auth-仓库认证信息

如果同步时涉及到的仓库需要认证,那么请参照如下说明配置auth认证信息(说明信息在[]中)

auth:  
  registry.xx.cn:          [第一个镜像仓库地址,比如源仓库地址]
    username: demo_xx      [用户名]
    password: 897e4CJ    [密码,如果是通过生态账号登录Harbor,可以取"用户设置"中的CLI密码]
    insecure: true         [可选,(v1.0.1后支持)registry是否是http服务,如果是,insecure 字段需要为 true,默认是 false]
  registry.xx.com.cn:      #[第二个镜像仓库地址,比如目标仓库地址]
    username: demo_xx      #[第二个镜像仓库用户名]
    password: NNDActz #[第二个镜像仓库密码]
3.2.1.2 images-镜像同步信息 请参照如下说明进行源镜像和目标镜像信息配置(说明信息在[]中)
images:
  registry.xx.cn/app-base/app-framework:V1.4.2: registry.xx.com.cn/app-base/app-framework:V1.4.2    [ :前为源镜像url(即从哪里同步镜像) :后为目标镜像url(即要同步到哪里)]
  registry.xx.cn/web-base/web-framework:V1.4.2: registry.xx.com.cn/web-base/web-framework:V1.4.2        [第二条镜像同步配置,如果有N个镜像要同步,可以配置N条记录]

3.3 执行二进制文件进行镜像同步

3.3.1 确认当前用户是否拥有二进制文件执行权限
3.3.1.1 确认文件执行权限
apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % ls -lt
 -rwxrwxrwx@ 1 apple  staff  15278386  7 24 14:25 image-syncer
3.3.1.2 若无执行权限,请通过chmod +x 命令添加用户可执行权限
apple@appledeMacBook-Pro image-syncer-v1.5.2-darwin-arm64 % chmod +x image-syncer
3.3.2 执行镜像同步命令
3.3.2.1 如果是mac电脑,在执行image-syncer二进制文件时可能会有如下风险提示

mac
可参照如下步骤解决

点击"在访达中显示"进入image-syncer二进制文件所在目录,右键->打开方式->终端 打开二进制文件,如下图所示

mac-2

关闭刚刚打开的终端(入下图所示),然后参照非mac电脑执行方式(3.3.2.2)执行即可
mac-3

3.3.2.2 如果是非mac电脑,直接通过执行如下命令进行镜像同步
./image-syncer  --proc=8  --config=./config.yaml

参数说明:
 --proc       并发数,进行镜像同步的并发goroutine数量,默认为5
 --config     设置用户提供的配置文件路径,使用之前需要创建此文件,默认为当前工作目录下的config.json文件。

注意

config.yaml的文件路径如果不在当前目录下,请将–config=之后路径修改为实际config.yaml所在文件路径

  • 32
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,以下是 CentOS7+DRBD+NFS+Keepalived 搭建的详细文档: 注意事项: - 本文档基于 CentOS 7 操作系统。 - 本文档假设您已经熟悉 Linux 基础知识。 - 本文档中的 IP 地址、网段等均为示例,请根据实际情况修改。 一、安装 DRBD 1. 安装 epel 源 ```bash yum install epel-release -y ``` 2. 安装 DRBD ```bash yum install drbd84-utils kmod-drbd84 -y ``` 3. 修改 DRBD 配置文件 `/etc/drbd.d/global_common.conf`,添加以下配置: ```conf global { usage-count no; } common { protocol C; } ``` 4. 配置 DRBD,修改 `/etc/drbd.d/drbd0.res` 文件,添加以下配置: ```conf resource drbd0 { device /dev/drbd0; meta-disk internal; syncer { rate 100M; } on node1 { address 192.168.1.101:7788; disk /dev/sdb1; } on node2 { address 192.168.1.102:7788; disk /dev/sdb1; } } ``` 说明: - `device`:DRBD 同步的设备名。 - `meta-disk`:DRBD 元数据存储位置。 - `syncer`:同步速率。 - `on`:节点配置,`address` 为节点 IP 和端口,`disk` 为 DRBD 同步的磁盘设备。 5. 初始化 DRBD 在节点1上执行: ```bash drbdadm create-md drbd0 ``` 在节点2上执行: ```bash drbdadm create-md drbd0 ``` 6. 启动 DRBD 在节点1上执行: ```bash drbdadm up drbd0 ``` 在节点2上执行: ```bash drbdadm up drbd0 ``` 7. 初始化数据 在节点1上执行: ```bash drbdadm primary drbd0 --force mkfs.xfs /dev/drbd0 ``` 在节点2上执行: ```bash drbdadm primary drbd0 --force mkfs.xfs /dev/drbd0 ``` 8. 启用 DRBD 自动同步 在节点1上执行: ```bash drbdadm -- --overwrite-data-of-peer primary drbd0 ``` 在节点2上执行: ```bash drbdadm connect drbd0 ``` 二、安装 NFS 1. 安装 NFS ```bash yum install nfs-utils -y ``` 2. 配置 NFS,修改 `/etc/exports` 文件,添加以下配置: ```conf /drbd_mount_point 192.168.1.0/24(rw,sync,no_root_squash) ``` 说明: - `/drbd_mount_point`:DRBD 挂载的目录。 - `192.168.1.0/24`:允许访问的 IP 段。 - `rw`:允许读写。 - `sync`:同步写入。 - `no_root_squash`:允许 root 用户访问。 3. 启动 NFS ```bash systemctl start nfs ``` 三、安装 Keepalived 1. 安装 Keepalived ```bash yum install keepalived -y ``` 2. 配置 Keepalived,修改 `/etc/keepalived/keepalived.conf` 文件,添加以下配置: ```conf ! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script chk_nfs { script "/usr/local/bin/chk_nfs.sh" interval 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.1.100/24 dev eth0 } track_script { chk_nfs } } ``` 说明: - `router_id`:路由 ID,可以随意设置。 - `vrrp_script`:自定义脚本,用于检测 NFS 服务是否正常。 - `vrrp_instance`:VRRP 实例配置,`state` 为当前节点状态(MASTER 或 BACKUP),`interface` 为节点网卡名称,`virtual_router_id` 为虚拟路由 ID,`priority` 为节点优先级,`virtual_ipaddress` 为虚拟 IP 地址。 3. 创建 NFS 检测脚本 `/usr/local/bin/chk_nfs.sh`,添加以下内容: ```bash #!/bin/bash nfs_status=$(systemctl status nfs | grep "Active:" | awk '{print $2}') if [ "$nfs_status" != "active" ] then exit 1 fi exit 0 ``` 说明:该脚本用于检测 NFS 服务是否正常,如果服务异常则返回 1。 4. 启动 Keepalived ```bash systemctl start keepalived ``` 至此,CentOS7+DRBD+NFS+Keepalived 的搭建已经完成了。您可以通过访问虚拟 IP 地址来访问 NFS 服务。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

David爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值