Obnovení služby Azure Kubernetes Service pomocí Azure CLI
Tento článek popisuje, jak obnovit cluster Azure Kubernetes z bodu obnovení vytvořeného službou Azure Backup pomocí Azure CLI.
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í.
Můžete provést obnovení původního umístění (OLR) (obnovení v clusteru AKS, který byl zálohován) a obnovení alternativního umístění (ALR) (obnovení v jiném clusteru AKS). Můžete také vybrat položky, které se mají obnovit ze zálohy, která je obnovení na úrovni položky (ILR).
Poznámka:
Před zahájením operace obnovení by měl mít cílový cluster nainstalované rozšíření zálohování a povolený důvěryhodný přístup pro trezor záloh. Další informace.
Než začnete
Zálohování AKS umožňuje obnovit původní cluster AKS (zálohovaný) a do alternativního clusteru AKS. Zálohování AKS umožňuje provést úplné obnovení a obnovení na úrovni položek. Konfigurace obnovení můžete využít k definování parametrů na základě prostředků clusteru, které se při obnovení vyberou.
Rozšíření zálohování musíte nainstalovat do cílového clusteru AKS. Musíte také povolit důvěryhodný přístup mezi trezorem služby Backup a clusterem AKS.
Další informace o omezeních a podporovaných scénářích najdete v matici podpory.
Ověření a příprava cílového clusteru AKS
Než zahájíte proces obnovení, musíte ověřit, že je cluster AKS připravený k obnovení. To zahrnuje rozšíření zálohování, které se má nainstalovat s rozšířením, které má oprávnění k účtu úložiště, kde se ukládají zálohy, a důvěryhodný přístup, který se má povolit mezi clusterem AKS a trezorem záloh.
Nejprve zkontrolujte, jestli je v clusteru nainstalované rozšíření zálohování spuštěním následujícího příkazu:
az k8s-extension show --name azure-aks-backup --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup
Pokud je rozšíření nainstalované, zkontrolujte, jestli má správná oprávnění k účtu úložiště, kde se ukládají zálohy:
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 tato role není přiřazená, můžete ji přiřadit spuštěním následujícího příkazu:
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/$storageaccount
Pokud rozšíření zálohování není nainstalované, spusťte následující příkaz instalace rozšíření s účtem úložiště a kontejnerem objektů blob, kde se zálohy ukládají 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=$subscriptionId
Potom k rozšíření účtu úložiště přiřaďte požadovanou roli spuštěním následujícího příkazu:
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/$storageaccount
Kontrola důvěryhodného přístupu
Pokud chcete zkontrolovat, jestli je mezi trezorem služby Backup a cílovým clusterem AKS povolený důvěryhodný přístup, spusťte následující příkaz:
az aks trustedaccess rolebinding list --resource-group $aksclusterresourcegroup --cluster-name $targetakscluster
Pokud není povolený, spusťte následující příkaz a povolte důvěryhodný přístup:
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
Obnovení do clusteru AKS
Načtení příslušného bodu obnovení
Načtěte všechny instance přidružené ke clusteru 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/$akscluster --query aksAssignedIdentity.id
Jakmile je instance identifikovaná, načtěte příslušný bod obnovení.
az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvault
Příprava žádosti o obnovení
Pokud chcete připravit konfiguraci obnovení definující položky, které se mají obnovit do cílového clusteru AKS, spusťte az dataprotection backup-instance initialize-restoreconfig
příkaz.
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"
}
Teď připravte žádost o obnovení se všemi relevantními podrobnostmi. 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 se cílový cluster AKS pro obnovení liší 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
Teď můžete objekt JSON aktualizovat podle svých požadavků a pak ho 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
Tento příkaz zkontroluje, jestli cluster AKS a trezor služby Backup mají požadovaná oprávnění k sobě navzájem a skupinu prostředků snímku k provedení obnovení. Pokud ověření selže kvůli chybějícím oprávnění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
Aktivace obnovení
Po dokončení přiřazení role byste měli znovu ověřit objekt obnovení. Potom můžete aktivovat operaci obnovení spuštěním následujícího příkazu:
az dataprotection backup-instance restore trigger --restore-request-object restorerequestobject.json --ids /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstancename
Poznámka:
Během operace obnovení musí mít trezor služby Backup a cluster AKS přiřazené určité role k provedení obnovení:
- Cílový cluster AKS by měl mít roli Přispěvatel ve skupině prostředků snímku.
- Identita uživatele připojená k rozšíření zálohování by měla mít role Přispěvatel účtu úložiště v účtu úložiště, kde jsou uložené zálohy.
- Trezor služby Backup by měl mít roli Čtenář v cílovém clusteru AKS a skupině prostředků snímků.
Úloha sledování
Úlohy obnovení můžete sledovat pomocí az dataprotection job
příkazu. Můžete zobrazit seznam všech úloh a načíst konkrétní podrobnosti úlohy.
Pomocí Resource Graphu můžete také sledovat všechny úlohy napříč všemi předplatnými, skupinami prostředků a trezory služby Backup. az dataprotection job list-from-resourcegraph
Pomocí příkazu získáte příslušnou úlohu.
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation Restore
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro