跳至主要內容

kubernetes备份和恢复

知识库容器技术kubernetes建设kubernetes建设小于 1 分钟

安装MinIO

docker pull minio/minio:latest
docker run -p 9000:9000 -p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=minio123" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"

netstat -tnlp

在master-01节点部署velero

下载安装包
wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz
tar -xvzf velero-v1.8.1-linux-amd64.tar.gz
mv velero /usr/local/bin

配置 velero 认证环境

mkdir /data/velero -p
cd /data/velero
cat velero-auth.txt
[default]
aws_access_key_id = admin
aws_secret_access_key = minio123

将 velero 安装到 K8s 集群

kubectl create ns velero-system

velero --kubeconfig /root/.kube/config \
  install \
  --provider aws \
  --plugins velero/velero-plugin-for-aws:v1.3.1 \
  --bucket velerodata \
  --secret-file ./velero-auth.txt \
  --use-volume-snapshots=false \
  --namespace velero-system \
  --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://172.16.88.170:9000

kubectl get pod -A

测试备份功能

DATE=`date +%Y%m%d%H%M%S`
velero backup create default-backup-${DATE} --include-cluster-resources=true  --include-namespaces kube-system --kubeconfig=/root/.kube/config --namespace velero-system
Backup request "default-backup-20220804202021" submitted successfully.
Run `velero backup describe default-backup-20220804202021` or `velero backup logs default-backup-20220804202021` for more details.
root@easzlab-k8s-master-01:~#
velero backup create myserver-backup-${DATE} --include-cluster-resources=true --include-namespaces myserver --kubeconfig=/root/.kube/config --namespace velero-system
Backup request "myserver-backup-20220804202021" submitted successfully.
Run `velero backup describe myserver-backup-20220804202021` or `velero backup logs myserver-backup-20220804202021` for more details.
root@easzlab-k8s-master-01:~#