本质上我们想要实现的是,本地文件与S3之间的同步,下面我们以MINIO进行举例,MINIO是完全兼容AWS S3的对象存储服务。
1.AWS S3的客户端下载与安装
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# 配置aws访问的accessKey和accessSecret
aws configure
2.备份本地文件到AWS S3
备份本地文件到MINIO,cp命令第一个参数为需要备份的文件路径,第二个参数是S3服务器的bucket名称。
aws s3 cp /home/wanna/k8s/ s3://dell-server-resourceyaml-backup/ --recursive --endpoint-url http://192.168.11.168:9000
如果出现checksum问题。
wanna@dell-server-k8s-master01:~$ aws s3 cp /home/wanna/k8s-20250307205841.tar.gz s3://dell-server-resourceyaml-backup/ --endpoint-url http://192.168.11.168:9000
upload failed: ./k8s-20250307205841.tar.gz to s3://dell-server-resourceyaml-backup/k8s-20250307205841.tar.gz An error occurred (InvalidArgument) when calling the CreateMultipartUpload operation: Invalid arguments provided for dell-server-resourceyaml-backup/k8s-20250307205841.tar.gz: (invalid/unknown checksum sent: invalid checksum)
那么可以尝试手动指定checksum的算法:
aws s3 cp /home/wanna/k8s-${DATE}.tar.gz s3://dell-server-resourceyaml-backup/ --endpoint-url http://192.168.11.168:9000 --checksum-algorithm CRC32
4. 从AWS S3将文件恢复到本地
从MINIO进行恢复,区别只是第一个参数和第二个参数交换位置,第一个参数是S3服务器的bucket名称,第二个参数是需要恢复文件的路径。
aws s3 cp s3://dell-server-resourceyaml-backup/ /home/wanna/k8s-restore --recursive --endpoint-url http://192.168.11.168:9000
评论