企业上云-迁移工具安装:安装Velero
安装Velero
首先前往OBS控制台或MinIO console界面,创建存放备份文件的桶并命名为velero。此处桶名称可自定义,但安装Velero时必须指定此桶名称,否则将无法访问导致备份失败,参见4。

- 原集群和目标集群中均需要安装部署Velero实例,安装步骤一致,分别用于备份和恢复。
- CCE集群的Master节点不对外提供远程登录端口,您可通过kubectl操作集群完成Velero安装。
- 如果备份资源量较大,请调整Velero及Restic工具的cpu和内存资源(建议调整至1U1G及以上)。
- 用于存放备份文件的对象存储桶需要是空桶。
从Velero官方发布路径https://github.com/vmware-tanzu/velero/releases下载最新的稳定版二进制文件,本文以Velero 1.7.0版本为例。原集群和目标集群中的安装过程一致,请参考如下步骤。
- 下载Velero 1.7.0版本的二进制文件。
wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz
- 安装Velero客户端。
tar -xvf velero-v1.7.0-linux-amd64.tar.gzcp ./velero-v1.7.0-linux-amd64/velero /usr/local/bin
- 创建备份对象存储访问密钥文件credentials-velero。
vim credentials-velero
文件内容如下,其中的AK/SK请根据实际情况进行替换。使用OBS时,可参考获取访问密钥(AK/SK)获取AK/SK。如使用MinIO,此处AK/SK则为2中所创建的用户名及密码。[default]aws_access_key_id = {AK}aws_secret_access_key = {SK}
- 部署Velero服务端。注意其中--bucket参数需要修改为已创建的对象存储桶名称,本例中为velero。关于更多自定义安装参数,请参考自定义安装Velero。
velero install \ --provider aws \ --plugins velero/velero-plugin-for-aws:v1.2.1 \ --bucket velero \ --secret-file ./credentials-velero \ --use-restic \ --use-volume-snapshots=false \ --backup-location-config region=cn-north-4,s3ForcePathStyle="true",s3Url=http://obs.cn-north-4.myhuaweicloud.com
表1 Velero安装参数说明 安装参数
参数说明
--provider
声明使用“aws”提供的插件类型。
--plugins
使用AWS S3兼容的API组件,本文使用的OBS和MinIO对象存储均支持该S3协议。
--bucket
用于存放备份文件的对象存储桶名称,需提前创建。
--secret-file
访问对象存储的密钥文件,即3中创建的“credentials-velero”文件。
--use-restic
使用Restic工具支持PV数据备份,建议开启,否则将无法备份存储卷资源。
--use-volume-snapshots
是否创建 VolumeSnapshotLocation 对象进行PV快照,需要提供快照程序支持。该值设为false。
--backup-location-config
对象存储桶相关配置,包括region、s3ForcePathStyle、s3Url等。
region
对象存储桶所在区域。
- OBS:请根据实际区域填写,如“cn-north-4”。
- MinIO:参数值为minio。
s3ForcePathStyle
参数值为“true”,表示使用S3文件路径格式。
s3Url
对象存储桶的API访问地址。
- OBS:该参数值需根据对象存储桶地域决定,参数值为“http://obs.{region}.myhuaweicloud.com”。例如区域为北京四(cn-north-4),则参数值为“http://obs.cn-north-4.myhuaweicloud.com”。
- MinIO:该参数值需根据MinIO安装节点的IP及暴露端口确定,参数值为“http://{minio所在节点的eip}:9000”。
说明:
- s3Url中的访问端口需填写MinIO的API端口,而非console端口。MinIO API端口默认为9000。
- 访问集群外安装的MinIO时,需填写其公网IP地址。
- Velero实例将默认创建一个名为velero的namespace,执行以下命令可查看pod状态。
$ kubectl get pod -n veleroNAME READY STATUS RESTARTS AGErestic-rn29c 1/1 Running 0 16svelero-c9ddd56-tkzpk 1/1 Running 0 16s
为防止在实际生产环境中备份时出现内存不足的情况,建议您修改Restic和Velero分配的CPU和内存大小。
- 查看Velero工具与对象存储的对接情况,状态需要为available。
$ velero backup-location getNAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED AC CES S MODE DEFAULTdefault aws velero Available 2021-10-22 15:21:12 +0800 CS T ReadWrite true