使用 Azure PowerShell 备份 Azure Kubernetes 服务 (AKS) 您所在的位置:网站首页 azure资源组 使用 Azure PowerShell 备份 Azure Kubernetes 服务 (AKS)

使用 Azure PowerShell 备份 Azure Kubernetes 服务 (AKS)

2023-05-10 19:12| 来源: 网络整理| 查看: 265

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

使用 PowerShell 备份 Azure Kubernetes 服务(预览) 项目 05/06/2023

本文介绍如何使用 Azure PowerShell 配置和备份 Azure Kubernetes 服务 (AKS)。

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

开始之前

目前,AKS 备份仅支持基于 Azure 磁盘的永久性卷(由 CSI 驱动程序启用)。 备份仅存储(租户中的)操作数据存储中,不会移动到保管库。 备份保管库和 AKS 群集应位于同一区域。

AKS 备份使用 Blob 容器和资源组来存储备份。 Blob 容器中存储了 AKS 群集资源,而永久性卷快照存储在资源组中。 AKS 群集和存储位置必须位于同一区域。 了解如何创建 Blob 容器。

目前,AKS 备份支持一天备份一次。 它还支持每天进行更频繁的备份(每 4、8 和 12 小时备份一次)。 此解决方案使你可以将数据保留最多 360 天以用于还原。 了解如何创建备份策略。

必须安装备份扩展才能在 AKS 群集上配置备份和还原操作。 详细了解备份扩展。

在启动备份配置和还原操作之前,请确保在 Microsoft.ContainerService 上为订阅注册了 Microsoft.KubernetesConfiguration、Microsoft.DataProtection 和 TrustedAccessPreview 功能标记、

在启动 AKS 备份的备份或还原操作之前,请确保执行所有先决条件。

若要详细了解支持的方案、限制和可用性,请参阅支持矩阵。

创建备份保管库

备份保管库是 Azure 中的管理实体,可存储 Azure 备份支持的各种新型工作负载(例如 Azure Database for PostgreSQL 服务器和 Azure 磁盘)的备份数据。 备份保管库便于组织备份数据,同时最大程度地降低了管理开销。 它们基于 Azure 资源管理器模型,可提供增强功能来帮助保护备份数据。 在创建备份保管库之前,请选择保管库中数据的存储冗余,然后使用该存储冗余和位置创建备份保管库。

在这里,我们将在资源组“testBkpVaultRG”下的“美国西部”区域中创建备份保管库“TestBkpVault”。 使用 New-AzDataProtectionBackupVault cmdlet 创建备份保管库。 详细了解创建备份保管库。

注意

尽管所选保管库可能具有全局冗余设置,但 AKS 的备份目前仅支持操作层。 所有备份存储在 AKS 群集所在同一区域内的订阅中,并且不会复制到备份保管库存储。

要定义备份保管库的存储设置,请运行以下 cmdlet:

注意

创建保管库时仅支持本地冗余和操作数据存储。

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore

要根据前面提到的详细信息创建备份保管库,请运行以下 cmdlet:

New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault

保管库创建完成后,创建备份策略来保护 AKS 群集。

创建备份策略

要了解用于 AKS 备份的备份策略内部组件,可使用 cmdlet Get-AzDataProtectionPolicyTemplate 检索策略模板。 此命令返回给定数据源类型的默认策略模板。 使用此策略模板创建新策略。

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService

策略模板由触发条件(用于确定触发备份作业的因素)和生命周期(决定何时删除、复制或移动备份)组成。 在 AKS 备份中,触发器的默认值如下:按小时计算的触发计划为每 4 小时 (PT4H),每个备份保留期为 365 天。

$policyDefn.PolicyRule[0]. Trigger | fl ObjectType: ScheduleBasedTriggerContext ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H} TaggingCriterion: {Default} $policyDefn.PolicyRule[1]. Lifecycle | fl DeleteAfterDuration: P7D DeleteAfterObjectType: AbsoluteDeleteOption SourceDataStoreObjectType : DataStoreInfoBase SourceDataStoreType: OperationalStore TargetDataStoreCopySetting:

AKS 备份每天提供多个备份。 如果需要提高备份频率,则备份会在一天中平均分布,其方法是选择“小时备份频率”,以便能够按每 4、6、8 或 12 小时的间隔进行备份。 备份是根据所选的时间间隔安排的。 例如,如果选择“每 4 小时”备份一次,则会按大约每 4 小时的间隔执行备份。

如果每日备份一次即可满足需求,则选择“每日备份频率”。 在每日备份频率中,可以指定应进行备份的每日备份时间。

重要

每日备份时间表示备份开始时间,而不是备份完成时间。 完成备份操作所需的时间取决于各种因素,包括持久性卷的数量和大小以及连续备份的流失率。

