通过在 TKG 2 集群上安装 适用于 vSphere 的 Velero 插件,可以使用 适用于 vSphere 的 Velero 插件 备份和还原该集群上运行的工作负载。

概览

适用于 vSphere 的 Velero 插件 提供了备份和还原 TKG 集群工作负载的解决方案。对于持久工作负载, 适用于 vSphere 的 Velero 插件 可用于生成持久卷的快照。
注: 如果要求备份和还原的 TKG 2 集群工作负载具备可移植性,请勿使用 适用于 vSphere 的 Velero 插件。为了实现跨 Kubernetes 集群的可移植性,请将独立 Velero 与 Restic 结合使用。

必备条件:在 主管 上安装 适用于 vSphere 的 Velero 插件

在 TKG 2 集群上安装 适用于 vSphere 的 Velero 插件 要求 主管 已安装 适用于 vSphere 的 Velero 插件。此外,必须为 主管 配置 NSX-T 网络连接。

有关在 主管 上安装 适用于 vSphere 的 Velero 插件 的说明,请参阅《维护 vSphere with Tanzu》文档。

步骤 1:在 Linux Workstation 上安装 Velero CLI

Velero CLI 是与 Velero 交互的标准工具。Velero CLI 提供的功能比 适用于 vSphere 的 Velero 插件 CLI (velero-vsphere) 多,是备份和还原 Tanzu Kubernetes 集群工作负载所必需的。

在 Linux 工作站上安装 Velero CLI。理想情况下,这是为 vSphere with Tanzu 环境运行关联的 CLI 的同一跳转主机,包括 kubectlkubectl-vspherevelero-vsphere

完成以下步骤以安装 Velero CLI。
  1. 从 VMware 产品下载页面下载 Velero CLI 的受支持版本。有关支持的 Velero 版本的详细信息,请参见《维护 vSphere with Tanzu》
  2. 打开命令行并将目录更改为 Velero CLI 下载。
    gunzip velero-linux-v1.x.x_vmware.1.gz
  3. 检查 Velero 二进制文件。
    ls -l
    
    -rw-r--r-- 1 root root 7142128 Aug 14 14:14 velero-linux-v1.x.x_vmware.1
    
  4. 向 Velero CLI 授予执行权限。
    chmod +x velero-linux-v1.x.x_vmware.1
  5. 将 Velero CLI 移至系统路径,使其全局可用。
    cp velero-linux-v1.x.x_vmware.1 /usr/local/bin/velero
  6. 验证 Velero CLI 的安装。
    velero version
    
    Client:
        Version: v1.x.x

步骤 2:获取与 S3 兼容的存储桶详细信息

为方便起见,这些步骤假定使用在 主管 上安装 适用于 vSphere 的 Velero 插件 时配置的与 S3 兼容的相同对象存储。在生产环境中,可能需要创建单独的对象存储。

要安装 适用于 vSphere 的 Velero 插件,需要提供有关与 S3 兼容的对象存储的以下信息。
数据项 示例值
s3Url

http://my-s3-store.example.com

aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
使用以下信息创建密钥文件名 s3-credentials。安装 适用于 vSphere 的 Velero 插件 时将引用此文件。
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

步骤 3:创建 Velero 插件配置映射

在 TKG 集群上,为名为 velero-vsphere-plugin-config.yaml 的 Velero 插件创建配置映射。
apiVersion: v1
kind: ConfigMap
metadata:
  name: velero-vsphere-plugin-config
data:
  cluster_flavor: GUEST
在 TKG 集群上应用配置映射。
kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
如果未安装配置映射,则在尝试安装 适用于 vSphere 的 Velero 插件 时,您会遇到以下错误。
Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found
Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment

步骤 4:在 TKG 2 集群上安装 适用于 vSphere 的 Velero 插件

将使用 Velero CLI 在要备份和还原的目标 TKG 2 集群上安装 适用于 vSphere 的 Velero 插件

Velero CLI 上下文将自动跟随 kubectl 上下文。在运行 Velero CLI 命令以在目标集群上安装 Velero 和 适用于 vSphere 的 Velero 插件 之前,请务必将 kubectl 上下文设置为目标集群。
  1. 使用 kubectl 的 vSphere 插件主管 进行身份验证。
  2. kubectl 上下文设置为目标 TKG 2 集群。
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  3. 运行以下 Velero CLI 命令以在目标集群上安装 Velero。

    使用相应的值替换 BUCKET-NAME REGION(两个实例)和 s3Url 字段的占位符值。如果偏离上述任何说明,请同时调整这些值,例如密钥文件的名称或位置,手动创建的 velero 命名空间的名称等。

    ./velero install --provider aws \
    --bucket BUCKET-NAME \
    --secret-file ./s3-credentials \
    --features=EnableVSphereItemActionPlugin \
    --plugins velero/velero-plugin-for-aws:v1.1.0 \
    --snapshot-location-config region=REGION \
    --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
  4. 在目标集群上安装 适用于 vSphere 的 Velero 插件。安装的 Velero 将与 Kubernetes API 服务器通信以安装插件。
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:1.1.0

附录:从 TKG 2 集群中卸载 适用于 vSphere 的 Velero 插件

完成以下步骤以卸载 适用于 vSphere 的 Velero 插件
  1. kubectl 上下文设置为目标 Tanzu Kubernetes 集群。
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  2. 要卸载插件,请运行以下命令,从 Velero 部署中移除 velero-plugin-for-vsphere 的 InitContainer。
    velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:1.1.0
  3. 要完成该过程,请删除备份驱动程序部署和相关的 CRD。
    kubectl -n velero delete deployment.apps/backup-driver
    kubectl delete crds \
    backuprepositories.backupdriver.cnsdp.vmware.com \
    backuprepositoryclaims.backupdriver.cnsdp.vmware.com \
    clonefromsnapshots.backupdriver.cnsdp.vmware.com \
    deletesnapshots.backupdriver.cnsdp.vmware.com \
    snapshots.backupdriver.cnsdp.vmware.com
    kubectl delete crds uploads.datamover.cnsdp.vmware.com downloads.datamover.cnsdp.vmware.com