你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本快速入门介绍如何使用 PowerShell 为 Azure Kubernetes 服务 (AKS) 群集配置保管备份。
适用于 AKS 的 Azure 备份是一种云原生的、企业就绪的、以应用程序为中心的备份服务,可让你快速配置 AKS 群集的备份。
开始之前
在为 AKS 群集配置保管备份之前,确保满足以下先决条件:
- 在为 AKS 备份启动备份或还原操作之前执行所有先决条件。
创建备份保管库
若要创建备份保管库,请运行以下命令:
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type GloballyRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
新创建的保管库的存储设置已设置为“全局冗余”,因此存储在保管库层中的备份将在 Azure 配对区域中可用。 保管库创建完成后,创建备份策略来保护 AKS 群集。
创建备份策略
使用命令 Get-AzDataProtectionPolicyTemplate
检索策略模板。
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
策略模板由触发条件(用于确定触发备份作业的因素)和生命周期(决定何时删除、复制或移动备份)组成。 在 AKS 备份中,触发器的默认值如下:计划的小时触发器为每 4 小时 (PT4H) 触发一次,每个备份的保留期为 7 天。 对于保管备份,请为保管库数据存储添加保留期。
New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
$aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
策略 JSON 具有所有必需的值后,继续从策略对象创建新策略。
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
准备 AKS 群集以进行备份
保管库和策略创建完成后,需要执行以下先决条件,以准备 AKS 群集进行备份:
创建存储帐户和 Blob 容器。
AKS 备份会将 Kubernetes 资源作为备份存储在 Blob 容器中。 要让 AKS 群集准备好进行备份,需要在群集中安装一个扩展。 此扩展需要使用存储帐户和 Blob 容器作为输入。
要创建新的存储帐户和容器,请参阅这些步骤。
安装备份扩展。
必须在 AKS 群集中安装备份扩展才能执行任何备份和还原操作。 备份扩展会在群集中创建命名空间
dataprotection-microsoft
,并使用同一命名空间部署其资源。 该扩展需要将存储帐户和 Blob 容器用作输入以进行安装。 了解扩展安装命令。在扩展安装过程中,会在 AKS 群集的节点池资源组中创建用户标识。 要支持扩展访问存储帐户,需要为此标识提供存储帐户参与者角色。 要分配所需的角色,请运行以下命令
启用受信任的访问
要让备份保管库与 AKS 群集连接,必须启用受信任的访问,因为这样会使得备份保管库直接看到 AKS 群集。 了解如何启用受信任的访问。
注意
对于备份扩展安装和受信任访问启用,命令仅在 Azure CLI 中可用。
配置备份
使用已创建的备份保管库和备份策略以及处于随时可备份状态的 AKS 群集,现在可以开始备份 AKS 群集。
关键实体
要保护的 AKS 群集
提取要保护的 AKS 群集的 Azure 资源管理器 ID。 它会充当群集的标识符。 在此示例中,我们在不同的订阅中使用资源组 aksrg 下名为 PSTestAKSCluster 的 AKS 群集:
$sourceClusterId = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
快照资源组
永久性卷快照将存储在订阅的资源组中。 建议创建专用资源组作为将由 Azure 备份服务使用的快照数据存储。
$snapshotrg = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/snapshotrg"
准备请求
备份的配置分两个步骤执行:
备份的配置分两个步骤执行:
准备备份配置,以定义要使用
New-AzDataProtectionBackupConfigurationClientObject
cmdlet 备份的群集资源。 在此示例中,我们将使用默认配置并执行完整的群集备份。$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
请通过
Initialize-AzDataProtectionBackupInstance
cmdlet 使用相关保管库、策略、AKS 群集、备份配置和快照资源组来准备相关请求。$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
分配所需的权限并进行验证
准备好请求后,首先需要通过运行以下命令来将所需角色分配给所涉及的资源:
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
分配权限后,请运行以下 cmdlet 测试所创建实例的就绪情况。
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
验证成功后,可以使用 New-AzDataProtectionBackupInstance
cmdlet 提交保护 AKS 群集的请求。
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
后续步骤
- 使用 Azure PowerShell 或 Azure CLI 还原 Azure Kubernetes 服务群集
- 管理 Azure Kubernetes 服务群集备份
- 关于 Azure Kubernetes 服务群集备份