51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

velero 安装-(k8s 备份 1 )

k8s集群备份与恢复kubenetes

velero 的备份与恢复 (k8s)

场景:

备份源环境的多节点 KubeSphere 集群 A,在目标环境上恢复此多节点 KubeSphere 集群。

环境:

源集群 A (master,node1,node2):已经部署 KubeSphere-v3.0.0

目标集群 B (master,node1,node2):已经部署 Kubernetes-v1.17.9

独立的对象存储 Minio (虚机)

架构图:

用的工具-velero

velero 备份原理图:

当你运行velero backup create test-backup:

Velero 客户端调用 Kubernetes API 服务器来创建Backup对象。
BackupController通知新对象Backup并执行验证。
BackupController开始备份过程。它通过向 API 服务器查询资源来收集要备份的数据。
调用对象存储服务(BackupController例如 AWS S3)以上传备份文件。

默认情况下,velero backup create创建任何持久卷的磁盘快照。您可以通过指定其他标志来调整快照。运行velero backup create --help以查看可用的标志。可以使用选项禁用快照--snapshot-volumes=false。

velero 简介:

Velero 提供了备份和恢复 Kubernetes 集群资源和持久卷的工具,可以在云上或本地运行。
Velero 可对集群进行备份与恢复,以防数据丢失;也可将集群资源迁移到其他集群,如将生产集
群复制到备份集群

restic

Restic 是 Velero 的开源备份组件,用于备份和恢复 Kubernetes 卷,备份前,卷必须被注释。
备份 pv 数据时,不支持卷类型为 hostpath。

Velero 支持的后端存储

Velero 支持两种关于后端存储的 CRD,分别是 BackupStorageLocation 和
VolumeSnapshotLocation。

BackupStorageLocation 主要用来定义 Kubernetes 集群资源的数据存放位置,即集群对象数据,
不是 PVC 的数据。后端存储主要支持兼容 S3 的存储,比如 Minio 等。

VolumeSnapshotLocation 主要用来给 PV 做快照,需要云厂商提供插件,还需要使用 CSI 等存
储机制。这里我们使用专门的备份工具 Restic,把 PV 数据备份到minio。

Minio 搭建

minio单机部署 :连接

velero分为 客户端和服务端。 其中 velero服务端以pod形式运行在k8s里

第2部分: 安装velero 客户端

1-下载velero二进制命令

wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz
tar xf velero-v1.8.1-linux-amd64.tar.gz
cp velero-v1.8.1-linux-amd64/velero /usr/local/bin/

有限制的话可以尝试:

wget https://gitee.com/wang-huamao/soft/raw/4c70200db06283138a36492c4557ae5ae5d884b4/k8s/velero-v1.8.1-linux-amd64.tar.gz

2-创建访问minio的认证文件

mkdir  /data/velero -p
cd /data/velero/

vim velero-auth.txt

[default]
aws_access_key_id = admin
aws_secret_access_key = 12345678

这个地方可以直接是账号密码,不想整key之类的话

就是这样,如果这里是阿里云OSS的话,这里就是ram子账号这样

aws_access_key_id 对应minio 的 Access Key 的值
aws_secret_access_key 对应minio 的 Secret Key 的值

3-安装velero服务端

(1)不备份volume数据

velero install \
--provider aws \
--plugins velero/velero-plugin-for-aws:v1.2.1 \
--bucket velero \
--secret-file /data/velero/velero-auth.txt \
--use-volume-snapshots=false \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://8.130.78.133:9000

验证:

 kubectl -n velero get pod

检查 安装位置: CRD -》 BackupStorageLocation


2)备份volume数据

如果是之前是 安装的部分 存储卷的,可以直接执行下边的卸载:

#卸载velero
kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero

我一般是要备份存储卷内容的。

velero install \
--provider aws \
--plugins velero/velero-plugin-for-aws:v1.2.1 \
--bucket velero \
--secret-file /data/velero/velero-auth.txt \
--use-volume-snapshots=false \
--default-volumes-to-restic \
--use-restic \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://8.130.78.133:9000

参数说明:

--provider:声明使用的 Velero 插件类型。
--plugins:使用 S3 API 兼容插件 "velero-plugin-for-aws "。
--bucket:在腾讯云 COS 创建的存储桶名。
--secret-file:访问 COS 的访问凭证文件,见上面创建的 "credentials-velero"凭证文件。
--use-restic:使用开源免费备份工具 restic 备份和还原持久卷数据。
--default-volumes-to-restic:使用 restic 来备份所有Pod卷,前提是需要开启 --use-restic 参数。
--backup-location-config:备份存储桶访问相关配置。
--region:兼容 S3 API 的 COS 存储桶地区,例如创建地区是广州的话,region 参数值为"ap-guangzhou"。
--s3ForcePathStyle:使用 S3 文件路径格式。
--s3Url:COS 兼容的 S3 API 访问地址
--use-volume-snapshots=false 来关闭存储卷数据快照备份

其他参数参考:连接

检查 是否安装成功: 日志

 kubectl logs deployment/velero -n velero

卸载velero

velero uninstall --force

或者:

kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero

如果是备份volume数据的话,请注意kubelet pod路径是否有修改过路径。默认路径是 /var/lib/kubelet/pods

确认方法:ps -ef | grep kubelet 确认kubelet服务是否有带有 --root-dir 的参数,如有请将restic的 daemonset.spec.template.spec.volumes.hostPath.path 修改对应的路径

验证:

kubectl logs deployment/velero -n velero

发现有错误:

Current backup storage locations available/unavailable/unknown

发现端口是9090 ,而非9000 , 大家这个换一下就可以。

查看pod

kubectl -n velero get pod


我这是单节点的 所以只显示一个
这样,我们的 velero 就安装完成了。
接下来我们使用 velero 的备份与恢复功能。
velero 的备份与恢复 (k8s)
velero 相关命令:
1-查看 备份记录

velero backup get 


2- 查看恢复记录

velero restore get

https://www.kancloud.cn/jiaxzeng/kubernetes/3125937
使用对象存储 COS 作为 Velero 存储实现集群资源备份和还原
阿里云oss 方法

赞(7)
未经允许不得转载:工具盒子 » velero 安装-(k8s 备份 1 )