如果要编辑小时频率或保留期,可使用 Edit-AzDataProtectionPolicyTriggerClientObject 和/或 Edit-AzDataProtectionPolicyRetentionRuleClientObject cmdlet。 策略对象获取所有所需值后,请使用 New-AzDataProtectionBackupPolicy cmdlet 根据策略对象创建新策略。

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy" 准备 AKS 群集以进行备份

保管库和策略创建完成后,需要执行以下先决条件,以准备 AKS 群集进行备份:

创建存储帐户和 Blob 容器

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

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

注意

存储帐户和 AKS 群集应位于同一区域和订阅中。 Blob 容器不应包含以前创建的任何文件系统(由 AKS 备份创建的除外)。 如果源或目标 AKS 群集位于专用虚拟网络中,则需要创建专用终结点以将存储帐户与 AKS 群集连接。

安装备份扩展

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

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

启用受信任的访问

要支持备份保管库与 AKS 群集连接,必须启用受信任的访问,因为它允许备份保管库直接看到 AKS 群集。 了解 [如何启用受信任访问]](azure-kubernetes-service-cluster-manage-backups.md#trusted-access-related-operations)。

注意

对于备份扩展安装和受信任访问启用,命令仅在 Azure CLI 中可用。

配置备份

使用已创建的备份保管库和备份策略以及处于随时可备份状态的 AKS 群集,现在可以开始备份 AKS 群集。

关键实体

要保护的 AKS 群集

提取要保护的 AKS 群集的 Azure 资源管理器 ID。 它会充当群集的标识符。 在此示例中,我们在不同的订阅中使用资源组 aksrg 下名为 PSTestAKSCluster 的 AKS 群集:

$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "

快照资源组

永久性卷快照将存储在订阅的资源组中。 建议创建专用资源组作为将由 Azure 备份服务使用的快照数据存储。 使用专用资源组,可以限制对资源组的访问权限,确保备份数据安全并简化备份数据管理。 将资源组的 Azure 资源管理器 ID 保存到要存储永久性卷快照的位置。

$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg" 准备请求

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

准备备份配置,以定义要使用 New-AzDataProtectionBackupConfigurationClientObject cmdlet 备份的群集资源。 以下示例将配置为当前命名空间下的所有群集资源,而将来的命名空间将使用标签 key-value pair x=y 进行备份。 此外,还将备份所有群集范围内的资源和永久性卷。

$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 分配所需的权限并进行验证

请求就绪后,需要通过 Azure 基于角色的访问控制 (Azure RBAC) 向用户分配对保管库(由保管库托管系统标识表示)和 AKS 群集的所需权限。 可以使用 Set-AzDataProtectionMSIPermission cmdlet 执行此操作。 备份保管库使用托管标识来访问其他 Azure 资源。 要配置 AKS 群集的备份,备份保管库的托管标识需要对创建和管理快照的 AKS 群集和资源组具有一组权限。 此外,AKS 群集需要具有对快照资源组的权限。

备份当前仅支持系统分配的托管标识(备份保管库和 AKS 群集)。 系统分配的托管标识限制为每个资源一个,并绑定到此资源的生命周期。 可以使用 Azure RBAC 向托管标识授予权限。 托管标识是一种只能用于 Azure 资源的特殊类型的服务主体。 详细了解托管标识。

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 运行按需备份

要提取想要触发备份的相关备份实例,请运行 Get-AzDataProtectionBackupInstance cmdlet。

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"

可在触发备份时指定保留规则。 要查看策略中的保留规则,请导航到策略对象以获取保留规则。 以下示例中显示了名为默认的规则,我们将使用该规则进行按需备份。

$policyDefn.PolicyRule | fl BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams BackupParameterObjectType: AzureBackupParams DataStoreObjectType: DataStoreInfoBase DataStoreType: OperationalStore Name: BackupHourly ObjectType: AzureBackupRule Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext TriggerObjectType: ScheduleBasedTriggerContext IsDefault: True Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle} Name: Default ObjectType: AzureRetentionRule

现在,使用 Backup-AzDataProtectionBackupInstanceAdhoc cmdlet 触发按需备份。

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default" 跟踪作业

使用 Get-AzDataProtectionJob cmdlet 跟踪所有作业。 你可以列出所有作业并提取特定作业详细信息。 还可使用 Az.ResourceGraph cmdlet 跨所有备份保管库跟踪所有作业。 使用 Search-AzDataProtectionJobInAzGraph cmdlet 从任何备份保管库获取相关作业详细信息。

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup 后续步骤 使用 PowerShell 还原 Azure Kubernetes 服务群集(预览) 管理 Azure Kubernetes 服务群集备份(预览版) 关于 Azure Kubernetes 服务群集备份(预览版)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有