主管.上安装 适用于 vSphere 的 Velero 插件 后,可以使用 适用于 vSphere 的 Velero 插件 备份和还原 vSphere Pod 上运行的工作负载。

概览

适用于 vSphere 的 Velero 插件 提供了备份和还原 vSphere with Tanzu 工作负载的解决方案。解决方案需要安装和配置多个组件。在 主管 上安装和配置 适用于 vSphere 的 Velero 插件 后,可以备份和还原 vSphere Pod。对于持久工作负载,适用于 vSphere 的 Velero 插件 可用于生成持久卷的快照。

主管 上安装 适用于 vSphere 的 Velero 插件,也是使用 适用于 vSphere 的 Velero 插件 备份和还原 Tanzu Kubernetes 集群工作负载的必备条件。
注: 适用于 vSphere 的 Velero 插件 无法用于备份和还原 主管 状态。请参见 备份和还原 vSphere with Tanzu 的注意事项
注: 适用于 vSphere 的 Velero 插件 本身不会执行增量备份。Dell EMC PowerProtect 支持增量备份,并利用 Velero 和 适用于 vSphere 的 Velero 插件

必备条件

安装 适用于 vSphere 的 Velero 插件 之前,请遵循以下必备条件:
  • 主管 为 1.21.1 或更高版本。
  • 已创建并配置 vSphere 命名空间
  • 您必须是 vSphere 管理员角色的成员,或者具有以下 vSphere 特权:
    • SupervisorServices.Manage
    • Namespaces.Manage
    • Namespaces.Configure
屏幕截图显示了 适用于 vSphere 的 Velero 插件 安装的结束状态。
  • NSX 网络连接用于支持部署 vSphere Pod
  • 已部署 Data Manager 虚拟机
  • Velero 运算符已启用并在 velero-vsphere-domain-cXX 命名空间中运行
  • 配置了名为 velero 的命名空间
  • 适用于 vSphere 的 Velero 插件 作为 vSphere Podvelero 命名空间中运行

此屏幕截图显示了 vSphere Client 中的 Velero 插件。

升级

这些说明假定运行的是 vSphere 8。如果之前在 vSphere 7 U3 环境中安装了 适用于 vSphere 的 Velero 插件,则在升级时,要将 Data Manager 虚拟机和 Velero vSphere Operator 迁移到新框架。将 Velero vSphere Operator 转换为新的 vSphere 服务格式。无需操作。

为流量备份和还原创建专用网络(可选)

尽管不是必需的,但建议在生产环境中将备份和还原流量与 vSphere with Tanzu 管理网络流量分开。这有两个方面:
  • 标记 ESXi 主机以支持网络文件复制 (NFC)
  • 使用 NSX-T Data Center 配置备份和还原网络

要将 vSphere 8 ESXi 主机配置为支持专用网络块设备 (NBD) 传输,请在启用了工作负载管理的 vSphere 集群中的每个 ESXi 主机上添加一个 VMkernel 网卡,并在该网卡上设置 vSphereBackupNFC。将标记 vSphereBackupNFC 应用于 VMkernel 适配器的网卡类型时,备份和还原流量将通过所选虚拟网卡。

要执行此配置,请使用虚拟磁盘开发工具包。请参阅 NBD 文档
注: 如果未在 VMkernel 网卡上启用 vSphereBackupNFC,则不会在备份和还原网络上发送备份和还原流量,即使已配置备份和还原网络。如果未启用 vSphereBackupNFC,流量将通过 vSphere 管理网络传输。
启用 vSphereBackupNFC 标记后,通过更新集群的现有 vSphere Distributed Switch (vDS),使用 NSX-T 配置备份和还原网络,如下所示:
  • vSphere Client 中,选择菜单 > 网络连接
  • 选择集群的现有 vDS。
  • 右键单击 vDS,然后选择分布式端口组 > 新建分布式端口组
  • 创建名为 BackupRestoreNetwork 的新分布式端口组。
  • 将 VMkernel 适配器添加到 BackupRestoreNetwork 分布式端口组。
  • 将启用了工作负载管理的 vCenter 集群中的所有 ESXi 主机连接到 BackupRestoreNetwork 分布式端口组。
  • 启用 vSphereBackupNFC 标记。

