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

快速入门:使用 PowerShell 为 Azure Kubernetes 服务 (AKS) 群集配置保管备份

本快速入门介绍如何使用 PowerShell 为 Azure Kubernetes 服务 (AKS) 群集配置保管备份。

适用于 AKS 的 Azure 备份是一种云原生的、企业就绪的、以应用程序为中心的备份服务,可让你快速配置 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 群集进行备份:

  1. 创建存储帐户和 Blob 容器

    AKS 备份会将 Kubernetes 资源作为备份存储在 Blob 容器中。 要让 AKS 群集准备好进行备份,需要在群集中安装一个扩展。 此扩展需要使用存储帐户和 Blob 容器作为输入。

    要创建新的存储帐户和容器,请参阅这些步骤

  2. 安装备份扩展

    必须在 AKS 群集中安装备份扩展才能执行任何备份和还原操作。 备份扩展会在群集中创建命名空间 dataprotection-microsoft,并使用同一命名空间部署其资源。 该扩展需要将存储帐户和 Blob 容器用作输入以进行安装。 了解扩展安装命令

    在扩展安装过程中,会在 AKS 群集的节点池资源组中创建用户标识。 要支持扩展访问存储帐户,需要为此标识提供存储帐户参与者角色。 要分配所需的角色,请运行以下命令

  3. 启用受信任的访问

    要让备份保管库与 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"
    

准备请求

备份的配置分两个步骤执行:

备份的配置分两个步骤执行:

  1. 准备备份配置,以定义要使用 New-AzDataProtectionBackupConfigurationClientObject cmdlet 备份的群集资源。 在此示例中,我们将使用默认配置并执行完整的群集备份。

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. 请通过 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

后续步骤