Rozwiązywanie problemów z tworzeniem i przywracaniem kopii zapasowych usługi Azure Kubernetes Service

Ten artykuł zawiera kroki rozwiązywania problemów, które ułatwiają rozwiązywanie problemów z błędami tworzenia kopii zapasowych, przywracania i zarządzania w usłudze Azure Kubernetes Service (AKS).

Rozwiązania błędów instalacji rozszerzenia kopii zapasowej usługi AKS

Scenariusz 1

Komunikat o błędzie:

{Helm installation from path [] for release [azure-aks-backup] failed with the following error: err [release azure-aks-backup failed, and has been uninstalled due to atomic being set: failed post-install: timed out waiting for the condition]} occurred while doing the operation: {Installing the extension} on the config"`

Przyczyna: Rozszerzenie zostało pomyślnie zainstalowane, ale zasobniki nie są duplikowane. Dzieje się tak, ponieważ wymagane zasoby obliczeniowe i pamięć nie są dostępne dla zasobników.

Rozwiązanie: Aby rozwiązać ten problem, zwiększ liczbę węzłów w klastrze. Dzięki temu można uzyskać wystarczającą ilość zasobów obliczeniowych i pamięci do zduplikowania zasobników. Aby skalować pulę węzłów w witrynie Azure Portal, wykonaj następujące kroki:

  1. W witrynie Azure Portal otwórz klaster usługi AKS.
  2. Przejdź do pozycji Pule węzłów w obszarze Ustawienia.
  3. Wybierz pozycję Skaluj pulę węzłów, a następnie zaktualizuj minimalne i maksymalne wartości w zakresie liczby węzłów.
  4. Wybierz Zastosuj.

Scenariusz 2

Komunikat o błędzie:

BackupStorageLocation "default" is unavailable: rpc error: code = Unknown desc = azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/e30af180-aa96-4d81-981a-b67570b0d615/resourceGroups/AzureBackupRG_westeurope_1/providers/Microsoft.Storage/storageAccounts/devhayyabackup/listKeys?%24expand=kerb&api-version=2019-06-01: StatusCode=404 -- Original Error: adal: Refresh request failed. Status Code = '404'. Response body: no azure identity found for request clientID 4e95##### REDACTED #####0777`

Endpoint http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=4e95dcc5-a769-4745-b2d9-

Przyczyna: Po włączeniu tożsamości zarządzanej zasobnika w klastrze usługi AKS do przestrzeni nazw kube-system zostanie dodany wyjątek AzurePodIdentityException o nazwie aks-addon-exception. Wyjątek AzurePodIdentityException umożliwia zasobnikom z określonymi etykietami dostęp do punktu końcowego usługi Azure Instance Metadata Service (IMDS) bez przechwytywania przez serwer NMI.

Zasobniki rozszerzeń nie są wykluczone i wymagają ręcznego włączenia tożsamości zasobnika Entra firmy Microsoft.

Rozwiązanie: utwórz wyjątek pod-identity w klastrze usługi AKS (działa tylko dla przestrzeni nazw dataprotection-microsoft i nie kube-system). Dowiedz się więcej.

  1. Uruchom następujące polecenie:

    az aks pod-identity exception add --resource-group shracrg --cluster-name shractestcluster --namespace dataprotection-microsoft --pod-labels app.kubernetes.io/name=dataprotection-microsoft-kubernetes
    
  2. Aby zweryfikować wyjątek Azurepodidentityexceptions w klastrze, uruchom następujące polecenie:

    kubectl get Azurepodidentityexceptions --all-namespaces
    
  3. Aby przypisać rolę Współautor danych obiektu blob usługi Storage do tożsamości rozszerzenia, uruchom następujące polecenie:

    az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name aksclustername --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/storageaccountname
    

Scenariusz 3

Komunikat o błędzie:

