在 主管.上安装 适用于 vSphere 的 Velero 插件 后,可以使用 适用于 vSphere 的 Velero 插件 备份和还原 vSphere Pod 上运行的工作负载。
概览
适用于 vSphere 的 Velero 插件 提供了备份和还原 vSphere with Tanzu 工作负载的解决方案。解决方案需要安装和配置多个组件。在 主管 上安装和配置 适用于 vSphere 的 Velero 插件 后,可以备份和还原 vSphere Pod。对于持久工作负载,适用于 vSphere 的 Velero 插件 可用于生成持久卷的快照。
必备条件
- 主管 为 1.21.1 或更高版本。
- 已创建并配置 vSphere 命名空间。
- 您必须是 vSphere 管理员角色的成员,或者具有以下 vSphere 特权:
- SupervisorServices.Manage
- Namespaces.Manage
- Namespaces.Configure
- NSX 网络连接用于支持部署 vSphere Pod
- 已部署 Data Manager 虚拟机
- Velero 运算符已启用并在
velero-vsphere-domain-cXX
命名空间中运行 - 配置了名为
velero
的命名空间 - 适用于 vSphere 的 Velero 插件 作为 vSphere Pod 在
velero
命名空间中运行
升级
这些说明假定运行的是 vSphere 8。如果之前在 vSphere 7 U3 环境中安装了 适用于 vSphere 的 Velero 插件,则在升级时,要将 Data Manager 虚拟机和 Velero vSphere Operator 迁移到新框架。将 Velero vSphere Operator 转换为新的 vSphere 服务格式。无需操作。
为流量备份和还原创建专用网络(可选)
- 标记 ESXi 主机以支持网络文件复制 (NFC)
- 使用 NSX-T Data Center 配置备份和还原网络
要将 vSphere 8 ESXi 主机配置为支持专用网络块设备 (NBD) 传输,请在启用了工作负载管理的 vSphere 集群中的每个 ESXi 主机上添加一个 VMkernel 网卡,并在该网卡上设置 vSphereBackupNFC
。将标记 vSphereBackupNFC
应用于 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 卷。
- 下载 Data Manager OVA:
- 使用 vSphere Client 右键单击已启用工作负载管理的数据中心,然后选择部署 OVF 模板。
- 选择已下载的 Data Manager OVA 文件,并将其上载到 vCenter Server。
- 例如,命名虚拟机 DataManager。
- 选择配置了 主管 的计算资源,即 vSphere 集群。
- 查看虚拟机部署详细信息,然后单击下一步。
- 接受许可协议,然后单击下一步。
- 选择存储,然后单击下一步。
- 选择 Data Manager 虚拟机的目标网络。
- 如果配置了专用备份和还原网络,请选择 BackupRestoreNetwork。请参见为流量备份和还原创建专用网络(可选)。
- 如果未配置专用备份和还原网络,请选择管理网络。
- 确认选择,然后单击完成以完成流程。
- 使用“近期任务”面板监控部署进度。
注: 如果收到错误消息“OVF 描述符不可用”(OVF Descriptor is not available),请使用 Chrome 浏览器。
- 部署 Data Manager 虚拟机后,请为虚拟机配置输入参数。
- 右键单击虚拟机,然后选择 。
- 在“虚拟硬件”选项卡中,对于 CD/DVD 驱动器,从主机设备更改为客户端设备。
注: 如果不执行此操作,则无法保存所需的高级配置设置。
- 在 选项卡中,选择 。
- 为以下每个设置配置输入参数:
参数 值 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 集群,然后选择
guestinfo.cnsdp.updateKubectl
默认值为 false。请勿更改此值。 guestinfo.cnsdp.veleroNamespace
默认值为 velero ,除非有充分的理由进行更改,否则应保留。稍后在主管集群上创建名为 velero
的 vSphere 命名空间。这些名称必须匹配。guestinfo.cnsdp.datamgrImage
如果未配置(未设置),系统默认情况下将从 Docker Hub 中提取容器映像,地址为 vsphereveleroplugin/data-manager-for-plugin:1.1.0
- 单击“确定”保存配置,然后再次单击“确定”保存虚拟机设置。
注: 如果未将 CD/DVD 驱动器从 主机设备更改为 客户端设备,则无法保存设置。如果是这种情况,请取消该操作,更改驱动器并重复高级配置设置。
- 启用 Velero vSphere 操作者 后再打开 Data Manager 虚拟机的电源(下一部分)。
在 主管 上安装 Velero vSphere 操作者 服务
vSphere with Tanzu 将 Velero vSphere 操作者 作为 主管服务 提供。Velero vSphere 操作者 服务与 适用于 vSphere 的 Velero 插件 协同工作,支持备份和还原 Kubernetes 工作负载,包括生成持久卷快照。有关 主管服务 的详细信息,请参见使用 vSphere with Tanzu 管理主管服务。
- 从以下位置下载 Velero vSphere Operator 的 YAML:
http://vmware.com/go/supervisor-service
服务规范文件名为 velero-supervisorservice-1.0.0.yaml。
- 从 vSphere Client 主菜单中,选择工作负载管理。
- 选择服务选项卡。
- 从顶部的下拉菜单中选择目标 vCenter Server 实例。
- 将下载的服务规范文件
velero-supervisorservice-1.0.0.yaml
拖放到添加新服务卡视图中。或者,也可以单击添加,然后浏览查找并选择文件 velero-supervisorservice-1.0.0.yaml。
- 单击下一步并接受许可协议。
- 单击完成。
Velero vSphere Operator 将在 vCenter Server 中注册。确认服务处于活动状态。如果服务已取消激活,则无法安装该服务。
- 在服务选项卡中找到 Velero vSphere Operator 规范。
- 单击 。
- 选择要安装该服务的目标 主管。
注: 如果看不到您的 主管,请确认您使用的是 NSX 网络连接。
- 配置 Velero vSphere Operator 服务安装,如下所示:
- 从下拉列表中选择版本:1.1.0。
- 请勿指定存储库端点。
- 请勿输入用户名或密码。
- 单击下一步。
- 单击安装以完成服务的安装。
验证 主管 上的 Velero vSphere Operator 服务,然后启动 Data Manager 虚拟机。
- 从 vSphere Client 主菜单中,选择工作负载管理。
- 单击主管选项卡,然后选择安装了 Velero vSphere Operator 的 主管。
- 依次单击配置选项卡和主管服务下方的概述。
- 确认看到 Velero vSphere Operator 已安装,并且其状态为已配置。
- 在命名空间选项卡中,确认看到了名为
svc-velero-vsphere-domain-xxx
的新命名空间,其中xxx
是唯一字母数字令牌。这是系统为 Velero vSphere Operator 创建的命名空间。注: 无需配置此命名空间,也不应对其进行编辑。 - 在主机和集群视图中,选择 Data Manager 虚拟机。
- 右键单击 Data Manager 虚拟机,然后打开其电源。
为 适用于 vSphere 的 Velero 插件 创建 vSphere 命名空间
- 将命名空间命名 velero。
- 选择 velero 命名空间并对其进行配置。
- 为 velero 命名空间指定存储。
- 向用户授予适当的权限,使其具备编辑 velero 命名空间的权限。
安装 适用于 vSphere 的 Velero 插件
kubectl-vsphere
和
kubectl
CLI 的 Linux 跳转主机。
- 创建可在其中运行 CLI 的 Linux 虚拟机。或者使用现有的 Linux 跳转主机,在这里可以访问 主管。
- 从以下位置下载 适用于 vSphere 的 Velero 插件 CLI:
- 将 CLI 安全复制到 Linux 跳转主机。例如:
pscp -P 22 C:\temp\velero-vsphere-1.1.0-linux-amd64.tar.gz [email protected]:/home/ubuntu/tanzu
- 提取
velero-vsphere
CLI 并将其设置为可写入。tar -xf velero-vsphere-1.1.0-linux-amd64.tar.gz chmod +x velero-vsphere
- 使用以下内容创建
s3-credentials
文件。aws_access_key_id = ACCESS-KEY-ID-STRING aws_secret_access_key = SECRET-ACCESS-KEY-STRING
- 获取与 S3 兼容的对象存储的区域、 URL 和桶名称。
- 使用 kubectl 的 vSphere 插件 登录 主管。
- 将上下文切换到 主管。
kubectl config use-context SUPERVISOR-CLUSTER-IP-ADDRESS
- 在创建的 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
- 运行以下
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.1
或vsphereveleroplugin/velero-plugin-for-vsphere:v1.2.0
。Velero 版本必须为 v1.5.1 (velero/velero:v1.5.1
)。 - 验证 适用于 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
后的所有内容)。 - 按需执行故障排除。
如果安装不成功,请移除安装并重试。要移除安装,请按列出的顺序完成下一节中的步骤。
在气隙环境中安装 Velero 插件
如果计划在气隙环境中安装 适用于 vSphere 的 Velero 插件,则必须使用自定义映像进行安装。您必须确保自定义映像的 backup-driver
和 data-manager-for-plugin
的匹配映像在预期的注册表中可用,并且可从 Kubernetes 集群中访问。在气隙环境中,自定义映像应在专用注册表中,因为 Docker Hub 中已发布的映像不可访问。
- 下载
velero-plugin-for-vsphere
、backup-driver
和data-manager-for-plugin
的已发布映像。 - 重命名映像,也就是使用匹配的
<Registry endpoint and path>
和<Version tag>
对其进行标记,然后将其上载到自定义存储库中。 - 使用自定义的
velero-plugin-for-vsphere
映像安装插件。在 vanilla 集群中安装 适用于 vSphere 的 Velero 插件 时,它会在后台部署两个附加组件:
backup-driver
部署和data-manager-for-plugin
DaemonSet。在 主管 和 Tanzu Kubernetes 集群中,仅部署backup-driver
部署。提供
velero-plugin-for-vsphere
的容器映像时,将使用映像解析机制解析匹配的backup-driver
和data-manager-for-plugin
映像。容器映像已正式使用以下模式:<Registry endpoint and path>/<Container name>:<Version tag>
提供
velero-plugin-for-vsphere
容器映像时,将解析具有匹配的<Registry endpoint and path>
和<Version tag>
的backup-driver
和data-manager-for-plugin
的相应映像。例如,请考虑以下velero-plugin-for-vsphere
容器映像:abc.io:8989/x/y/.../z/velero-plugin-for-vsphere:vX.Y.Z
应当提取以下匹配的backup-driver
和data-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
- 对安装进行故障排除。
如果在解析
backup-driver
和data-manager-for-plugin
的匹配映像时出现任何问题或错误,安装将回退到 Docker Hub 中官方velerovsphereplugin
存储库中的相应映像。以下问题会触发回退机制:- 在用户输入的自定义
velero-plugin-for-vsphere
映像中使用意外的容器名称。例如,将使用
x/y/velero-velero-plugin-for-vsphere:v1.1.1
。 - Velero 部署名称自定义为除
velero
以外的任何其他内容。例如,如果在部署 Velero 之前将 Velero 部署名称更新为 Veleromanifests
文件中的velero-server
,则会触发该问题。velero-plugin-for-vsphere
中的现有映像解析机制只能识别具有固定名称velero
的 Velero 部署。
- 在用户输入的自定义
卸载 适用于 vSphere 的 Velero 插件
- 运行
velero-vsphere
CLI 以卸载 适用于 vSphere 的 Velero 插件。./velero-vsphere uninstall -n velero
- 验证名为
velero
的 vSphere Pod 是否已移除。kubectl get pods -n velero
如果看到容器“正在终止”,请等待其移除后再继续。
- 使用 vSphere Client,删除手动创建的名为 vSphere 命名空间 的
velero
。注: 在命名空间删除完成之前,不要继续执行下一步。可以使用 kubectl 验证velero
命名空间是否已移除(但不要使用 kubectl 移除velero
命名空间)。 - 使用 vSphere Client,从 主管 卸载 Velero vSphere Operator。
- 选择启用了工作负载管理的 vCenter 集群。
- 选择 。
- 选择 Velero vSphere Operator。
- 单击卸载。
此操作将从 主管 卸载 Velero vSphere Operator。运算符仍可在 页面重新安装。要完全移除该服务,请选择 。