Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak obnovit Azure Kubernetes cluster ze záložního bodu vytvořeného službou Azure Backup pomocí Azure CLI. Cluster AKS můžete obnovit také pomocí Azure PowerShellu.
Azure Backup nyní umožňuje zálohovat clustery AKS (prostředky clusteru a připojené trvalé svazky) pomocí zálohovacího rozšíření, které musí být nainstalováno v clusteru. Zálohovací úložiště komunikuje s clusterem prostřednictvím tohoto rozšíření pro zálohování za účelem provádění operací zálohování a obnovy.
Můžete provádět obnoveníOriginal-Location (OLR) (obnovení v zálohovaném clusteru AKS) i obnoveníAlternate-Location (ALR) (obnovení v jiném clusteru AKS). Můžete také vybrat položky, které chcete obnovit ze zálohy, která poskytuje obnovu na úrovni položek (ILR).
Poznámka
Než zahájíte obnovení, měl by mít cílový cluster nainstalovanou zálohovací rozšíření a pro zálohovací trezor by měl být povolen důvěryhodný přístup. Další informace.
Než začnete
Než začnete obnovovat AKS cluster, zkontrolujte následující podrobnosti:
Zálohování AKS umožňuje obnovit původní cluster AKS (zálohovaný) a do alternativního clusteru AKS. Záloha AKS vám umožňuje provést úplné obnovení a obnovení na úrovni položek. Můžete využít konfigurace obnovy k definování parametrů na základě zdrojů clusteru, které mají být obnoveny.
Rozšíření zálohování musíte nainstalovat do cílového clusteru AKS. Aby byl zajištěn důvěryhodný přístup mezi úložištěm záloh a clusterem AKS, je nutné povolit funkci Trusted Access.
Pokud se verze cílového AKS clusteru liší od verze použité během zálohování, operace obnovení může selhat nebo může být dokončena s varováními pro různé scénáře, jako jsou zastaralé zdroje v novější verzi clusteru. Pokud obnovujete z úrovně Vault, můžete použít hydratované zdroje v umístění pro staging k obnovení aplikačních zdrojů do cílového clusteru.
Pro více informací o omezeních a podporovaných scénářích si přečtěte support matrix.
Ověřit a připravit cílový cluster AKS
Než zahájíte proces obnovení, musíte ověřit, že je cluster AKS připraven na obnovení. Obsahuje rozšíření pro zálohování, které je třeba nainstalovat. Rozšíření má oprávnění k účtu úložiště, kde jsou zálohy ukládány nebo obnovovány, s povoleným důvěryhodným přístupem mezi cílovým AKS clusterem a trezorem záloh.
Pro ověření a přípravu clusteru AKS pro obnovení spusťte následující příkazy:
Zkontrolujte, zda je v clusteru nainstalováno rozšíření zálohování.
az k8s-extension show --name azure-aks-backup --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroupPokud je rozšíření nainstalováno, zkontrolujte, zda má správná oprávnění na úložném účtu, kde jsou zálohy uloženy.
az role assignment list --all --assignee $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv)Pokud není role přiřazena, pak přiřaďte roli.
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Account Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccountPokud není nainstalován Backup Extension, spusťte následující příkaz pro instalaci rozšíření s účet úložiště a kontejner blob, kde jsou uloženy zálohy jako vstup.
az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionIdZadejte požadovanou roli pro rozšíření na účet úložiště.
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
Zkontrolovat důvěryhodný přístup
Chcete-li zkontrolovat, zda je Trusted Access povolen mezi zálohovacím úložištěm a cílovým AKS clusterem, spusťte následující příkaz:
az aks trustedaccess rolebinding list --resource-group $aksclusterresourcegroup --cluster-name $targetakscluster
Pokud ne, pak lze Důvěryhodný přístup povolit následujícím příkazem:
az aks trustedaccess rolebinding create --cluster-name $targetakscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
Obnovit do AKS clusteru
Chcete-li obnovit do AKS clusteru, přečtěte si následující části.
Načtěte příslušný bod obnovy
Pro získání relevantního bodu obnovení spusťte následující příkazy:
Načtěte všechny instance spojené s clusterem AKS a identifikujte příslušnou instanci.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$aksclusterJakmile je instance identifikována, načtěte příslušný bod obnovy.
az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvaultPokud chcete obnovit zálohy do sekundární oblasti, použijte příznak
--use-secondary-regionk identifikaci bodů obnovení dostupných v této oblasti.az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvault --use-secondary-region true
Připravte požadavek na obnovení
Chcete-li připravit nastavení obnovení, které definuje položky určené k obnovení do cílového AKS clusteru, spusťte příkaz az dataprotection backup-instance initialize-restoreconfig.
az dataprotection backup-instance initialize-restoreconfig --datasource-type AzureKubernetesService >restoreconfig.json
{
"conflict_policy": "Skip",
"excluded_namespaces": null,
"excluded_resource_types": null,
"include_cluster_scope_resources": true,
"included_namespaces": null,
"included_resource_types": null,
"label_selectors": null,
"namespace_mappings": null,
"object_type": "KubernetesClusterRestoreCriteria",
"persistent_volume_restore_mode": "RestoreWithVolumeData",
"resource_modifier_reference": null,
"restore_hook_references": null,
"staging_resource_group_id": null,
"staging_storage_account_id": null
}
Konfigurace obnovení se skládá z následujících položek:
conflict_policy: Během obnovy, pokud v klastru existuje stejný zdroj jako v záloze, můžete si vybrat, jak konflikt řešit. Máte dvě možnosti: Přeskočit, což neobnoví položku zálohy, nebo Aktualizovat, což změní měnitelné pole zdroje v klastru pomocí zdroje uloženého v záloze.excluded_namespace: Můžete vypsat obory názvů, které mají být vyloučeny z obnovení do clusteru. Zdroje související s těmito názvovými prostory nebudou obnoveny.excluded_resource_types: Můžete uvést typy zdrojů, které mají být vyloučeny z obnovy do clusteru. Hodnoty ve vstupu by měly být poskytnuty jako dvojice klíč-hodnota ve formátu API Group Kind.include_cluster_scope_resources: Můžete se rozhodnout, zda chcete obnovit prostředky v rámci clusteru nebo ne, tím, že nastavíte hodnotu na true nebo false.included_namespaces: Můžete vypsat jmenné prostory, které budou zahrnuty pouze jako součást obnovy do clusteru. Zdroje, které jsou základem těchto jmenných prostorů, mají být obnoveny.excluded_resource_types: Můžete uvést typy zdrojů, které mají být zahrnuty pouze pro obnovu do clusteru. Hodnoty ve vstupu by měly být poskytnuty jako dvojice klíč-hodnota ve formátu API Group Kind.label_selectors: Můžete vybrat zdroje, které mají být obnoveny s konkrétními štítky v nich. Vstupní hodnota by měla být poskytnuta jako dvojice klíče a hodnoty.namespace_mappings: Můžete namapovat obor názvů (a podkladové zdroje) na jiný obor názvů v cílovém clusteru. Pokud cílový obor názvů neexistuje v klastru, rozšíření vytvoří nový obor názvů. Vstupní hodnota by měla být poskytnuta jako dvojice klíče a hodnoty.object_type: Tato proměnná určuje, jestli je konfigurace obnovení určená pro bod obnovení uložený v provozní vrstvě nebo vrstvě trezoru. Pokud je bod obnovení v provozní vrstvě, nastavte hodnotu na KubernetesClusterRestoreCriteria. Pokud je bod obnovení ve vrstvě trezoru nebo se obnovuje do sekundární oblasti, nastavte hodnotu na KubernetesClusterVaultTierRestoreCriteria.persistent_volume_restore_mode: Tuto proměnnou můžete použít, abyste se rozhodli, zda chcete obnovit zálohované perzistentní objemy nebo ne. Přijatelné hodnoty jsou RestoreWithVolumeData, RestoreWithoutVolumeDataresource_modifier_reference: Tento proměnný můžete použít k odkazu na zdroj Resource Modifier nasazený v clusteru. Vstupní hodnota je dvojice klíč-hodnota jmenného prostoru, ve kterém je prostředek nasazen, a název souboru yaml.restore_hook_references: Pomocí této proměnné můžete odkazovat na prostředek Restore Hook nasazený v clusteru. Vstupní hodnota je dvojice klíč-hodnota pro Namespace, ve kterém je nasazena zdroj, a jméno yaml souborů.staging_resource_group_id: Pokud obnovujete zálohu uloženou v úrovni úložiště, musíte poskytnout ID skupiny zdrojů jako umístění pro přípravu. V této skupině prostředků jsou zálohované perzistentní svazky obnoveny, než jsou obnoveny do cílového klastru.staging_storage_account_id: Pokud obnovujete zálohu uloženou ve vault tier, musíte poskytnout ID úložného účtu jako místo pro přípravu. V této skupině prostředků jsou zálohované zdroje Kubernetes hydratovány předtím, než jsou obnoveny do cílového clusteru.
Nyní připravte žádost o obnovení se všemi relevantními detaily. Pokud obnovujete zálohu do původního clusteru, spusťte následující příkaz:
az dataprotection backup-instance restore initialize-for-item-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --backup-instance-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid >restorerequestobject.json
Pokud je cílový AKS cluster pro obnovení odlišný od původního clusteru, spusťte následující příkaz:
az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --target-resource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$targetakscluster >restorerequestobject.json
Pokud je cílový cluster v sekundární oblasti, použijte příznak --use-secondary-region.
az dataprotection backup-instance restore initialize-for-data-recovery --datasource-type AzureKubernetesService --restore-location $region --source-datastore OperationalStore --recovery-point-id $recoverypointid --restore-configuration restoreconfig.json --target-resource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$targetakscluster --use-secondary-region true >restorerequestobject.json
Poznámka
V případě, že jste vybrali bod obnovení z vrstvy trezoru pomocí --source-datastore jako VaultStore, zadejte v konfiguraci obnovení účet úložiště a skupinu prostředků snímku.
Pokud se pokoušíte obnovit do clusteru v sekundární oblasti, nastavte příznak --restore-location jako jméno sekundární oblasti a --source-datastore jako VaultStore.
Nyní můžete aktualizovat objekt JSON podle svých požadavků a poté objekt ověřit spuštěním následujícího příkazu:
az dataprotection backup-instance validate-for-restore --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --restore-request-object restorerequestobject.json --vault-name $backupvault
Pokud je cílový cluster v sekundární oblasti, použijte příznak --use-secondary-region.
az dataprotection backup-instance validate-for-restore --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --restore-request-object restorerequestobject.json --vault-name $backupvault --use-secondary-region true
Tento příkaz zkontroluje, zda mají AKS Cluster a záložní trezor potřebné role na různých zdrojích, nezbytné pro provedení obnovení. Pokud ověření selže kvůli chybějícím rolím, můžete je přiřadit spuštěním následujícího příkazu:
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Restore --permissions-scope Resource --resource-group $backupvaultresourcegroup --vault-name $backupvault --restore-request-object restorerequestobject.json --snapshot-resource-group-id /subscriptions/$subscriptionId/resourceGroups/$snapshotresourcegroup
Poznámka
Během operace obnovy je pro úspěšné provedení obnovy nutné přiřadit určitě role úložišti záloh a klastru AKS.
- Cluster cíl AKS by měl mít roli majitel (Contributor) ve skupině prostředků pro snímky (Snapshot Resource Group).
- Identita uživatele připojená k rozšíření zálohy by měla mít roli Storage Blob Data Contributor pro úložiště, kde jsou zálohy uloženy v případě provozní úrovně, a na stagingovém úložišti v případě úrovně sejfu.
- V případě obnovy z provozní vrstvy by měl mít úložiště záloh roli Čtenář v rámci cílového AKS clusteru a Resource Group snímku.
- Zálohový trezor by měl mít roli Přispěvatel ve Přechodné skupině zdrojů v případě obnovy zálohy z úrovně trezoru.
- Trezor služby Backup by měl mít pro přípravný účet úložiště roli Přispěvatel účtu úložiště a Vlastník dat objektů blob úložiště pro případ obnovení zálohy z úrovně trezoru.
Spusťte obnovu
Jakmile je přiřazení role dokončeno, měli byste znovu ověřit objekt obnovení. Poté můžete spustit operaci obnovení pomocí následujícího příkazu:
az dataprotection backup-instance restore trigger --backup-instance-name $backupinstancename --restore-request-object restorerequestobject.json
Pokud je cílový cluster v sekundární oblasti, použijte příznak --use-secondary-region.
az dataprotection backup-instance restore trigger --backup-instance-name $backupinstancename --restore-request-object restorerequestobject.json --use-secondary-region true
Poznámka
Zdroje naimportované ve skupině prostředků pro přípravu a na účtu úložiště nejsou po dokončení obnovy automaticky vyčištěny a je potřeba je odstranit ručně.
Sledování práce
Můžete sledovat úlohy obnovení pomocí příkazu az dataprotection job. Můžete vypsat všechny úlohy a načíst podrobnosti konkrétní úlohy.
Můžete také použít Resource Graph ke sledování všech úloh napříč všemi předplatnými, skupinami prostředků a trezory záloh. Použijte příkaz az dataprotection job list-from-resourcegraph k získání příslušné úlohy.
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation Restore