你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 备份管理 Azure Kubernetes 服务备份

本文介绍如何在订阅中注册资源提供程序,以便使用备份扩展和受信任访问。 此外,它还提供了 Azure CLI 命令来管理它们。

Azure 备份现在允许使用备份扩展(必须在群集中安装)备份 AKS 群集(群集资源和附加到群集的永久性卷)。 AKS 群集需要使用备份保管库启用受信任访问,以便保管库可以与备份扩展通信以执行备份和还原操作。

此外,它还有助于描述如何从 Azure 门户管理 Azure Kubernetes 服务群集的备份。

资源提供程序注册

安装备份扩展以及启动任何备份和还原操作都需要资源提供者注册。 作为订阅所有者,您可以进行此注册。 通常,资源提供程序已在 Azure 订阅中注册。 如果没有,则注册 Microsoft.KubernetesConfiguration 资源提供程序。

注册完成后,可以在订阅下的所有群集上执行备份和还原作。

注册备份扩展

若要安装备份扩展,需要在订阅上注册 Microsoft.KubernetesConfiguration 资源提供程序。 要执行注册,请运行以下命令:

az provider register --namespace Microsoft.KubernetesConfiguration

注册最多可能需要 10 分钟。 若要监视注册过程,请运行以下命令:

az provider show --name Microsoft.KubernetesConfiguration --output table

本部分提供一组 Azure CLI 命令,用于对备份扩展执行创建、更新或删除操作。 可以使用 update 命令更改基础备份扩展 Pod 的计算限制。

安装备份扩展

若要安装备份扩展,请执行以下命令:

az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name <aksclustername> --resource-group <aksclusterrg> --release-train stable --configuration-settings blobContainer=<containername> storageAccount=<storageaccountname> storageAccountResourceGroup=<storageaccountrg> storageAccountSubscriptionId=<subscriptionid>

查看备份扩展安装状态

若要查看备份扩展安装进度,请使用以下命令:

az k8s-extension show --name azure-aks-backup --cluster-type managedClusters --cluster-name <aksclustername> --resource-group <aksclusterrg>

更新备份扩展中的资源

若要更新备份扩展中的 blob 容器、CPU 和内存,请使用以下命令:

az k8s-extension update --name azure-aks-backup --cluster-type managedClusters --cluster-name <aksclustername> --resource-group <aksclusterrg> --release-train stable --configuration-settings [blobContainer=<containername> storageAccount=<storageaccountname> storageAccountResourceGroup=<storageaccountrg> storageAccountSubscriptionId=<subscriptionid>] [cpuLimit=1] [memoryLimit=1Gi]

[]: denotes the 3 different sub-groups of updates possible (discard the brackets while using the command)

删除备份扩展安装操作

若要停止备份扩展安装操作,请使用以下命令:

az k8s-extension delete --name azure-aks-backup --cluster-type managedClusters --cluster-name <aksclustername> --resource-group <aksclusterrg>

授予对存储帐户的权限

备份扩展在群集的托管资源组中创建用户分配的托管标识。 需要通过运行以下命令为此标识提供对存储帐户的存储 Blob 数据参与者权限:

az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name <aksclustername> --resource-group <aksclusterrg> --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/<subscriptionid>/resourceGroups/<storageaccountrg>/providers/Microsoft.Storage/storageAccounts/<storageaccountname> 

若要在备份保管库和 AKS 群集之间启用受信任的访问,请使用以下 Azure CLI 命令:

az aks trustedaccess rolebinding create \
--resource-group <aksclusterrg> \
--cluster-name <aksclustername> \
--name <randomRoleBindingName> \
--source-resource-id $(az dataprotection backup-vault show --resource-group <vaultrg> --vault <VaultName> --query id -o tsv) \
--roles Microsoft.DataProtection/backupVaults/backup-operator   

详细了解与受信任访问相关的其他命令

使用 Azure 门户管理操作

本部分介绍了 Azure 备份支持的多种管理操作,通过这些操作可轻松管理 Azure Kubernetes 服务群集备份。

调整 CPU 和内存以适配 AKS 的 Azure 备份

AKS 的 Azure 备份依赖于在 AKS 集群中部署的 Pod,这些 Pod 是命名空间 dataprotection-microsoft 下备份扩展的一部分。 若要执行备份和还原作,这些 Pod 具有特定的 CPU 和内存要求。

默认资源预留

       1. Memory: requests - 256Mi, limits - 1280Mi
       2. CPU: requests - 500m, limits - 1000m