有关在现有 vDS 上创建 NSX 网络的指导,请参见安装和配置 NSX for vSphere with Tanzu

创建与 S3 兼容的对象存储

要备份和还原持久卷,您需要提供与 S3 兼容的对象存储。Velero 支持许多对象存储提供程序

要安装 适用于 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 插件 时将引用此文件。
[default]
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

MinIO 是一个与 S3 兼容的对象存储,易于安装和使用。vSphere with Tanzu 附带可以启用的 MinIO 主管服务。有关详细信息,请参见在 vSphere with Taznu 中启用有状态服务

或者,也可以在 Linux 虚拟机上手动安装 MinIO 服务器。有关说明,请参见在主管中的 TKG 2 集群上安装和配置独立 Velero 和 Restic

安装和配置 Data Manager

为了便于使用 适用于 vSphere 的 Velero 插件 进行备份和还原,需要部署一个或多个 Data Manager 虚拟机,以将持久卷备份数据移入和移出与 S3 兼容的对象存储。备份时,Data Manager 会将卷快照数据从 vSphere 卷迁移到与 S3 兼容的远程持久存储,在还原期间,会从与 S3 兼容的远程存储迁移到 vSphere 卷。

vSphere with Tanzu 环境中,安装 Data Manager 作为虚拟机。
注: 启用 Velero vSphere 操作者 后,再打开 Data Manager 虚拟机的电源。
  1. 下载 Data Manager OVA:

    https://vsphere-velero-datamgr.s3-us-west-1.amazonaws.com/datamgr-ob-17253392-photon-3-release-1.1.ova

  2. 使用 vSphere Client 右键单击已启用工作负载管理的数据中心,然后选择部署 OVF 模板
  3. 选择已下载的 Data Manager OVA 文件,并将其上载到 vCenter Server
  4. 例如,命名虚拟机 DataManager
  5. 选择配置了 主管 的计算资源,即 vSphere 集群。
  6. 查看虚拟机部署详细信息,然后单击下一步
  7. 接受许可协议,然后单击下一步
  8. 选择存储,然后单击下一步
  9. 选择 Data Manager 虚拟机的目标网络。
  10. 确认选择,然后单击完成以完成流程。
  11. 使用“近期任务”面板监控部署进度。
    注: 如果收到错误消息“OVF 描述符不可用”(OVF Descriptor is not available),请使用 Chrome 浏览器。
  12. 部署 Data Manager 虚拟机后,请为虚拟机配置输入参数。
  13. 右键单击虚拟机,然后选择编辑设置
  14. 在“虚拟硬件”选项卡中,对于 CD/DVD 驱动器,从主机设备更改为客户端设备
    注: 如果不执行此操作,则无法保存所需的高级配置设置。
  15. 编辑设置 > 虚拟机选项选项卡中,选择高级 > 编辑配置参数
  16. 为以下每个设置配置输入参数:
    参数
    guestinfo.cnsdp.vcUser 输入具有足够权限来部署虚拟机的 vCenter Server 用户名。
    guestinfo.cnsdp.vcAddress 输入 vCenter Server IP 地址或 FQDN。
    guestinfo.cnsdp.vcPasswd 输入 vCenter Server 用户密码。
    guestinfo.cnsdp.vcPort 默认值为 443。请勿更改此值。
    guestinfo.cnsdp.wcpControlPlaneIP 输入 主管 IP 地址。

    获取此值的方法是:导航到启用了工作负载管理的 vCenter 集群,然后选择配置 > 命名空间 > 网络 > 管理网络 > 起始 IP 地址

    guestinfo.cnsdp.updateKubectl 默认值为 false。请勿更改此值。
    guestinfo.cnsdp.veleroNamespace 默认值为 velero ,除非有充分的理由进行更改,否则应保留。稍后在主管集群上创建名为 velero 的 vSphere 命名空间。这些名称必须匹配。
    guestinfo.cnsdp.datamgrImage 如果未配置(未设置),系统默认情况下将从 Docker Hub 中提取容器映像,地址为 vsphereveleroplugin/data-manager-for-plugin:1.1.0
  17. 单击“确定”保存配置,然后再次单击“确定”保存虚拟机设置。
    注: 如果未将 CD/DVD 驱动器从 主机设备更改为 客户端设备,则无法保存设置。如果是这种情况,请取消该操作,更改驱动器并重复高级配置设置。
  18. 启用 Velero vSphere 操作者 后再打开 Data Manager 虚拟机的电源(下一部分)。

主管 上安装 Velero vSphere 操作者 服务

vSphere with TanzuVelero vSphere 操作者 作为 主管服务 提供。Velero vSphere 操作者 服务与 适用于 vSphere 的 Velero 插件 协同工作,支持备份和还原 Kubernetes 工作负载,包括生成持久卷快照。有关 主管服务 的详细信息,请参见使用 vSphere with Tanzu 管理主管服务

完成以下操作,在启用了 工作负载管理vCenter Server 中注册 Velero vSphere Operator 规范,并在 主管 上作为服务安装 Velero vSphere Operator
注: Velero vSphere Operator 作为 vSphere Pod 运行,因此需要 NSX-T 网络连接。
  1. 从以下位置下载 Velero vSphere Operator 的 YAML:

    http://vmware.com/go/supervisor-service

    服务规范文件名为 velero-supervisorservice-1.0.0.yaml

  2. vSphere Client 主菜单中,选择工作负载管理
  3. 选择服务选项卡。
  4. 从顶部的下拉菜单中选择目标 vCenter Server 实例。
  5. 将下载的服务规范文件 velero-supervisorservice-1.0.0.yaml 拖放到添加新服务卡视图中。

    或者,也可以单击添加,然后浏览查找并选择文件 velero-supervisorservice-1.0.0.yaml

  6. 单击下一步并接受许可协议。
  7. 单击完成

    Velero vSphere Operator 将在 vCenter Server 中注册。确认服务处于活动状态。如果服务已取消激活,则无法安装该服务。

  8. 服务选项卡中找到 Velero vSphere Operator 规范。
  9. 单击操作 > 在主管上安装
  10. 选择要安装该服务的目标 主管
    注: 如果看不到您的 主管,请确认您使用的是 NSX 网络连接。
  11. 配置 Velero vSphere Operator 服务安装,如下所示:
    1. 从下拉列表中选择版本:1.1.0
    2. 请勿指定存储库端点
    3. 请勿输入用户名或密码。
    4. 单击下一步
  12. 单击安装以完成服务的安装。

验证 主管 上的 Velero vSphere Operator 服务,然后启动 Data Manager 虚拟机。

  1. vSphere Client 主菜单中,选择工作负载管理
  2. 单击主管选项卡,然后选择安装了 Velero vSphere Operator主管
  3. 依次单击配置选项卡和主管服务下方的概述
  4. 确认看到 Velero vSphere Operator 已安装,并且其状态为已配置
  5. 命名空间选项卡中,确认看到了名为 svc-velero-vsphere-domain-xxx 的新命名空间,其中 xxx 是唯一字母数字令牌。这是系统为 Velero vSphere Operator 创建的命名空间。
    注: 无需配置此命名空间,也不应对其进行编辑。
  6. 主机和集群视图中,选择 Data Manager 虚拟机。
  7. 右键单击 Data Manager 虚拟机,然后打开其电源。

适用于 vSphere 的 Velero 插件 创建 vSphere 命名空间

使用 vSphere Client,在 主管 上手动创建 vSphere 命名空间适用于 vSphere 的 Velero 插件 需要此命名空间。有关指导,请参见 创建和配置 vSphere 命名空间
  • 将命名空间命名 velero
  • 选择 velero 命名空间并对其进行配置。
  • velero 命名空间指定存储。
  • 向用户授予适当的权限,使其具备编辑 velero 命名空间的权限。

安装 适用于 vSphere 的 Velero 插件

现在,已准备好安装 适用于 vSphere 的 Velero 插件。为此,请下载并运行 velero-vsphere CLI。
注: 此过程需要 Linux 虚拟机。应当下载 velero-vsphere 并将其运行到运行 kubectl-vspherekubectl CLI 的 Linux 跳转主机。
  1. 创建可在其中运行 CLI 的 Linux 虚拟机。或者使用现有的 Linux 跳转主机,在这里可以访问 主管
  2. 从以下位置下载 适用于 vSphere 的 Velero 插件 CLI:

    https://github.com/vmware-tanzu/velero-plugin-for-vsphere/releases/download/v1.1.0/velero-vsphere-1.1.0-linux-amd64.tar.gz

  3. 将 CLI 安全复制到 Linux 跳转主机。例如:
    pscp -P 22 C:\temp\velero-vsphere-1.1.0-linux-amd64.tar.gz [email protected]:/home/ubuntu/tanzu
  4. 提取 velero-vsphere CLI 并将其设置为可写入。
    tar -xf velero-vsphere-1.1.0-linux-amd64.tar.gz
    chmod +x velero-vsphere
  5. 使用以下内容创建 s3-credentials 文件。
    aws_access_key_id = ACCESS-KEY-ID-STRING
    aws_secret_access_key = SECRET-ACCESS-KEY-STRING
  6. 获取与 S3 兼容的对象存储的区域、 URL 和桶名称。
  7. 使用 kubectl 的 vSphere 插件 登录 主管
  8. 将上下文切换到 主管
    kubectl config use-context SUPERVISOR-CLUSTER-IP-ADDRESS
  9. 在创建的 velero 命名空间中,安装一个配置映射文件,该文件将主管指定为将安装 适用于 vSphere 的 Velero 插件 的集群的特定实例。
    % cat <<EOF | kubectl -n velero apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: velero-vsphere-plugin-config
    data:
      cluster_flavor: SUPERVISOR
    EOF
  10. 运行以下 velero-vsphere CLI 命令,将 适用于 vSphere 的 Velero 插件 安装到 velero 命名空间。

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

    ./velero-vsphere install \
        --namespace velero \
        --image velero/velero:v1.5.1 \
        --provider aws \
        --plugins velero/velero-plugin-for-aws:v1.1.0,vsphereveleroplugin/velero-plugin-for-vsphere:1.1.0 \
        --bucket BUCKET-NAME \
        --secret-file s3-credentials \
        --snapshot-location-config region=REGION \
        --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
    注: 您可以在 主管 上使用 适用于 vSphere 的 Velero 插件 v1.1.0 及更高版本,例如 vsphereveleroplugin/velero-plugin-for-vsphere:v1.1.1vsphereveleroplugin/velero-plugin-for-vsphere:v1.2.0。Velero 版本必须为 v1.5.1 ( velero/velero:v1.5.1)。
  11. 验证 适用于 vSphere 的 Velero 插件 安装是否成功。
    成功安装后,应该会看到以下消息:
    Send the request to the operator about installing Velero in namespace velero
    运行以下命令以进一步验证。应该会看到“已完成”和版本。
    kubectl -n velero get veleroservice default -o json | jq '.status'
    预期结果:
    {
      "enabled": true,
      "installphase": "Completed",
      "version": "v1.5.1"
    }
    注: 以上命令假定安装了 jq 实用程序,该实用程序可以对发送到终端的 JSON 输出进行格式化。如果未安装 jq,请安装该命令或移除命令的这一部分( json 后的所有内容)。
  12. 按需执行故障排除。

    如果安装不成功,请移除安装并重试。要移除安装,请按列出的顺序完成下一节中的步骤。

在气隙环境中安装 Velero 插件

