云容器引擎 CCE-迁移工具安装:安装Velero

时间:2023-11-20 11:27:41

安装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版本为例。原集群和目标集群中的安装过程一致,请参考如下步骤。

  1. 下载Velero 1.7.0版本的二进制文件。

    wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz

  2. 安装Velero客户端。

    tar -xvf velero-v1.7.0-linux-amd64.tar.gz
    cp ./velero-v1.7.0-linux-amd64/velero /usr/local/bin

  3. 创建备份对象存储访问密钥文件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}

  4. 部署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地址。

  5. Velero实例将默认创建一个名为velero的namespace,执行以下命令可查看pod状态。

    $ kubectl get pod -n velero
    NAME                   READY   STATUS    RESTARTS   AGE
    restic-rn29c           1/1     Running   0          16s
    velero-c9ddd56-tkzpk   1/1     Running   0          16s

    为防止在实际生产环境中备份时出现内存不足的情况,建议您参照备份工具资源分配不足,修改Restic和Velero分配的CPU和内存大小。

  6. 查看Velero工具与对象存储的对接情况,状态需要为available。

    $ velero backup-location get
    NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULT
    default   aws        velero          Available   2021-10-22 15:21:12 +0800 CST   ReadWrite     true

support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0310.html