Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
本教程介绍如何为使用基于 Azure 文件的永久性卷的 Azure Kubernetes 服务 (AKS) 群集配置备份和还原。 AKS 的 Azure 备份现在支持为应用程序使用 Azure 文件共享(SMB 协议)卷进行备份,同时也支持基于 Azure 磁盘的卷和 Kubernetes 资源的备份。
Azure 文件卷的快照已备份,并与文件共享一起存储在同一存储帐户中。 这为使用文件共享的有状态应用程序提供快速备份和还原操作。
本教程中,您将学习如何:
- 在 AKS 中设置 Azure 文件备份的先决条件
- 使用 Azure 文件卷为 AKS 配置新的备份实例
- 创建和验证按需备份
- 修改现有备份实例以包含 Azure 文件卷
- 将 Azure 文件卷还原到原始群集或备用群集
- 使用“资源修饰符 ConfigMap”来设置自定义存储类
先决条件
在使用 Azure 文件卷为 AKS 群集配置备份之前,请确保满足以下先决条件:
- AKS 群集所在的同一区域中的 Azure 备份保管库 。
- 具有 CSI 驱动程序版本 1.32 或更高版本的 AKS 群集。
- 使用 SMB 协议通过 Azure Kubernetes CSI 驱动程序(
file.csi.azure.com)预配的基于 Azure 文件的永久性卷。 - 具有可公开访问的网络终结点的文件共享(网络终结点类型设置为 “全部”)。
- 配置了回收策略为 “保留” 的持久卷,以确保即使删除 PVC,快照仍然可用。
- 在 AKS 群集中安装的备份扩展。
重要
- 不支持具有专用网络终结点的 Azure 文件卷。
- 仅支持包含 25,000 个文件的文件共享或更少。 具有更多文件的文件共享可能会遇到还原失败。
- 目前不支持使用 NFS 协议的 Azure 文件。
- 不支持树中卷(预配器:
kubernetes.io/azure-file);仅支持基于 CSI 驱动程序的卷。
设置回收策略为保留
若要确保即使删除 PVC,Azure 文件存储快照仍可用,请将回收策略设置为 保留:
kubectl patch pv <your-pv-name> --patch '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
将 <your-pv-name> 替换为您的永久性卷的名称。 可以通过运行以下方法找到它:
kubectl get pv
配置新的备份实例
本部分介绍如何使用 Azure 文件卷为 AKS 群集配置新的备份实例。
安装备份扩展程序
如果尚未安装备份扩展,请执行以下步骤:
在 Azure 门户中,转到 AKS 群集。
在资源菜单中,选择“设置”下的“备份”。
选择 “安装扩展”。
提供存储帐户和 Blob 容器。 此容器存储 Kubernetes 资源 YAML 和备份日志。
选择“ 创建 ”并等待扩展安装完成。
注释
如果您已经安装了备份扩展,请确认其版本是否为 v0.0.03004.544 或更高。 如果需要,请启用自动升级以更新到最新版本。
使用 Azure 文件配置 AKS 群集的备份
在 Azure 门户中,转到 AKS 群集。
在资源菜单中,选择“ 备份”,然后选择“ 配置备份”。
选择 AKS 群集所在的同一区域中的备份保管库。
通过选择“ 授予权限”在备份保管库和 AKS 群集之间授予受信任的访问权限。 此外,将所需的角色分配给备份库。 完成后,选择下一步。
注释
确保备份保管库与 AKS 群集位于同一区域。
在 “备份策略 ”选项卡上,创建新的备份策略或选择现有备份策略。
重要
- 对于基于 Azure 文件的卷,备份保留期限制为最多 30 天。
- Azure 文件存储卷不支持保管库层备份。 确保备份策略仅包括操作层保留规则。
- 如果需要备份具有不同备份目标(保管库和快照)的 Azure 磁盘和 Azure 文件卷,请为每个资源类型创建一个单独的备份实例。
在 “数据源 ”选项卡上,选择“ 添加/编辑” 以定义备份实例配置。
在 “选择要备份的资源 ”窗格中:
- 备份配置:定义要备份的群集资源。
- 永久性卷:选择 Azure 文件 以备份基于 Azure 文件的卷。
- 机密:如果使用 Kubernetes 机密来存储存储帐户密钥(还原操作需要),请启用 备份机密 。
对快照资源组,请选择资源组以存储 Azure 磁盘快照(即使仅备份 Azure 文件卷,这也是必要的)。 然后,选择“验证”。
如果验证因权限缺失而失败,请选择“ 分配缺少的角色 ”以授予所需的访问权限。
验证成功后,选择“ 下一步”,然后选择“ 配置备份”。
创建备份实例,并会根据配置的策略开始备份 AKS 群集。
创建按需备份
若要创建即时备份,请执行以下操作:
打开创建的备份实例。
选择页面顶部的“ 立即备份 ”。
跟踪 备份作业中的备份进度。
备份完成后,验证 Azure 文件存储快照:
- 转到包含文件共享的存储帐户。
- 访问您的持久卷使用的文件共享。
- 选择 “快照 ”以查看 Azure 备份创建的备份快照。
验证备份配置
验证 Azure 存储卷是否已备份:
在 Azure 门户中,转到备份保管库。
选择备份实例在管理下。
查找 AKS 群集备份实例,并验证其状态显示为“正在备份”或“就绪”。
选择 “备份作业 ”以查看已完成的和正在进行的备份操作。
修改现有备份实例
本部分介绍如何修改现有备份实例并开始备份基于 Azure 文件的永久性卷。
修改保护配置
在 Azure 门户中,转到备份保管库。
选择备份实例在管理下。
找到 AKS 群集备份实例,打开它并单击顶部 的“编辑备份实例 ”。
在新屏幕上,选项可用于修改备份策略、备份保管库使用的托管标识和备份实例配置。 在修改备份实例部分中单击选择
在右侧窗格中,要包含要备份的文件卷,请打开下拉列表 选择卷类型,然后选择 Azure SMB 文件共享的复选框。 此外,选中复选框 “包括机密”。 可以使用此窗格更新任何其他现有备份配置,包括标签。 然后单击 “选择”。
更新备份配置后,单击“ 验证 ”以确保满足使用 Azure 文件的所有先决条件。 如果备份保管库标识缺少所需的角色,则会出现角色分配错误。 如果对相关资源拥有必要的权限,可以通过单击“ 授予权限”来解决此问题。
单击“ 应用” 以完成备份实例配置的修改。
还原 Azure 文件卷
Azure Backup for AKS 允许您从任何恢复点还原基于 Azure Files 的持久卷。 可以还原到原始群集,也可以还原到同一订阅和区域中的备用群集。
重要
在执行还原之前,请确保持久卷将回收策略设置为 Retain。 这可确保即使删除 PVC,快照也保持安全。
还原到原始群集
如果删除了应用程序命名空间、基础 PVC 或文件共享中的文件,并且需要还原它们,但基础快照仍然存在,则此方案非常有用。
在开始还原之前,如果 PVC 仍存在于群集中,请将其删除:
kubectl delete pvc <pvc-name> -n <namespace>在 Azure 门户中,转到备份保管库。
在“管理”下选择“备份实例”,然后选择 AKS 群集备份实例。
选择页面顶部的 “还原 ”。
在 “选择恢复点 ”页上,根据创建时间选择要从中还原的恢复点。 默认选择最新的恢复点。 选择“下一步”。
在 “还原参数 ”页上:
- 目标群集:选择原始 AKS 群集。
- 还原配置:定义要还原的资源。 可以选择特定的命名空间或还原所有备份的资源。
- 冲突处理:选择 “跳过” 以跳过群集中已存在的资源(默认选项)。
选择 “验证 ”以检查所有必需的权限是否已到位。
如果看到缺少角色的验证错误,请选择“ 分配缺少的角色 ”以授予所需的权限。 完成后,选择“ 重新验证”。
注释
目标 AKS 群集必须在托管文件共享的存储帐户上具有 存储文件数据特权参与者 角色才能执行还原操作。
验证成功后,选择“ 下一步”,然后选择“ 还原”。
在备份实例下的 还原作业 中跟踪还原进度。
还原到备用群集
可以将备份还原到同一订阅和区域中的其他 AKS 群集。
按照还原到原始群集相同的步骤操作,但在“还原参数”页上选择其他目标群集。
请确保目标群集:
- 已安装备份扩展。
- 已在备份保管库中启用受信任的访问。
- 在存储帐户上分配了 存储文件数据特权参与者 角色(对于静态预配卷,必须手动分配此角色)。
如上一部分所述完成验证和还原过程。
使用自定义存储类还原
如果要还原到备用群集并更改永久性卷声明的存储类,可以使用资源修饰符 ConfigMap。
为资源修饰符 ConfigMap 创建 YAML 文件:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims patches: - operation: replace path: "/spec/storageClassName" value: "azurefile-csi-premium"将
azurefile-csi-premium替换为您所需的存储类名称。将 ConfigMap 部署到目标群集:
kubectl create cm <configmap-name> --from-file=<path-to-yaml-file> -n <namespace>例如:
kubectl create cm resource-modifier-configmap --from-file=resource-modifier.yaml -n dataprotection-microsoft在还原过程中,在还原配置部分中,在资源修改器下引用此 ConfigMap。
还原后的 PVC 的存储类别将被替换为指定的值。
静态预配卷的注意事项
如果要还原静态预配的 Azure 文件卷(手动创建,而不是由群集动态创建):
确保已备份用于访问文件共享的 Kubernetes 机密。 在备份配置中启用 备份机密 。
将 存储文件数据特权参与者 角色手动分配给文件共享所在的存储帐户上的目标 AKS 群集,或将还原。
在尝试还原之前,请确保存储帐户中存在文件共享,否则还原操作将失败。
验证还原是否已完成
还原操作完成后:
验证是否已将资源还原到目标群集:
kubectl get pods -n <namespace> kubectl get pvc -n <namespace> kubectl get pv检查应用程序是否可以通过连接到 Pod 并验证装载的文件共享来访问还原的数据:
kubectl exec -it <pod-name> -n <namespace> -- ls /mnt/azure验证文件共享快照在存储帐户中是否仍可用于将来的还原。
注释
还原过程利用 AzCopy 将数据从快照复制到目标 Azure 文件卷。 由于这涉及到完整的数据复制操作,因此可能需要一些时间,具体取决于数据卷的大小和吞吐量。 因此,还原的卷可能在数据复制完全完成之前可用,您可能会暂时看到卷已挂载,但直到 AzCopy 操作完成之前,预期的数据不会出现。
清理资源
如果为不再需要的本教程创建了资源,则可以清理它们:
- 如果不再需要保留备份,请从备份保管库中删除备份实例。
- 如果不继续定期备份,请停止对 AKS 群集的保护。
- 如果不再需要备份功能,请从 AKS 群集中删除备份扩展。
后续步骤
了解如何使用 Azure 文件卷为 AKS 群集配置备份和还原后,请浏览: