背景
项目需求中需要将一个k8s集群中的Minio服务的数据同步到另一个k8s集群的Minio服务中去,因为对数据实时性要求不高,仅仅起到灾备恢复的作用,所以使用Minio client实现数据间的同步使用。废话不多说,开始我们的Minio 服务数据同步旅程。
物料准备
两台虚拟机(可相互通信)
192.168.28.128
192.168.28.131
minio server (两台虚拟机同样操作)
二进制完成Minio服务的安装
#下载minio服务端并安装至目录/usr/local/bin/
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio -P /usr/local/bin/
#赋权
chmod +x /usr/local/bin/minio
#后台启动并指定Minio服务数据的存储判路径以及日志路径
nohup /usr/local/bin/minio server /data/minio > /data/minio/minio.log 2>&1 &
备注:后面的/data/minio为存储目录。如果你想建立更多存储目录,使用命令:nohup /usr/local/bin/minio server /data/minio /data1/minio /data2/minio > /data/minio/minio.log 2>&1 &
因为没有修改用户名和和密码,即Accesskey、Secretkey,故是默认的minioadmin/minioadmin.
浏览器访问地址:
http://192.168.28.131:9000/minio
http://192.168.28.128:9000/minio
Accesskey、Secretkey输入minioadmin、minioadmin
image.png
给配置开机启动:命令行输入下方命令后回车
minio="server /data/minio"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/minio.service <<EOF
[Unit]
Description=minio
After=network.target
[Service]
Type=simple
ExecStart=nohup $(command -v minio) ${minio} > /data/minio/minio.log 2>&1 &
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
继续执行命令:
systemctl daemon-reload
systemctl enable minio.service
systemctl start minio.service
minio client 安装:192.168.28.128
安装minio客户端至/usr/local/bin/目录
wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc -P /usr/local/bin/
给mc赋权限
chmod +x /usr/local/bin/mc
测试mc是否可用
mc --help
添加Minio服务的访问权限:128上执行
#方法1
mc config host add minio_wuhan http://192.168.28.128:9000 minioadmin minioadmin
mc config host add minio_shenzhen http://192.168.28.131:9000 minioadmin minioadmin
#方法2
mc alias set minio_wuhan http://192.168.28.128:9000 minioadmin minioadmin
mc alias set minio_shenzhen http://192.168.28.131:9000 minioadmin minioadmin
同步两个Minio服务的bucket:将131的Minio的所有桶数据同步至128
mc mirror --remove --overwrite --watch minio_shenzhen minio_wuhan
配置Minio client服务自启动实时监听文件改动并同步,命令行输入下方命令后回车
#深圳Minio服务别名
shenzhen_uat="minio_shenzhen"
#武汉深圳Minio服务别名
wuhan_uat="minio_wuhan"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/minioc.service <<EOF
[Unit]
Description=minioc
After=network.target
[Service]
Type=simple
ExecStart=$(command -v mc) mirror --remove --overwrite --watch ${shenzhen_uat} ${wuhan_uat}
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
继续执行命令:
systemctl daemon-reload
systemctl enable minioc.service
systemctl start minioc.service
可以在128上给131通过命令行添加桶
mc mb minio_shenzhen/artifacts
也可以访问页面进行添加
image.png131上可以分别尝试更新文件、新增文件、删除文件,在128页面查看是否同步成功
参看文档链接
https://www.moewah.com/archives/2877.html
https://www.moewah.com/archives/2886.html
网友评论