Udostępnij za pośrednictwem


Rozwiązywanie problemów z rozszerzeniem połączonego rejestru

W tym artykule omówiono niektóre typowe komunikaty o błędach, które mogą być wyświetlane podczas instalowania lub aktualizowania połączonego rozszerzenia rejestru dla klastrów Kubernetes z włączoną usługą Arc.

Jak zainstalowano połączone rozszerzenie rejestru

Połączone rozszerzenie rejestru jest wydawane jako pakiet helm i instalowane przez program Helm w wersji 3. Wszystkie składniki połączonego rozszerzenia rejestru są instalowane w przestrzeni nazw połączonego rejestru . Aby sprawdzić stan rozszerzenia, możesz użyć następujących poleceń.

# get the extension status 
az k8s-extension show --name <extension-name>  
# check status of all pods of connected registry extension 
kubectl get pod -n connected-registry    
# get events of the extension 
kubectl get events -n connected-registry   --sort-by='.lastTimestamp'

Typowe błędy

Błąd: nie można ponownie użyć nazwy, która jest nadal używana

Ten błąd oznacza, że określona nazwa rozszerzenia już istnieje. Jeśli nazwa jest już używana, musisz użyć innej nazwy.

Błąd: nie można utworzyć nowej zawartości w połączonym rejestrze przestrzeni nazw, ponieważ jest ona przerywana

Ten błąd występuje, gdy operacja odinstalowywania nie zostanie zakończona, a kolejna operacja instalacji zostanie wyzwolona. Możesz uruchomić polecenie az k8s-extension show, aby sprawdzić stan aprowizacji rozszerzenia i upewnić się, że rozszerzenie zostało odinstalowane przed podjęciem innych akcji.

Błąd: nie można pobrać, nie znaleziono ścieżki pakietu

Ten błąd występuje, gdy określisz nieprawidłową wersję rozszerzenia. Musisz upewnić się, że określona wersja istnieje. Jeśli chcesz użyć najnowszej wersji, nie musisz określać elementu --version.

Typowe scenariusze

Scenariusz 1. Instalacja kończy się niepowodzeniem, ale nie wyświetla komunikatu o błędzie

Jeśli rozszerzenie generuje komunikat o błędzie podczas jego tworzenia lub aktualizowania, możesz sprawdzić, gdzie tworzenie nie powiodło się, uruchamiając az k8s-extension list polecenie :

az k8s-extension list \ 
--resource-group <my-resource-group-name> \ 
--cluster-name <my-cluster-name> \ 
--cluster-type connectedClusters

Rozwiązanie: Uruchom ponownie klaster, zarejestruj dostawcę usług lub usuń i ponownie zainstaluj połączony rejestr

Aby rozwiązać ten problem, wypróbuj następujące metody:

  • Uruchom ponownie klaster Usługi Arc Kubernetes.

  • Zarejestruj dostawcę usługi KubernetesConfiguration.

  • Wymuś usunięcie i ponowne zainstalowanie połączonego rozszerzenia rejestru.

Scenariusz 2. Docelowa wersja rejestru połączonego nie istnieje

Podczas próby zainstalowania połączonego rozszerzenia rejestru w celu konkretnej wersji zostanie wyświetlony komunikat o błędzie informujący, że połączona wersja rejestru nie istnieje.

Rozwiązanie: Zainstaluj ponownie dla obsługiwanej wersji połączonego rejestru

Spróbuj ponownie zainstalować rozszerzenie. Upewnij się, że używasz obsługiwanej wersji połączonego rejestru.

Typowe problemy

Problem: Tworzenie rozszerzenia zablokowane w stanie uruchomienia

Możliwość 1: Problem z trwałym oświadczeniem woluminu (PVC)

  • Sprawdzanie stanu połączonego rejestru PVC
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc

Wartość fazy w stanie powinna być powiązana. Jeśli nie zmieni się z oczekujących, usuń rozszerzenie.

  • Sprawdź, czy żądana klasa magazynu znajduje się na liście klas magazynu:
kubectl get storageclass --all-namespaces
  • Jeśli nie, utwórz ponownie rozszerzenie i dodaj
--config pvc.storageClassName=”standard”` 
  • Alternatywnie może to być problem z brakiem wystarczającej ilości miejsca na PVC. Ponowne utworzenie rozszerzenia za pomocą parametru
--config pvc.storageRequest=”250Gi”` 

Możliwość 2: Parametry połączenia są złe

  • Sprawdź dzienniki połączonego zasobnika rejestru:
kubectl get pod -n connected-registry
  • Skopiuj nazwę połączonego zasobnika rejestru (np. "connected-registry-8d886cf7f-w4prp") i wklej ją do następującego polecenia:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
  • Jeśli zostanie wyświetlony następujący komunikat o błędzie, parametry połączenia połączonego rejestru jest nieprawidłowe:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}' 
  • Upewnij się, że utworzono plik protected-settings-extension.json
