迁移工具安装
Velero是开源的 Kubernetes 集群备份、迁移工具,集成了Restic工具对PV数据的备份能力,可以通过Velero工具将原集群中的K8s资源对象(如Deployment、Job、Service、ConfigMap等)和Pod挂载的持久卷数据保存备份上传至对象存储。在发生灾难或需要迁移时,目标集群可使用Velero从对象存储中拉取对应的备份,按需进行集群资源的还原。
根据迁移方案所述,在迁移开始前需准备临时的对象存储用于存放资源的备份文件,Velero支持使用OBS对象存储,请参考安装Velero进行Velero的部署。
前提条件
- 原始自建集群Kubernetes版本需1.10及以上,且集群可正常使用DNS与互联网服务。
- 若您使用OBS存放备份文件,需已有OBS操作权限用户的AK/SK,请参考获取访问密钥(AK/SK)。
- 已创建迁移的目标CCE集群。
- 原集群和目标集群中需要至少各拥有一个空闲节点,节点规格建议为4U8G及以上。
安装Velero
首先前往OBS控制台,创建存放备份文件的桶并命名为velero。此处桶名称可自定义,但安装Velero时必须指定此桶名称,否则将无法访问导致备份失败,参见5。

- 原集群和目标集群中均需要安装部署Velero实例,安装步骤一致,分别用于备份和恢复。
- CCE集群的Master节点不对外提供远程登录端口,您可通过kubectl操作集群完成Velero安装。
- 如果备份资源量较大,请调整Velero及node-agent工具的cpu和内存资源(建议调整至1U1G及以上),请参考备份工具资源分配不足。
- 用于存放备份文件的对象存储桶需要是空桶。
从Velero官方发布路径https://github.com/vmware-tanzu/velero/releases下载最新的稳定版二进制文件,本文以Velero 1.15.1版本为例。原集群和目标集群中的安装过程一致,请参考如下步骤。
- 登录一台可以访问公网的虚拟机,并使用kubectl连接需要安装Velero的集群。
- 下载Velero 1.15.1版本的二进制文件。
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.1/velero-v1.15.1-linux-amd64.tar.gz
- 安装Velero客户端。
tar -xvf velero-v1.15.1-linux-amd64.tar.gz cp ./velero-v1.15.1-linux-amd64/velero /usr/local/bin
- 创建备份对象存储访问密钥文件credentials-velero。
vim credentials-velero
文件内容如下,其中的AK/SK请根据实际情况进行替换。使用OBS时,可参考获取访问密钥(AK/SK)获取AK/SK。OBS_ACCESS_KEY=<Your AK> OBS_SECRET_KEY=<Your SK>
- 部署Velero服务端。注意其中--bucket参数需要修改为已创建的对象存储桶名称,本例中为velero。关于更多自定义安装参数,请参考自定义安装Velero。
velero install \ --provider huawei.com/huaweicloud \ --plugins swr.ap-southeast-1.myhuaweicloud.com/huaweiclouddeveloper/velero-plugin-for-huaweicloud:v1.0.0 \ --bucket velero \ --secret-file ./credentials-velero \ --use-node-agent \ --use-volume-snapshots=false \ --backup-location-config endpoint=obs.ap-southeast-1.myhuaweicloud.com
表1 Velero安装参数说明 安装参数
参数说明
--provider
声明使用的组件提供商。本文使用HuaweiCloud组件,详情请参见Plugins to support Velero on HuaweiCloud。
--plugins
使用组件的容器镜像地址。
--bucket
用于存放备份文件的对象存储桶名称,需提前创建。
--secret-file
访问对象存储的密钥文件,即4中创建的“credentials-velero”文件。
--use-node-agent
PV数据备份,建议开启,否则将无法备份存储卷资源。
--use-volume-snapshots
是否创建 VolumeSnapshotLocation 对象进行PV快照,需要提供快照程序支持。该值设为false。
--backup-location-config
填写对象存储桶相关配置。
- Velero实例将默认创建一个名为velero的namespace,执行以下命令可查看Pod状态。
kubectl get pod -n velero
回显如下:
NAME READY STATUS RESTARTS AGE node-agent-rn29c 1/1 Running 0 16s velero-c9ddd56-tkzpk 1/1 Running 0 16s
- 为Velero实例添加环境变量,读取访问对象存储的密钥文件。
kubectl patch deployment velero -n velero --patch \ '{"spec":{"template":{"spec":{"containers":[{"name": "velero", "env": [{"name": "HUAWEI_CLOUD_CREDENTIALS_FILE", "value": "/credentials/cloud"}]}]}}}}'
- 查看Velero工具与对象存储的对接情况,状态需要为Available。
velero backup-location get
回显如下:
NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT default *** velero Available 2025-06-04 17:40:55 +0800 CST ReadWrite true