Zálohování služby Azure Kubernetes Service pomocí PowerShellu
Tento článek popisuje, jak nakonfigurovat a zálohovat službu Azure Kubernetes Service (AKS) pomocí Azure PowerShellu.
Azure Backup teď umožňuje zálohovat clustery AKS (prostředky clusteru a trvalé svazky připojené ke clusteru) pomocí rozšíření zálohování, které se musí nainstalovat do clusteru. Trezor služby Backup komunikuje s clusterem prostřednictvím tohoto rozšíření zálohování za účelem provádění operací zálohování a obnovení.
Než začnete
Než začnete zálohovat cluster AKS, ujistěte se, že zkontrolujete následující požadavky:
Zálohování AKS v současné době podporuje pouze trvalé svazky založené na disku Azure (povolené ovladačem CSI). Zálohy se ukládají jenom v provozním úložišti dat (ve vašem tenantovi) a nepřesouvají se do trezoru. Trezor služby Backup a cluster AKS by měly být ve stejné oblasti.
Zálohování AKS používá k ukládání záloh kontejner objektů blob a skupinu prostředků. Kontejner objektů blob obsahuje prostředky clusteru AKS uložené v něm, zatímco snímky trvalých svazků jsou uložené ve skupině prostředků. Cluster AKS a umístění úložiště se musí nacházet ve stejné oblasti. Zjistěte , jak vytvořit kontejner objektů blob.
Zálohování AKS v současné době podporuje jednorázové zálohování. Podporuje také častější zálohování (v intervalech každých 4, 8 a 12 hodin) za den. Toto řešení umožňuje uchovávat data pro obnovení po dobu až 360 dnů. Naučte se vytvářet zásady zálohování.
Pokud chcete nakonfigurovat operace zálohování a obnovení v clusteru AKS, musíte nainstalovat rozšíření zálohování. Přečtěte si další informace o rozšíření zálohování.
Před zahájením operací konfigurace zálohování a
Microsoft.ContainerService
obnovení se ujistěte, žeMicrosoft.KubernetesConfiguration
Microsoft.DataProtection
jsou pro vaše předplatné zaregistrované.Před zahájením operace zálohování nebo obnovení pro zálohování AKS nezapomeňte provést všechny požadavky .
Další informace o podporovaných scénářích, omezeních a dostupnosti najdete v matici podpory.
Vytvoření trezoru služby Backup
Trezor služby Backup je entita správy v Azure, která ukládá zálohovaná data pro různé novější úlohy, které Azure Backup podporuje, například servery Azure Database for PostgreSQL a disky Azure. Trezory záloh usnadňují uspořádání zálohovaných dat a minimalizují režijní náklady na správu. Jsou založené na modelu Azure Resource Manageru, který poskytuje vylepšené možnosti, které pomáhají zabezpečit zálohovaná data. Před vytvořením trezoru služby Backup zvolte redundanci úložiště dat v trezoru a pak vytvořte trezor služby Backup s danou redundancí úložiště a umístěním.
Tady vytváříme trezor záloh TestBkpVault v oblasti USA – západ v rámci skupiny prostředků testBkpVaultRG. Pomocí rutiny New-AzDataProtectionBackupVault
vytvořte trezor služby Backup. Přečtěte si další informace o vytváření trezoru služby Backup.
Poznámka:
I když vybraný trezor může mít nastavení globální redundance , zálohování pro AKS aktuálně podporuje pouze provozní úroveň . Všechny zálohy se ukládají ve vašem předplatném ve stejné oblasti jako cluster AKS a nekopírují se do úložiště trezoru služby Backup.
Pokud chcete definovat nastavení úložiště trezoru služby Backup, spusťte následující rutinu:
Poznámka:
Trezor se vytvoří pouze s podporou místní redundance a provozního úložiště dat.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
Pokud chcete vytvořit trezor služby Backup podle výše uvedených podrobností, spusťte následující rutinu:
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
Po vytvoření trezoru vytvořte zásadu zálohování pro ochranu clusterů AKS.
Vytvoření zásad zálohování
Azure Backup umožňuje vytvářet zásady zálohování pro ochranu clusteru AKS s denními zálohami nebo několika zálohami za den.
Pokud chcete vytvořit zásadu zálohování pro cluster AKS, spusťte následující rutiny:
Načtěte šablonu zásad pomocí rutiny
Get-AzDataProtectionPolicyTemplate
a zkontrolujte vnitřní komponenty zásad zálohování pro zálohování záloh. Tento příkaz vrátí výchozí šablonu zásad pro daný typ zdroje dat. Pomocí této šablony zásad můžete vytvořit novou zásadu.$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
Šablona zásad se skládá z kritérií triggeru (která rozhoduje o faktorech pro aktivaci úlohy zálohování) a životního cyklu (který se rozhodne, kdy se mají zálohy odstranit, zkopírovat nebo přesunout). V zálohování AKS je výchozí hodnota triggeru naplánovaná hodinová aktivační událost každých 4 hodiny (PT4H) a uchovávání každé zálohy je 7 dní.
$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:
Pro frekvenci denního zálohování zadejte čas dne, kdy se mají zálohy provést.
Důležité
Čas dne označuje čas spuštění zálohování, nikoli čas dokončení zálohování. Doba potřebná k dokončení operace zálohování závisí na různých faktorech, včetně počtu a velikosti trvalých svazků a četnosti změn mezi po sobě jdoucími zálohami.
Zálohování pro AKS poskytuje více záloh za den. Zálohy se rovnoměrně distribuují po celý den, pokud požadujete častější zálohování výběrem frekvence zálohování po hodinách, která má možnost provádět zálohy s intervaly každých 4, 6, 8 nebo 12 hodin. Zálohy se plánují na základě vybraného časového intervalu . Pokud například vyberete každých 4 hodiny, zálohy se provádějí přibližně v intervalu každých 4 hodin.
Pokud chcete upravit hodinovou frekvenci nebo dobu uchovávání, použijte rutiny
Edit-AzDataProtectionPolicyTriggerClientObject
a/neboEdit-AzDataProtectionPolicyRetentionRuleClientObject
. Jakmile má objekt zásady všechny požadované hodnoty, začněte vytvářet nové zásady z objektu zásad pomocí rutinyNew-AzDataProtectionBackupPolicy
.New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
Příprava clusteru AKS na zálohování
Po dokončení vytváření trezoru a zásad musíte provést následující požadavky, abyste cluster AKS připravili na zálohování:
Vytvoření účtu úložiště a kontejneru objektů blob
Zálohování pro AKS ukládá prostředky Kubernetes do kontejneru objektů blob jako zálohy. Pokud chcete cluster AKS připravit na zálohování, musíte do clusteru nainstalovat rozšíření. Toto rozšíření vyžaduje jako vstupy účet úložiště a kontejner objektů blob.
Pokud chcete vytvořit nový účet úložiště a kontejner objektů blob, přečtěte si tyto kroky.
Poznámka:
- Účet úložiště a cluster AKS by měly být ve stejné oblasti a předplatném.
- Kontejner objektů blob by neměl obsahovat žádné dříve vytvořené systémy souborů (s výjimkou zálohování pro AKS).
- Pokud je váš zdrojový nebo cílový cluster AKS v privátní virtuální síti, musíte vytvořit privátní koncový bod pro připojení účtu úložiště ke clusteru AKS.
Instalace rozšíření zálohování
Rozšíření zálohování je povinné nainstalovat v clusteru AKS, aby bylo možné provádět všechny operace zálohování a obnovení. Rozšíření zálohování vytvoří v clusteru obor názvů a použije stejný obor názvů
dataprotection-microsoft
k nasazení prostředků. Rozšíření vyžaduje účet úložiště a kontejner objektů blob jako vstupy pro instalaci. Přečtěte si o instalačních příkazech rozšíření.V rámci instalace rozšíření se identita uživatele vytvoří ve skupině prostředků fondu uzlů clusteru AKS. Aby rozšíření získalo přístup k účtu úložiště, musíte tuto identitu poskytnout roli Přispěvatel účtu úložiště. Pokud chcete přiřadit požadovanou roli, spusťte tento příkaz.
Povolení důvěryhodného přístupu
Aby se trezor služby Backup mohl připojit ke clusteru AKS, musíte povolit důvěryhodný přístup, protože trezor záloh může mít přímý pohled na cluster AKS. Zjistěte , jak povolit důvěryhodný přístup.
Poznámka:
Pro instalaci rozšíření Backup a povolení důvěryhodného přístupu jsou příkazy dostupné jenom v Azure CLI.
Konfigurace záloh
S vytvořeným trezorem služby Backup a zásadami zálohování a clusterem AKS v připraveném stavu zálohování teď můžete začít zálohovat cluster AKS.
Klíčové entity
Cluster AKS, který se má chránit
Načtěte ID Azure Resource Manageru clusteru AKS, které se má chránit. Slouží jako identifikátor clusteru. V tomto příkladu použijeme cluster AKS s názvem PSTestAKSCluster v rámci skupiny prostředků aksrg v jiném předplatném:
$sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
Skupina prostředků snímku
Snímky trvalých svazků se ukládají do skupiny prostředků ve vašem předplatném. Doporučujeme vytvořit vyhrazenou skupinu prostředků jako úložiště dat snímků, které bude služba Azure Backup používat. Vyhrazená skupina prostředků umožňuje omezit přístupová oprávnění pro skupinu prostředků a zajistit tak bezpečnost a snadnou správu zálohovaných dat. Uložte ID Azure Resource Manageru skupiny prostředků do umístění, kam chcete uložit snímky trvalých svazků.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
Příprava požadavku
Konfigurace zálohování se provádí ve dvou krocích:
Připravte konfiguraci zálohování, která definuje, které prostředky clusteru se mají zálohovat pomocí rutiny
New-AzDataProtectionBackupConfigurationClientObject
. V následujícím příkladu je konfigurace definována jako všechny prostředky clusteru v aktuálním stavu a budoucí obory názvů budou zálohovány s popiskem jakokey-value pair x=y
. Také se zálohují všechny prostředky s vymezeným oborem clusteru a trvalé svazky. Následující obory názvů se přeskočí z konfigurace zálohování a nenakonfigurují se pro zálohy: kube-system, kube-node-lease, kube-public.$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
Připravte relevantní požadavek pomocí příslušného trezoru, zásad, clusteru AKS, konfigurace zálohování a skupiny prostředků snímků pomocí rutiny
Initialize-AzDataProtectionBackupInstance
.$backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
Přiřazení požadovaných oprávnění a ověření
Pokud chcete přiřadit požadovaná oprávnění a provést ověření ochrany clusteru AKS, spusťte následující rutiny:
Když je požadavek připravený, musíte uživateli přiřadit požadovaná oprávnění prostřednictvím řízení přístupu na základě role Azure (Azure RBAC) k trezoru (reprezentované identitou spravovaného systému trezoru) a clusteru AKS. Můžete to provést pomocí rutiny
Set-AzDataProtectionMSIPermission
. Trezor služby Backup používá spravovanou identitu pro přístup k dalším prostředkům Azure. Ke konfiguraci zálohování clusteru AKS vyžaduje spravovaná identita trezoru služby Backup sadu oprávnění ke clusteru AKS a skupinám prostředků, kde se vytvářejí a spravují snímky. Cluster AKS také vyžaduje oprávnění ke skupině prostředků snímku.Poznámka:
Pouze spravovaná identita přiřazená systémem je aktuálně podporována pro zálohování (trezor služby Backup i cluster AKS). Spravovaná identita přiřazená systémem je omezena na jeden prostředek a je svázaná s životním cyklem tohoto prostředku. Spravovanou identitu můžete udělit pomocí Azure RBAC. Spravovaná identita je instanční objekt speciálního typu, který se dá použít jenom s prostředky Azure. Přečtěte si další informace o spravovaných identitách.
Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
Po přiřazení oprávnění otestujte připravenost vytvořené instance.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
Po úspěšném ověření odešlete žádost o ochranu clusteru AKS pomocí rutiny
New-AzDataProtectionBackupInstance
.New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
Spuštění zálohování na vyžádání
Pokud chcete aktivovat zálohování na vyžádání, spusťte následující rutiny:
Spuštěním rutiny
Get-AzDataProtectionBackupInstance
načtěte příslušnou instanci zálohování, na které chcete aktivovat zálohování.$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Při aktivaci zálohování zadejte pravidlo uchovávání informací. Pokud chcete zobrazit pravidla uchovávání informací v zásadách, přejděte k objektu zásad pro pravidla uchovávání informací. V následujícím příkladu se zobrazí pravidlo s výchozím názvem a toto pravidlo použijeme pro zálohování na vyžádání.
$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
Aktivujte zálohování na vyžádání pomocí rutiny
Backup-AzDataProtectionBackupInstanceAdhoc
.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Sledování úloh
Pomocí rutiny Get-AzDataProtectionJob
můžete sledovat všechny úlohy. Můžete zobrazit seznam všech úloh a načíst konkrétní podrobnosti úlohy. Pomocí této rutiny Az.ResourceGraph
můžete také sledovat všechny úlohy ve všech trezorech služby Backup. Pomocí rutiny Search-AzDataProtectionJobInAzGraph
získejte relevantní podrobnosti úlohy z libovolného trezoru služby Backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService -Operation OnDemandBackup