需在统信uos上部署velero以实现k8s集群备份恢复:先验证k8s版本≥1.19、api聚合层与rbac权限,再安装velero客户端,配置对象存储secret,执行velero install部署服务端,最后验证备份功能。

如果您在统信UOS操作系统上运行Kubernetes集群,并希望实现集群资源与持久卷的可移植、版本可控、跨集群备份恢复能力,则需部署Velero这一专为K8s设计的备份与灾难恢复工具。以下是针对统信UOS平台安装并配置Velero以支持Kubernetes备份恢复的具体操作步骤:
一、确认环境依赖与前置条件
Velero客户端需在统信UOS主机本地运行,服务端组件以Pod形式部署于目标K8s集群中;要求K8s版本不低于1.19,且集群已启用API聚合层与RBAC权限控制。同时需准备兼容的对象存储后端(如MinIO、阿里云OSS或腾讯云COS),用于存储备份数据。
1、执行kubectl version --short验证K8s集群版本是否满足最低要求。
2、运行kubectl api-versions | grep admissionregistration确认admissionregistration.k8s.io/v1已启用。
3、检查当前用户是否具备cluster-admin权限:kubectl auth can-i --list,确保输出包含create clusterrolebindings和create customresourcedefinitions等关键权限项。
二、在统信UOS上安装Velero命令行客户端
Velero官方提供Linux AMD64架构的静态二进制包,统信UOS基于Debian/Ubuntu源系,可直接下载适配版本并配置PATH路径,使velero命令全局可用。
1、创建临时目录并进入:mkdir -p ~/velero && cd ~/velero。
2、下载适用于Linux x86_64的最新Velero v1.12.x二进制文件:wget https://github.com/vmware-tanzu/velero/releases/download/v1.12.4/velero-v1.12.4-linux-amd64.tar.gz。
3、解压并提取二进制文件:tar -xzf velero-v1.12.4-linux-amd64.tar.gz && sudo mv velero-v1.12.4-linux-amd64/velero /usr/local/bin/。
4、赋予执行权限并验证:sudo chmod +x /usr/local/bin/velero && velero version --client-only,输出应显示客户端版本号且无报错。
三、配置对象存储凭据与Secret
Velero服务端需通过Secret向K8s集群注入对象存储访问密钥,不同后端使用不同字段格式。以自建MinIO为例,需生成含accessKey和secretKey的base64编码Secret资源清单。
1、创建credentials-velero文件,写入明文凭据(注意替换YOUR_MINIO_ACCESS_KEY与YOUR_MINIO_SECRET_KEY):echo -n 'YOUR_MINIO_ACCESS_KEY' > credentials-velero && echo -n 'YOUR_MINIO_SECRET_KEY' >> credentials-velero。
2、在K8s集群中创建命名空间velero:kubectl create namespace velero。
3、将凭据文件注入为Secret:kubectl create secret generic velero-credentials --from-file=credentials=./credentials-velero -n velero。
4、验证Secret已就绪:kubectl get secret velero-credentials -n velero -o yaml,确认data字段包含两个base64编码键值。
四、部署Velero服务端组件至K8s集群
使用velero install命令自动完成CRD注册、ServiceAccount创建、RBAC绑定及核心Deployment部署。该过程将拉取官方镜像并在velero命名空间中启动server Pod。
1、执行部署命令(以MinIO为例,替换ENDPOINT、BUCKET、CA_CERT_FILE等参数):velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.12.0 --bucket velero-backups --secret-file ./credentials-velero --use-volume-snapshots=false --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000,caCert=/home/user/minio-public.crt --snapshot-location-config region=minio。
2、若使用统信UOS内置容器镜像仓库或离线环境,需提前导入velero-server镜像并修改部署清单中的image字段指向本地registry地址。
3、等待Pod就绪:kubectl wait pod -n velero -l component=velero --for=condition=Ready --timeout=300s。
五、验证备份功能并执行首次集群备份
部署完成后需验证Velero能否正常连接对象存储、识别K8s资源并成功触发备份流程。建议先对default命名空间做轻量级测试备份,避免影响生产负载。
1、列出可用备份位置:velero backup-location get,状态应为Available。
2、创建一次即时备份:velero backup create backup-$(date +%Y%m%d-%H%M%S) --include-namespaces default。
3、实时监控备份进度:velero backup describe backup-$(date +%Y%m%d-%H%M%S) --details,关注Phase字段是否由InProgress变为Completed。
4、查看对象存储桶内是否生成对应前缀目录及backup.json、resource-list.json.gz等文件。











