在 主管集群.上安装 适用于 vSphere 的 Velero 插件 后,可以使用 适用于 vSphere 的 Velero 插件 备份和还原 vSphere Pod 上运行的工作负载。
概览
适用于 vSphere 的 Velero 插件 提供了备份和还原 vSphere with Tanzu 工作负载的解决方案。解决方案需要安装和配置多个组件。在 主管集群 上安装和配置 适用于 vSphere 的 Velero 插件 后,可以备份和还原 vSphere Pod。对于持久工作负载,适用于 vSphere 的 Velero 插件 可用于生成持久卷的快照。
必备条件
- 工作负载管理已启用 NSX-T Data Center 网络连接。请参见使用 NSX-T Data Center 网络连接的情况下启用工作负载管理
- 主管集群 为 1.21.1 或更高版本。
- 已创建并配置 vSphere 命名空间。
- 您必须是 vSphere 管理员角色的成员,或者具有以下 vSphere 特权:
- SupervisorServices.Manage
- Namespaces.Manage
- Namespaces.Configure
- NSX-T 网络连接用于支持部署 vSphere Pod
- 已部署 Data Manager 虚拟机
- Velero 运算符已启用并在
velero-vsphere-domain-cXX
命名空间中运行 - 配置了名为
velero
的命名空间 - 适用于 vSphere 的 Velero 插件 作为 vSphere Pod 在
velero
命名空间中运行
升级
这些说明假定运行的是 vSphere 7 U3。如果之前在 vSphere 7 U2 P3 环境中安装了 适用于 vSphere 的 Velero 插件,则在升级时,要将 Data Manager 虚拟机和 Velero vSphere Operator 迁移到新框架。将 Velero vSphere Operator 转换为新的 vSphere 服务格式。无需操作。
为流量备份和还原创建专用网络(可选)
- 标记 ESXi 主机以支持网络文件复制 (NFC)
- 使用 NSX-T Data Center 配置备份和还原网络
要将 vSphere 7.x ESXi 主机配置为支持专用网络块设备 (NBD) 传输,请在启用了工作负载管理的 vCenter Server 集群中的每个 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-T 网络的指导,请参见 为 vSphere with Tanzu 安装并配置 NSX-T Data Center。
创建与 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 Tanzu 中启用有状态服务。
或者,也可以在 Linux 虚拟机上手动安装 MinIO 服务器。有关说明,请参见在 Tanzu Kubernetes 集群上安装和配置独立 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。
- 选择配置了 主管集群 的计算资源,即 vCenter 集群。
- 查看虚拟机部署详细信息,然后单击下一步。
- 接受许可协议,然后单击下一步。
- 选择存储,然后单击下一步。
- 选择 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 操作者 作为 vSphere 服务。Velero vSphere 操作者 服务与 适用于 vSphere 的 Velero 插件 协同工作,支持备份和还原 Kubernetes 工作负载,包括生成持久卷快照。有关 vSphere 服务的详细信息,请参见使用 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-T 网络连接。
- 配置 Velero vSphere Operator 服务安装,如下所示:
- 从下拉列表中选择版本:1.1.0。
- 请勿指定存储库端点。
- 请勿输入用户名或密码。
- 单击下一步。
- 单击安装以完成服务的安装。
验证 主管集群 上的 Velero vSphere Operator 服务,然后启动 Data Manager 虚拟机。
- 从 vSphere Client 主菜单中,选择清单。
- 选择启用了工作负载管理的 vCenter 集群。
- 选择 。
- 确认看到 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
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。运算符仍可在 页面重新安装。要完全移除该服务,请选择 。