如果计划在气隙环境中安装 适用于 vSphere 的 Velero 插件,则必须使用自定义映像进行安装。您必须确保自定义映像的 backup-driverdata-manager-for-plugin 的匹配映像在预期的注册表中可用,并且可从 Kubernetes 集群中访问。在气隙环境中,自定义映像应在专用注册表中,因为 Docker Hub 中已发布的映像不可访问。

要安装此插件,请执行以下步骤:
  1. 下载 velero-plugin-for-vspherebackup-driverdata-manager-for-plugin 的已发布映像。
  2. 重命名映像,也就是使用匹配的 <Registry endpoint and path><Version tag> 对其进行标记,然后将其上载到自定义存储库中。
  3. 使用自定义的 velero-plugin-for-vsphere 映像安装插件。

    在 vanilla 集群中安装 适用于 vSphere 的 Velero 插件 时,它会在后台部署两个附加组件:backup-driver 部署和 data-manager-for-plugin DaemonSet。在 主管 和 Tanzu Kubernetes 集群中,仅部署 backup-driver 部署。

    提供 velero-plugin-for-vsphere 的容器映像时,将使用映像解析机制解析匹配的 backup-driverdata-manager-for-plugin 映像。

    容器映像已正式使用以下模式:
    <Registry endpoint and path>/<Container name>:<Version tag>

    提供 velero-plugin-for-vsphere 容器映像时,将解析具有匹配的 <Registry endpoint and path><Version tag>backup-driverdata-manager-for-plugin 的相应映像。

    例如,请考虑以下 velero-plugin-for-vsphere 容器映像:
    abc.io:8989/x/y/.../z/velero-plugin-for-vsphere:vX.Y.Z
    应当提取以下匹配的 backup-driverdata-manager-for-plugin 映像:
    abc.io:8989/x/y/.../z/backup-driver:vX.Y.Z
    abc.io:8989/x/y/.../z/data-manager-for-plugin:vX.Y.Z
  4. 对安装进行故障排除。
    如果在解析 backup-driverdata-manager-for-plugin 的匹配映像时出现任何问题或错误,安装将回退到 Docker Hub 中官方 velerovsphereplugin 存储库中的相应映像。以下问题会触发回退机制:
    1. 在用户输入的自定义 velero-plugin-for-vsphere 映像中使用意外的容器名称。

      例如,将使用 x/y/velero-velero-plugin-for-vsphere:v1.1.1

    2. Velero 部署名称自定义为除 velero 以外的任何其他内容。例如,如果在部署 Velero 之前将 Velero 部署名称更新为 Velero manifests 文件中的 velero-server,则会触发该问题。

      velero-plugin-for-vsphere 中的现有映像解析机制只能识别具有固定名称 velero 的 Velero 部署。

卸载 适用于 vSphere 的 Velero 插件

完成以下步骤以卸载 适用于 vSphere 的 Velero 插件。按列出的顺序完成这些步骤。
  1. 运行 velero-vsphere CLI 以卸载 适用于 vSphere 的 Velero 插件
    ./velero-vsphere uninstall -n velero
  2. 验证名为 velerovSphere Pod 是否已移除。
    kubectl get pods -n velero

    如果看到容器“正在终止”,请等待其移除后再继续。

  3. 使用 vSphere Client,删除手动创建的名为 vSphere 命名空间velero
    注: 在命名空间删除完成之前,不要继续执行下一步。可以使用 kubectl 验证 velero 命名空间是否已移除(但不要使用 kubectl 移除 velero 命名空间)。
  4. 使用 vSphere Client,从 主管 卸载 Velero vSphere Operator
    1. 选择启用了工作负载管理的 vCenter 集群。
    2. 选择配置 > vSphere 服务 > 概述
    3. 选择 Velero vSphere Operator
    4. 单击卸载

      此操作将从 主管 卸载 Velero vSphere Operator。运算符仍可在工作负载管理 > 服务页面重新安装。要完全移除该服务,请选择操作 > 删除