Przywracanie usługi Azure Kubernetes Service przy użyciu interfejsu wiersza polecenia platformy Azure
W tym artykule opisano sposób przywracania klastra Usługi Azure Kubernetes z punktu przywracania utworzonego przez usługę Azure Backup przy użyciu interfejsu wiersza polecenia platformy Azure.
Usługa Azure Backup umożliwia teraz tworzenie kopii zapasowych klastrów usługi AKS (zasobów klastra i trwałych woluminów dołączonych do klastra) przy użyciu rozszerzenia kopii zapasowej, które należy zainstalować w klastrze. Magazyn kopii zapasowych komunikuje się z klastrem za pośrednictwem tego rozszerzenia kopii zapasowej w celu wykonywania operacji tworzenia kopii zapasowych i przywracania.
Odzyskiwanie oryginalnej lokalizacji (OLR) ( przywracanie w klastrze usługi AKS, którego kopia zapasowa została utworzona) i odzyskiwanie alternatywnej lokalizacji (ALR) (przywracanie w innym klastrze usługi AKS). Możesz również wybrać elementy do przywrócenia z kopii zapasowej, która jest odzyskiwaniem na poziomie elementu (ILR).
Uwaga
Przed zainicjowaniem operacji przywracania klaster docelowy powinien mieć zainstalowane rozszerzenie kopii zapasowej i włączony zaufany dostęp dla magazynu kopii zapasowych. Dowiedz się więcej.
Przed rozpoczęciem
Tworzenie kopii zapasowej usługi AKS umożliwia przywracanie do oryginalnego klastra usługi AKS (kopii zapasowej) i do alternatywnego klastra usługi AKS. Kopia zapasowa usługi AKS umożliwia wykonywanie pełnego przywracania i przywracania na poziomie elementu. Konfiguracje przywracania umożliwiają definiowanie parametrów na podstawie zasobów klastra, które zostaną pobrane podczas przywracania.
Należy zainstalować rozszerzenie kopii zapasowej w docelowym klastrze usługi AKS. Ponadto należy włączyć zaufany dostęp między magazynem kopii zapasowych a klastrem usługi AKS.
Aby uzyskać więcej informacji na temat ograniczeń i obsługiwanych scenariuszy, zobacz macierz obsługi.
Weryfikowanie i przygotowywanie docelowego klastra usługi AKS
Przed zainicjowaniem procesu przywracania należy sprawdzić, czy klaster usługi AKS jest przygotowany do przywrócenia. Obejmuje to rozszerzenie kopii zapasowej, które ma zostać zainstalowane z rozszerzeniem z uprawnieniem na koncie magazynu, na którym są przechowywane kopie zapasowe, a zaufany dostęp do włączenia między klastrem AKS i magazynem kopii zapasowych.
Najpierw sprawdź, czy rozszerzenie kopii zapasowej jest zainstalowane w klastrze, uruchamiając następujące polecenie:
az k8s-extension show --name azure-aks-backup --cluster-type managedClusters --cluster-name $targetakscluster --resource-group $aksclusterresourcegroup
Jeśli rozszerzenie jest zainstalowane, sprawdź, czy ma odpowiednie uprawnienia na koncie magazynu, na którym są przechowywane kopie zapasowe:
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)
Jeśli rola nie jest przypisana, możesz przypisać rolę, uruchamiając następujące polecenie:
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
Jeśli rozszerzenie kopii zapasowej nie jest zainstalowane, uruchom następujące polecenie instalacji rozszerzenia przy użyciu konta magazynu i kontenera obiektów blob, w którym kopie zapasowe są przechowywane jako dane wejściowe.
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
Następnie przypisz wymaganą rolę do rozszerzenia na koncie magazynu, uruchamiając następujące polecenie:
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
Sprawdzanie zaufanego dostępu
Aby sprawdzić, czy zaufany dostęp jest włączony między magazynem kopii zapasowych i docelowym klastrem usługi AKS, uruchom następujące polecenie:
az aks trustedaccess rolebinding list --resource-group $aksclusterresourcegroup --cluster-name $targetakscluster
Jeśli nie jest włączona, uruchom następujące polecenie, aby włączyć zaufany dostęp:
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
Przywracanie do klastra usługi AKS
Pobieranie odpowiedniego punktu odzyskiwania
Pobierz wszystkie wystąpienia skojarzone z klastrem usługi AKS i zidentyfikuj odpowiednie wystąpienie.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id
Po zidentyfikowaniu wystąpienia pobierz odpowiedni punkt odzyskiwania.
az dataprotection recovery-point list --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --vault-name $backupvault
Przygotowywanie żądania przywracania
Aby przygotować konfigurację przywracania definiującą elementy do przywrócenia do docelowego klastra usługi AKS, uruchom az dataprotection backup-instance initialize-restoreconfig
polecenie .
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"
}
Teraz przygotuj żądanie przywrócenia ze wszystkimi odpowiednimi szczegółami. Jeśli przywracasz kopię zapasową do oryginalnego klastra, uruchom następujące polecenie:
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
Jeśli docelowy klaster AKS do przywracania różni się od oryginalnego klastra, uruchom następujące polecenie:
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
Teraz możesz zaktualizować obiekt JSON zgodnie z wymaganiami, a następnie zweryfikować obiekt, uruchamiając następujące polecenie:
az dataprotection backup-instance validate-for-restore --backup-instance-name $backupinstancename --resource-group $backupvaultresourcegroup --restore-request-object restorerequestobject.json --vault-name $backupvault
To polecenie sprawdza, czy klaster AKS i magazyn kopii zapasowych mają wymagane uprawnienia do siebie i grupy zasobów Migawka do wykonania przywracania. Jeśli walidacja nie powiedzie się z powodu braku uprawnień, możesz je przypisać, uruchamiając następujące polecenie:
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
Wyzwalanie przywracania
Po zakończeniu przypisywania roli należy ponownie zweryfikować obiekt przywracania. Następnie można wyzwolić operację przywracania, uruchamiając następujące polecenie:
az dataprotection backup-instance restore trigger --restore-request-object restorerequestobject.json --ids /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstancename
Uwaga
Podczas operacji przywracania magazyn kopii zapasowych i klaster usługi AKS muszą mieć przypisane określone role w celu wykonania przywracania:
- Docelowy klaster usługi AKS powinien mieć rolę Współautor w grupie zasobów migawki.
- Tożsamość użytkownika dołączona z rozszerzeniem kopii zapasowej powinna mieć role Współautor konta magazynu na koncie magazynu, na którym są przechowywane kopie zapasowe.
- Magazyn kopii zapasowych powinien mieć rolę Czytelnik w docelowym klastrze usługi AKS i grupie zasobów migawki.
Zadanie śledzenia
Zadania przywracania można śledzić za pomocą az dataprotection job
polecenia . Możesz wyświetlić listę wszystkich zadań i pobrać szczegóły określonego zadania.
Możesz również użyć usługi Resource Graph do śledzenia wszystkich zadań we wszystkich subskrypcjach, grupach zasobów i magazynach kopii zapasowych. Użyj polecenia , az dataprotection job list-from-resourcegraph
aby pobrać odpowiednie zadanie.
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation Restore