本文介绍如何在订阅中注册资源提供程序,以便使用备份扩展和受信任访问。 此外,它还提供了 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 的资源设置:
在 Azure 门户中打开 AKS 群集。
导航到左侧窗格中“设置”下的“扩展 + 应用程序”。
点击标题为“azure-aks-backup”的扩展程序。
向下滚动,在配置设置下添加新值,然后单击“保存”。
resources.limits.memory : 4400Mi
注释
如果部署扩展 Pod 的节点没有所需的 CPU 或内存,并且你只更新了资源限制,则 Pod 可能会反复被终止。 若要解决此问题,请使用 resources.requests.cpu
和 resources.requests.memory
更新配置设置。 这可确保 Pod 安排在满足所请求资源要求的节点上。
验证更改
应用更改后,请等待计划备份运行或启动按需备份。 如果仍然遇到 OOMKilled 失败,请重复上述步骤并逐步增加内存限制,如果问题仍然存在,还请增加 resources.limits.cpu
参数。
监视处于“已完成但出现警告”状态的备份和还原作业
执行计划备份或按需备份或还原操作时,将创建与操作对应的作业来跟踪其进度。 如果失败,这些作业让你可以识别错误代码并修复问题,以便稍后运行成功的作业。
对于 AKS 备份,备份和还原作业可以显示状态“已完成,但出现警告”。 当备份和还原操作未完全成功时,会出现此状态,原因是用户定义配置或工作负荷的内部状态出现问题。
例如,如果 AKS 群集的备份作业完成状态为 “已完成并显示警告”,则会创建还原点,但根据备份配置,群集中没有所有资源。 该作业将显示警告详细信息,提供在操作期间受到影响的问题和资源。
若要查看这些警告,请选择“警告详细信息”旁边的“查看详细信息”。
了解如何识别和解决错误。
更改策略
你可以通过备份实例更改关联的策略。
选择“备份实例”-“更改策略”。
选择要应用于数据库的新策略。
注释
更改分配给备份实例的备份策略不会影响现有恢复点及其保留期。 更新后的保留设置仅适用于策略更改后创建的新恢复点。
后续步骤
- 使用 [Azure 门户]](azure-kubernetes-service-cluster-backup.md)、Azure PowerShell 备份 Azure Kubernetes 服务群集
- 还原 Azure Kubernetes 服务群集
- 备份 Azure Kubernetes 服务群集的支持方案