但是,如果群集中的资源数超过 1000,扩展 Pod dataprotection-microsoft-kubernetes-agent 可能需要超出默认预留的额外 CPU 和内存。 如果所需资源超出分配的限制,你可能会在还原操作期间遇到因 OOMKilled(内存不足)错误而导致的 UserErrorBackupPluginPodRestartedDuringBackup 或 UserErrorBackupPluginPodRestartedDuringRestore 错误。

通过增加 CPU 和内存来解决 OOMKilled 错误

若要确保备份和还原作成功,请按照以下步骤手动更新扩展 Pod 的资源设置:

  1. 在 Azure 门户中打开 AKS 群集。

    屏幕截图显示了 Azure 门户中的 AKS 群集。

  2. 导航到左侧窗格中“设置”下的“扩展 + 应用程序”。

    屏幕截图显示如何选择“扩展 + 应用程序”。

  3. 点击标题为“azure-aks-backup”的扩展程序。

    屏幕截图显示如何打开备份扩展设置。

  4. 向下滚动,在配置设置下添加新值,然后单击“保存”。

    resources.limits.memory : 4400Mi

    屏幕截图显示如何在配置设置下添加值。

注意

如果部署扩展 Pod 的节点没有所需的 CPU 或内存,并且你只更新了资源限制,则 Pod 可能会反复被终止。 若要解决此问题,请使用 resources.requests.cpuresources.requests.memory 更新配置设置。 这可确保 Pod 安排在满足所请求资源要求的节点上。

验证更改

应用更改后,请等待计划备份运行或启动按需备份。 如果仍然遇到 OOMKilled 失败,请重复上述步骤并逐步增加内存限制,如果问题仍然存在,还请增加 resources.limits.cpu 参数。

监视备份操作

Azure 备份服务为计划的备份创建作业,或者触发按需备份操作以便进行跟踪。 查看备份作业状态:

  1. 转到“Azure 业务连续性中心”,然后选择“保护清单”下的“受保护的项”。

    “受保护的项”边栏选项卡显示跨订阅创建的所有备份实例。 使用筛选器访问要查看的备份实例。 选择受保护的项并将其打开。

    屏幕截图显示了作业仪表板。

  2. 现在,选择“关联项”,打开备份实例的仪表板。 可在此处查看过去七天的备份作业。

  3. 如要查看备份操作的状态,请选择“查看全部”,显示此备份实例的当前作业和已完成的作业。

    屏幕截图显示了如何选择“全部查看”选项。

  4. 查看备份和还原作业及其状态的列表。 从作业列表中选择一个作业,查看作业详细信息。

    屏幕截图显示了如何选择作业来查看详细信息。

监视还原操作

触发还原操作后,备份服务会创建一个作业用于跟踪。 Azure 备份在门户中显示有关作业的通知。 若要查看还原作业进度,请执行以下操作:

  1. 转到“Azure 业务连续性中心”,然后选择“保护清单”下的“受保护的项”。

    “受保护的项”边栏选项卡显示跨订阅创建的所有备份实例。 使用筛选器访问要查看的备份实例。 选择受保护的项并将其打开。

    屏幕截图显示了作业仪表板。

  2. 现在,选择“关联项”,打开备份实例的仪表板。 可在此处查看过去七天的备份作业。

  3. 如要查看还原操作的状态,请选择“查看全部”,显示此备份实例的当前作业和已完成的作业。

    屏幕截图显示了如何选择“全部查看”。

  4. 查看备份和还原作业及其状态的列表。 从作业列表中选择一个作业,查看作业详细信息。

    屏幕截图显示了作业列表。

监视“已完成,但出现警告”状态的备份和还原作业

执行计划备份或按需备份或还原操作时,将创建与操作对应的作业来跟踪其进度。 如果失败,这些作业让你可以识别错误代码并修复问题,以便稍后运行成功的作业。

对于 AKS 备份,备份和还原作业可以显示状态“已完成,但出现警告”。 当备份和还原操作未完全成功时,会出现此状态,原因是用户定义配置或工作负荷的内部状态出现问题。

屏幕截图:备份和还原作业已完成并显示警告。

例如,如果 AKS 群集的备份作业完成状态为 “已完成并显示警告”,则会创建还原点,但根据备份配置,群集中没有所有资源。 该作业将显示警告详细信息,提供在操作期间受到影响的问题和资源。

若要查看这些警告,请选择“警告详细信息”旁边的“查看详细信息”。

屏幕截图:作业预热详细信息。