{"Message":"Error in the getting the Configurations: error {Post \https://centralus.dp.kubernetesconfiguration.azure.com/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /provider/managedclusters/clusters/ aksclustername /configurations/getPendingConfigs?api-version=2021-11-01\: dial tcp: lookup centralus.dp.kubernetesconfiguration.azure.com on 10.63.136.10:53: no such host}","LogType":"ConfigAgentTrace","LogLevel":"Error","Environment":"prod","Role":"ClusterConfigAgent","Location":"centralus","ArmId":"/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /providers/Microsoft.ContainerService/managedclusters/ aksclustername ","CorrelationId":"","AgentName":"ConfigAgent","AgentVersion":"1.8.14","AgentTimestamp":"2023/01/19 20:24:16"}`

Przyczyna: Do używania rozszerzeń klastra w klastrach usługi AKS wymagane są określone reguły FQDN/aplikacji. Dowiedz się więcej.

Ten błąd pojawia się z powodu braku tych reguł nazwy FQDN z powodu tego, które informacje o konfiguracji z usługi Rozszerzenia klastra nie były dostępne.

Rozwiązanie: Aby rozwiązać ten problem, należy utworzyć niestandardowe zastąpienie CoreDNS dla punktu końcowego programu DP w celu przekazania przez sieć publiczną.

  1. Aby pobrać istniejący niestandardowy kod YAML CoreDNS w klastrze (zapisz go w środowisku lokalnym w celu późniejszego użycia), uruchom następujące polecenie:

    kubectl get configmap coredns-custom -n kube-system -o yaml
    
  2. Aby zastąpić mapowanie punktu końcowego programu Central US DP na publiczny adres IP (pobierz dołączony plik YAML), uruchom następujące polecenie:

    kubectl apply -f corednsms.yaml
    
  3. Aby wymusić ponowne ładowanie coredns zasobników, uruchom następujące polecenie:

    kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
    
  4. Aby wykonać z NSlookupzasobnika ExtensionAgent , aby sprawdzić, czy coreDNS-custom działa, uruchom następujące polecenie:

    kubectl exec -i -t pod/extension-agent-<pod guid that's there in your cluster> -n kube-system -- nslookup centralus.dp.kubernetesconfiguration.azure.com
    
  5. Aby sprawdzić dzienniki zasobnika ExtensionAgent , uruchom następujące polecenie:

    kubectl logs pod/extension-agent-<pod guid that’s there in your cluster> -n kube-system --tail=200
    
  6. Usuń i ponownie zainstaluj rozszerzenie kopii zapasowej, aby zainicjować tworzenie kopii zapasowej.

Błędy związane z instalacją rozszerzenia kopii zapasowej

Te kody błędów pojawiają się z powodu problemów z rozszerzeniem kopii zapasowej zainstalowanym w klastrze usługi AKS.

KubernetesBackupListExtensionsError:

Przyczyna: Magazyn kopii zapasowych w ramach weryfikacji sprawdza, czy klaster ma zainstalowane rozszerzenie kopii zapasowej. W tym celu tożsamość usługi zarządzanej magazynu wymaga uprawnień czytelnika w klastrze usługi AKS, co umożliwia wyświetlenie listy wszystkich rozszerzeń zainstalowanych w klastrze.

Zalecana akcja: Przypisz ponownie rolę Czytelnik do tożsamości usługi zarządzanej magazynu (usuń istniejące przypisanie roli i ponownie przypisz rolę Czytelnik), ponieważ przypisana rola Czytelnik nie ma uprawnień do rozszerzenia listy. Jeśli ponowne przypisanie nie powiedzie się, użyj innego magazynu kopii zapasowych, aby skonfigurować kopię zapasową.

UserErrorKubernetesBackupExtensionNotFoundError

Przyczyna: Magazyn kopii zapasowych w ramach walidacji sprawdza, czy klaster ma zainstalowane rozszerzenie Kopia zapasowa. Magazyn wykonuje operację, aby wyświetlić listę rozszerzeń zainstalowanych w klastrze. Jeśli rozszerzenie Kopii zapasowej jest nieobecne na liście, zostanie wyświetlony ten błąd.

Zalecana akcja: użyj klienta CL lub witryny Azure Portal, aby usunąć rozszerzenie, a następnie ponownie zainstaluj rozszerzenie.

UserErrorKubernetesBackupExtensionHasErrors

Przyczyna: Rozszerzenie kopii zapasowej zainstalowane w klastrze ma pewne błędy wewnętrzne.

Zalecana akcja: użyj klienta CL lub witryny Azure Portal, aby usunąć rozszerzenie, a następnie ponownie zainstaluj rozszerzenie.

UserErrorKubernetesBackupExtensionIdentityNotFound

Przyczyna: Kopia zapasowa usługi AKS wymaga rozszerzenia backup zainstalowanego w klastrze. Rozszerzenie wraz z jego instalacją ma tożsamość użytkownika utworzoną o nazwie MSI rozszerzenia. To rozszerzenie MSI jest tworzona w grupie zasobów składającej się z pul węzłów klastra usługi AKS. Ta tożsamość usługi zarządzanej pobiera wymagane role przypisane do uzyskiwania dostępu do lokalizacji magazynu kopii zapasowych. Kod błędu sugeruje, że brakuje tożsamości rozszerzenia.

Zalecana akcja: użyj interfejsu wiersza polecenia lub klienta witryny Azure Portal, aby usunąć rozszerzenie, a następnie ponownie zainstaluj rozszerzenie. Zostanie utworzona nowa tożsamość wraz z rozszerzeniem .

KubernetesBackupCustomResourcesTrackingTimeOutError

Przyczyna: Usługa Azure Backup dla usługi AKS wymaga zainstalowania rozszerzenia kopii zapasowej w klastrze. Aby wykonać operacje tworzenia i przywracania kopii zapasowych, zasoby niestandardowe są tworzone w klastrze. Zasobniki zduplikujące rozszerzenia, które wykonują operacje związane z tworzeniem kopii zapasowych za pośrednictwem tych reguł ściągnięcia. Ten błąd występuje, gdy rozszerzenie nie może zaktualizować stanu tych adresów CRS.

Zalecana akcja: kondycja rozszerzenia jest wymagana do zweryfikowania za pomocą polecenia kubectl get pods -n dataprotection.microsoft. Jeśli zasobniki nie są w stanie uruchomienia, zwiększ liczbę węzłów w klastrze o 1 lub zwiększ limity obliczeniowe. Następnie zaczekaj kilka minut i ponownie uruchom polecenie, co powinno zmienić stan zasobników na uruchomiony. Jeśli problem będzie się powtarzać, usuń i ponownie zainstaluj rozszerzenie.

BackupPluginDeleteBackupOperationFailed

Przyczyna: Rozszerzenie kopii zapasowej powinno być uruchomione w celu usunięcia kopii zapasowych.

Zalecana akcja: jeśli klaster jest uruchomiony, sprawdź, czy rozszerzenie jest uruchomione w dobrej kondycji. Sprawdź, czy zasobniki rozszerzeń są zduplikowane, w przeciwnym razie zwiększ węzły. Jeśli to się nie powiedzie, spróbuj usunąć i ponownie zainstalować rozszerzenie. Jeśli utworzono kopię zapasową klastra, usuń ręcznie migawki i metadane.

ExtensionTimedOutWaitingForBackupItemSync

Przyczyna: Rozszerzenie kopii zapasowej czeka na zsynchronizowanie elementów kopii zapasowej z kontem magazynu.

Zalecana akcja: jeśli zostanie wyświetlony ten kod błędu, spróbuj ponownie wykonać operację tworzenia kopii zapasowej lub ponownie zainstalować rozszerzenie.

Błędy oparte na lokalizacji magazynu kopii zapasowych

Te kody błędów pojawiają się z powodu problemów z rozszerzeniem kopii zapasowej zainstalowanym w klastrze usługi AKS.

UserErrorDeleteBackupFailedBackupStorageLocationReadOnly

Przyczyna: konto magazynu podane jako dane wejściowe podczas instalacji rozszerzenia kopii zapasowej jest w stanie tylko do odczytu, co nie zezwala na usuwanie danych kopii zapasowej z kontenera obiektów blob.

Zalecana akcja: zmień stan konta magazynu z tylko do odczytu na zapis.

UserErrorDeleteBackupFailedBackupStorageLocationNotFound

Przyczyna: Podczas instalacji rozszerzenia należy podać lokalizację magazynu kopii zapasowej jako dane wejściowe zawierające konto magazynu i kontener obiektów blob. Ten błąd pojawia się, jeśli lokalizacja została usunięta lub niepoprawnie dodana podczas instalacji rozszerzenia.

Zalecana akcja: Usuń rozszerzenie Kopia zapasowa, a następnie zainstaluj je ponownie przy użyciu poprawnego konta magazynu i kontenera obiektów blob jako danych wejściowych.

UserErrorBackupFailedBackupStorageLocationReadOnly

Przyczyna: konto magazynu podane jako dane wejściowe podczas instalacji rozszerzenia kopii zapasowej jest w stanie tylko do odczytu, co nie zezwala na zapisywanie danych kopii zapasowej w kontenerze obiektów blob.

Zalecana akcja: zmień stan konta magazynu z tylko do odczytu na zapis.

UserErrorNoDefaultBackupStorageLocationFound

Przyczyna: Podczas instalacji rozszerzenia lokalizację magazynu kopii zapasowej należy podać jako dane wejściowe, w tym konto magazynu i kontener obiektów blob. Błąd pojawia się, jeśli lokalizacja została usunięta lub niepoprawnie wprowadzona podczas instalacji rozszerzenia.

Zalecana akcja: Usuń rozszerzenie Kopia zapasowa, a następnie zainstaluj je ponownie przy użyciu poprawnego konta magazynu i kontenera obiektów blob jako danych wejściowych.

UserErrorExtensionMSIMissingPermissionsOnBackupStorageLocation

Przyczyna: Rozszerzenie kopii zapasowej powinno mieć rolę Współautor danych obiektu blob usługi Storage w lokalizacji magazynu kopii zapasowej (koncie magazynu). Tożsamość rozszerzenia pobiera tę rolę.

Zalecana akcja: jeśli brakuje tej roli, użyj witryny Azure Portal lub interfejsu wiersza polecenia, aby ponownie przypisać to brakujące uprawnienie na koncie magazynu.

UserErrorBackupStorageLocationNotReady

Przyczyna: Podczas instalacji rozszerzenia należy podać lokalizację magazynu kopii zapasowej jako dane wejściowe zawierające konto magazynu i kontener obiektów blob. Rozszerzenie Kopia zapasowa powinno mieć rolę Współautor danych obiektu blob usługi Storage w lokalizacji magazynu kopii zapasowej (koncie magazynu). Tożsamość rozszerzenia pobiera tę rolę.

Zalecana akcja: Błąd pojawia się, jeśli tożsamość rozszerzenia nie ma odpowiednich uprawnień dostępu do konta magazynu. Ten błąd pojawia się, jeśli rozszerzenie kopii zapasowej usługi AKS jest instalowane po raz pierwszy podczas konfigurowania operacji ochrony. Dzieje się tak przez czas potrzebny na propagowanie udzielonych uprawnień do rozszerzenia kopii zapasowej usługi AKS. Aby obejść ten problem, zaczekaj godzinę i spróbuj ponownie wykonać konfigurację ochrony. W przeciwnym razie użyj witryny Azure Portal lub interfejsu wiersza polecenia, aby ponownie przypisać to brakujące uprawnienie na koncie magazynu.

Błędy oparte na kopii zapasowej w magazynie

Ten kod błędu może pojawić się podczas włączania tworzenia kopii zapasowych usługi AKS w celu przechowywania kopii zapasowych w magazynie w standardowym magazynie danych.

DppUserErrorVaultTierPolicyNotSupported

Przyczyna: Ten kod błędu jest wyświetlany, gdy są tworzone zasady tworzenia kopii zapasowych z regułą przechowywania zdefiniowaną dla magazynu danych standardowego magazynu dla magazynu kopii zapasowych w regionie, w którym ten magazyn danych nie jest obsługiwany.

Zalecana akcja: Zaktualizuj regułę przechowywania przy użyciu standardowego czasu trwania magazynu zdefiniowanego w witrynie Azure Portal:

  1. Wybierz ikonę Edytuj obok reguły.

    Screenshot shows how to edit the retention duration of the AKS backups.

  2. Wyczyść pole wyboru obok pozycji Magazyn w warstwie Standardowa, a następnie wybierz pozycję Aktualizuj.

    Screenshot shows clearing the vault-standard checkbox.

  3. Utwórz zasady tworzenia kopii zapasowych dla kopii zapasowej warstwy operacyjnej (tylko migawki klastra usługi AKS).

Zadania tworzenia i przywracania kopii zapasowej usługi AKS zostały ukończone z ostrzeżeniami

UserErrorPVSnapshotDisallowedByPolicy

Kod błędu: UserErrorPVSnapshotDisallowedByPolicy

Przyczyna: Zasady platformy Azure są przypisywane w ramach subskrypcji, która kończy działanie sterownika CSI w celu utworzenia migawki woluminu.

Zalecana akcja: Usuń usługę Azure Policy, co spowoduje zaprzestanie operacji migawki dysku, a następnie wykonaj kopię zapasową na żądanie.

UserErrorPVSnapshotLimitReached

Kod błędu: UserErrorPVSnapshotLimitReached

Przyczyna: Istnieje ograniczona liczba migawek dla woluminu trwałego, które mogą istnieć w określonym momencie. W przypadku woluminów trwałych opartych na dyskach platformy Azure limit wynosi 500 migawek. Ten błąd pojawia się, gdy migawki dla określonych woluminów trwałych nie są wykonywane z powodu istnienia migawek wyższych niż obsługiwane limity.

Zalecana akcja: Zaktualizuj zasady kopii zapasowej, aby skrócić czas przechowywania i poczekać na usunięcie starszych punktów odzyskiwania przez magazyn kopii zapasowych.

CSISnapshottingTimedOut

Kod błędu: CSISnapshottingTimedOut

Przyczyna: Migawka nie powiodła się, ponieważ sterownik CSI jest przekraczany limit czasu pobierania uchwytu migawki.

Zalecana akcja: Przejrzyj dzienniki i spróbuj ponownie wykonać operację, aby pomyślnie wykonać migawki, uruchamiając kopię zapasową na żądanie lub poczekaj na następną zaplanowaną kopię zapasową.

UserErrorHookExecutionFailed

Kod błędu: UserErrorHookExecutionFailed

Przyczyna: Gdy punkty zaczepienia zastosowane do uruchomienia wraz z kopiami zapasowymi i przywracaniem napotkały błąd i nie zostały pomyślnie zastosowane.

Zalecana akcja: Przejrzyj dzienniki, zaktualizuj punkty zaczepienia, a następnie ponów próbę wykonania operacji tworzenia/przywracania kopii zapasowej.

UserErrorNamespaceNotFound

Kod błędu: UserErrorNamespaceNotFound

Przyczyna: brak przestrzeni nazw podanych w konfiguracji kopii zapasowej podczas wykonywania kopii zapasowych. Przestrzeń nazw została nieprawidłowo podana lub została usunięta.

Zalecana akcja: sprawdź, czy przestrzeń nazw do utworzenia kopii zapasowej jest poprawnie podana.

UserErrorPVCHasNoVolume

Kod błędu: UserErrorPVCHasNoVolume

Przyczyna: Trwałe oświadczenie woluminu (PVC) w kontekście nie ma dołączonego woluminu trwałego. W związku z tym kopia zapasowa PCW nie zostanie utworzona.

Zalecana akcja: Dołącz wolumin do PCV, jeśli ma zostać utworzona kopia zapasowa.

UserErrorPVCNotBoundToVolume

Kod błędu: UserErrorPVCNotBoundToVolume

Przyczyna: Element PVC w kontekście jest w stanie Oczekiwanie i nie ma dołączonego do niego trwałego woluminu. W związku z tym kopia zapasowa PCW nie zostanie utworzona.

Zalecana akcja: Dołącz wolumin do PCV, jeśli ma zostać utworzona kopia zapasowa.

UserErrorPVNotFound

Kod błędu: UserErrorPVNotFound

Przyczyna: brak bazowego nośnika magazynu dla woluminu trwałego.

Zalecana akcja: Sprawdź i dołączono nowy wolumin trwały z dołączonym rzeczywistym nośnikiem magazynu.

UserErrorStorageClassMissingForPVC

Kod błędu: UserErrorStorageClassMissingForPVC

Przyczyna: Usługa AKS sprawdza kopię zapasową używanej klasy magazynu i pomija trwały wolumin z tworzenia migawek z powodu niedostępności klasy.

Zalecana akcja: Zaktualizuj specyfikacje PVC za pomocą używanej klasy magazynu.

UserErrorSourceandTargetClusterCRDVersionMismatch

Kod błędu: UserErrorSourceandTargetClusterCRDVersionMismatch

Przyczyna: Źródłowy klaster usługi AKS i docelowy klaster AKS podczas przywracania mają różne wersje usług FlowSchema i PriorityLevelConfigurations. Niektóre zasoby kubernetes nie są przywracane z powodu niezgodności w wersjach klastra.

Zalecana akcja: użyj tej samej wersji klastra dla klastra docelowego co klaster źródłowy lub ręcznie zastosuj reguły ściągnięcia.

Następne kroki