cat protected-settings-extension.json
  • W razie potrzeby ponownie wygeneruj protected-settings-extension.json
cat << EOF > protected-settings-extension.json  
{ 
"connectionString": "$(az acr connected-registry get-settings \ 
--name myconnectedregistry \ 
--registry myacrregistry \ 
--parent-protocol https \ 
--generate-password 1 \ 
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)" 
} 
EOF
  • Aktualizowanie rozszerzenia w celu uwzględnienia nowego parametry połączenia
az k8s-extension update \ 
--cluster-name <myarck8scluster> \ 
--cluster-type connectedClusters \ 
--name <myconnectedregistry> \ 
-g <myresourcegroup> \ 
--config-protected-file protected-settings-extension.json

Problem: Utworzono rozszerzenie, ale połączony rejestr nie jest stanem "Online"

Możliwość 1: Poprzedni połączony rejestr nie został zdezaktywowany

Ten scenariusz występuje często, gdy poprzednie połączone rozszerzenie rejestru zostało usunięte, a nowy został utworzony dla tego samego połączonego rejestru.

  • Sprawdź dzienniki połączonego zasobnika rejestru:
kubectl get pod -n connected-registry
  • Skopiuj nazwę połączonego zasobnika rejestru (np. "connected-registry-xxxxxxx-xxxxx") i wklej ją w następującym poleceniu:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
  • Jeśli zostanie wyświetlony następujący komunikat o błędzie, należy dezaktywować połączony rejestr:

Response: '{"errors":[{"code":"ALREADY_ACTIVATED","message":"Failed to activate the connected registry as it is already activated by another instance. Only one instance is supported at any time.","detail":"Please visit https://aka.ms/acr#ALREADY_ACTIVATED for more information."}]}'

  • Uruchom następujące polecenie, aby dezaktywować:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>

Po kilku minutach połączony zasobnik rejestru powinien zostać ponownie utworzony, a błąd powinien zniknąć.

Włącz rejestrowanie

  • Uruchom polecenie [az acr connected-registry update], aby zaktualizować połączone rozszerzenie rejestru przy użyciu poziomu dziennika debugowania:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
  • Do pomocy w rozwiązywaniu problemów można zastosować następujące poziomy dziennika:

    • Debugowanie zawiera szczegółowe informacje na potrzeby debugowania.

    • Informacje zawierają ogólne informacje na potrzeby debugowania.

    • Ostrzeżenie wskazuje potencjalne problemy, które nie są jeszcze błędami, ale mogą stać się jednym, jeśli nie zostanie podjęta żadna akcja.

    • Błędy rejestrują błędy, które uniemożliwiają ukończenie operacji.

    • Brak wyłącza rejestrowanie, więc nie są zapisywane żadne komunikaty dziennika.

  • Dostosuj poziom dziennika zgodnie z potrzebami, aby rozwiązać problem.

Aktywny wybór zapewnia więcej opcji dostosowywania szczegółowości dzienników podczas debugowania problemów z połączonym rejestrem. Dostępne są następujące opcje:

Poziom dziennika rejestru połączonego jest specyficzny dla operacji połączonego rejestru i określa ważność komunikatów obsługiwanych przez połączony rejestr. To ustawienie służy do zarządzania zachowaniem rejestrowania samego połączonego rejestru.

--log-level ustaw poziom dziennika w wystąpieniu. Poziom dziennika określa ważność komunikatów obsługiwanych przez rejestrator. Ustawiając poziom dziennika, można odfiltrować komunikaty, które są poniżej określonej ważności. Jeśli na przykład ustawisz poziom dziennika na "ostrzeżenie", rejestrator obsługuje ostrzeżenia, błędy i komunikaty krytyczne, ale ignoruje informacje i komunikaty debugowania.

Poziom dziennika az cli steruje szczegółowością komunikatów wyjściowych podczas działania interfejsu wiersza polecenia platformy Azure. Interfejs wiersza polecenia platformy Azure (az) udostępnia kilka opcji szczegółowości poziomów dziennika, które można dostosować w celu kontrolowania ilości informacji wyjściowych podczas jej operacji:

--verbose zwiększa szczegółowość dzienników. Zawiera on bardziej szczegółowe informacje niż ustawienie domyślne, które może być przydatne do identyfikowania problemów.

--debug umożliwia pełne dzienniki debugowania. Dzienniki debugowania zawierają najbardziej szczegółowe informacje, w tym wszystkie informacje podane na poziomie "pełne" oraz więcej szczegółów przeznaczonych do diagnozowania problemów.

Następne kroki