了解如何识别和解决错误

更改策略

你可以通过备份实例更改关联的策略。

  1. 选择“备份实例”-“更改策略”。

    屏幕截图,显示用于更改策略的选项。

  2. 选择要应用于数据库的新策略。

    屏幕截图,显示用于重新分配策略的选项。

注意

更改分配给备份实例的备份策略不会影响现有恢复点及其保留期。 更新后的保留设置仅适用于策略更改后创建的新恢复点。

停止保护

可通过三种方式停止保护 Azure 磁盘:

  • 停止保护并保留数据(永久保留):此选项可帮助你阻止将来的所有备份作业保护你的群集。 但是,Azure 备份服务会永久保留备份的恢复点。 你需要付费才能将恢复点保留在保管库中(有关详细信息,请参阅 Azure 备份定价)。 你可以根据需要还原磁盘。 若要恢复群集保护,请使用“恢复备份”选项

  • 停止保护并保留数据(按策略保留):此选项可帮助你阻止将来的所有备份作业保护你的群集。 恢复点将按策略保留,并可根据 Azure 备份定价收费。 但是,最新的恢复点将永久保留。

  • 停止保护并删除数据:此选项可帮助你阻止将来的所有备份作业保护你的群集,并删除所有恢复点。 你将无法还原磁盘,也无法使用“恢复备份”选项。

注意

即使 AKS 备份停止或备份失败,最后一个还原点仍会在定义的保留期之外保留,确保至少有一个还原点可用。

停止保护并保留数据

  1. 转到“Azure 业务连续性中心”,然后选择“保护清单”下的“受保护的项”。

    “受保护的项”边栏选项卡显示跨订阅创建的所有备份实例。 使用筛选器访问要查看的备份实例。 选择受保护的项并将其打开。

    屏幕截图显示了作业仪表板。

  2. 现在,选择“关联项”,打开备份实例的仪表板。

  3. 选择“停止备份”。

    显示选择要停止的 Azure 磁盘备份实例的屏幕截图。

  4. 选择以下数据保留选项之一:

    1. 永久保留
    2. 按策略保留

    显示用于停止磁盘备份实例保护的选项的屏幕截图。

    还可以从下拉列表中选择停止备份的原因。

  5. 选择“停止备份”。

  6. 选择“确认”以停止数据保护。

    显示要选择的磁盘备份实例保留选项的屏幕截图。

停止保护并删除数据

  1. 转到“Azure 业务连续性中心”,然后选择“保护清单”下的“受保护的项”。

    “受保护的项”边栏选项卡显示跨订阅创建的所有备份实例。 使用筛选器访问要查看的备份实例。 选择受保护的项并将其打开。

    屏幕截图显示了作业仪表板。

  2. 现在,选择“关联项”,打开备份实例的仪表板。

  3. 选择“停止备份”。

  4. 选择“删除备份数据”。

    提供备份实例的名称、删除原因和任何其他注释。

    确认停止磁盘备份的屏幕截图。

  5. 选择“停止备份”。

  6. 选择“确认”以停止数据保护。

    显示要选择的磁盘备份实例保留选项的屏幕截图。

恢复保护

如果选择了“停止保护并保留数据”选项,则可以恢复群集保护

注意

恢复保护备份实例时,现有备份策略将开始仅应用于新的恢复点。 根据创建时生效的备份策略定义的原始保留期,已过期的恢复点将被清理。

请使用以下步骤:

  1. 转到“Azure 业务连续性中心”,然后选择“保护清单”下的“受保护的项”。

    “受保护的项”边栏选项卡显示跨订阅创建的所有备份实例。 使用筛选器访问要查看的备份实例。 选择受保护的项并将其打开。

    屏幕截图显示了作业仪表板。

  2. 现在,选择“关联项”,打开备份实例的仪表板。

  3. 选择“恢复备份”。

    显示用于恢复磁盘保护的选项的屏幕截图。

  4. 选择“恢复备份”。

    显示用于恢复磁盘备份的选项的屏幕截图。

删除备份实例

如果你选择停止所有计划的备份作业并删除所有现有备份,请使用“删除备份实例”。

若要删除 AKS 群集备份实例,请按照以下步骤进行操作:

  1. 在备份实例屏幕上选择“删除”

    显示备份实例删除过程的屏幕截图。

  2. 提供确认详细信息,包括备份实例的名称、删除实例的原因和其他备注。

    显示确认删除备份实例的屏幕截图。

  3. 选择“删除”进行确认并继续删除备份实例

后续步骤