Udostępnij za pośrednictwem


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, 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, umożliwiając wystarczającą ilość zasobów obliczeniowych i pamięci, które będą dostępne dla zasobników do zduplikowania. 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 uzyskiwanie dostępu do punktu końcowego usługi Azure Instance Metadata Service (IMDS) nie są przechwytywane 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. Pobierz istniejący niestandardowy kod YAML CoreDNS w klastrze (zapisz go w lokalizacji lokalnej, aby uzyskać informacje później):

    kubectl get configmap coredns-custom -n kube-system -o yaml
    
  2. Zastąp mapowanie punktu końcowego centralus DP na publiczny adres IP (użyj poniższego kodu YAML):

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: coredns-custom 
      namespace: kube-system
    data:
        aksdp.override: |
              hosts { 
                  20.40.200.153 centralus.dp.kubernetesconfiguration.azure.com
                  fallthrough
               }
    

    Teraz uruchom poniższe polecenie, aby zastosować plik yaml aktualizacji:

    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 NSlookup zasobnika 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.

BackupPluginPodRestartedDuringBackupError

Przyczyna: Zasobnik rozszerzenia kopii zapasowej (dataprotection-microsoft-kubernetes-agent) w klastrze usługi AKS ma niestabilność z powodu niewystarczającej ilości zasobów procesora CPU/pamięci w bieżącym węźle, co prowadzi do zdarzeń oOM (poza pamięcią). Może to być spowodowane niższymi obliczeniami żądanymi przez zasobnik rozszerzenia kopii zapasowej.

Zalecana akcja: Aby rozwiązać ten problem, zalecamy zwiększenie wartości obliczeniowych przydzielonych do tego zasobnika. Dzięki temu zostanie ona automatycznie aprowizowana w innym węźle w klastrze usługi AKS z dostępnymi zasobami obliczeniowymi.

Bieżąca wartość obliczeniowa dla tego zasobnika to:

resources.requests.cpu to 500m resources.requests.memory to 128Mi kindly modyfikują alokację pamięci na 512Mi, aktualizując parametr "resources.requests.memory". Jeśli problem będzie się powtarzać, zaleca się zwiększenie parametru "resources.requests.cpu" do 900m, opublikuj alokację pamięci. Możesz zwiększyć wartości parametrów, wykonując następujące kroki:

  1. Przejdź do bloku klastra usługi AKS w witrynie Azure Portal.
  2. Kliknij pozycję "Extensions+Applications" i wybierz rozszerzenie "azure-aks-backup".
  3. Zaktualizuj ustawienia konfiguracji w portalu, dodając następującą parę klucz-wartość. resources.requests.cpu 900m resources.requests.memory 512Mi

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.

UserErrorSnapshotResourceGroupHasLocks

Przyczyna: Ten kod błędu jest wyświetlany, gdy zastosowano blokadę usuwania lub odczytu w grupie zasobów migawki podanej jako dane wejściowe rozszerzenia kopii zapasowej.

Zalecana akcja: jeśli konfigurujesz nowe wystąpienie kopii zapasowej, użyj grupy zasobów bez usunięcia lub blokady odczytu. Jeśli wystąpienie kopii zapasowej zostało już skonfigurowane, usuń blokadę z grupy zasobów migawki.

Błędy oparte na kopii zapasowej w magazynie

Te kody błędów mogą pojawić się podczas włączania tworzenia kopii zapasowych usługi AKS w celu przechowywania kopii zapasowych 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.

    Zrzut ekranu przedstawiający sposób edytowania czasu przechowywania kopii zapasowych usługi AKS.

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

    Zrzut ekranu przedstawiający wyczyszczenie pola wyboru magazynu w warstwie Standardowa.

  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 PCV 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 PCV 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.

LinkedAuthorizationFailed

Kod błędu: LinkedAuthorizationFailed

Przyczyna: Aby wykonać operację przywracania, użytkownik musi mieć uprawnienie do odczytu w klastrze usługi AKS.

Zalecana akcja: Przypisz rolę czytelnika w źródłowym klastrze usługi AKS, a następnie przejdź do wykonania operacji przywracania.

Następne kroki