Freigeben über


Problembehandlung für die Erweiterung für die verbundene Registry

In diesem Artikel werden einige allgemeine Fehlermeldungen erläutert, die Sie beim Installieren oder Aktualisieren der Erweiterung für die verbundene Registry Arc-fähige Kubernetes-Cluster möglicherweise erhalten.

Installation der Erweiterung für die verbundene Registry

Die Erweiterung für die verbundene Registry wird als Helm-Chart veröffentlicht und über Helm V3 installiert. Alle Komponenten der Erweiterung für die verbundene Registry werden im Namespace connected-registry installiert. Sie können den Status der Erweiterung mithilfe der folgenden Befehle überprüfen.

# 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'

Häufige Fehler

Fehler: Ein noch verwendeter Name kann nicht wiederverwendet werden.

Dieser Fehler bedeutet, dass der von Ihnen angegebene Name der Erweiterung bereits vorhanden ist. Wenn der Name bereits verwendet wird, müssen Sie einen anderen Namen verwenden.

Fehler: Im Namespace connected-registry kann kein neuer Inhalt erstellt werden, weil er zurzeit beendet wird.

Dieser Fehler tritt auf, wenn ein Deinstallationsvorgang nicht abgeschlossen und ein weiterer Installationsvorgang ausgelöst wird. Sie können mit dem Befehl az k8s-extension show den Bereitstellungsstatus der Erweiterung überprüfen und sicherstellen, dass die Erweiterung deinstalliert wurde, bevor Sie weitere Aufgaben ausführen.

Fehler: Fehler beim Herunterladen des Charts, Pfad nicht gefunden

Dieser Fehler tritt auf, wenn Sie die falsche Erweiterungsversion angeben. Sie müssen sicherstellen, dass die angegebene Version vorhanden ist. Wenn Sie die neueste Version verwenden möchten, müssen Sie --version nicht angeben.

Häufige Szenarien

Szenario 1: Bei der Installation tritt ein Fehler auf, aber es wird keine Fehlermeldung angezeigt.

Wenn die Erweiterung beim Erstellen oder Aktualisieren eine Fehlermeldung generiert, können Sie überprüfen, wo bei der Erstellung der Erweiterung ein Fehler aufgetreten ist, indem Sie den Befehl az k8s-extension list ausführen:

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

Lösung: Neustarten des Clusters, Registrieren des Dienstanbieters oder Löschen und Neuinstallieren der verbundenen Registry

Probieren Sie die folgenden Methoden aus, um dieses Problem zu beheben:

  • Starten Sie den Arc Kubernetes-Cluster neu.

  • Registrieren Sie den KubernetesConfiguration-Dienstanbieter.

  • Erzwingen Sie das Löschen, und installieren Sie die Erweiterung für die verbundene Registry neu.

Szenario 2: Die Zielversion der verbundenen Registry ist nicht vorhanden.

Wenn Sie versuchen, die Erweiterung für die verbundene Registry für eine bestimmte Version zu installieren, erhalten Sie eine Fehlermeldung mit dem Hinweis, dass die Version der verbundenen Registry nicht vorhanden ist.

Lösung: Erneutes Installieren für eine unterstützte Version der verbundenen Registry

Versuchen Sie erneut, die Erweiterung zu installieren. Stellen Sie sicher, dass Sie eine unterstützte Version der verbundenen Registry verwenden.

Häufige Probleme

Problem: Die Erweiterungserstellung bleibt im Ausführungszustand hängen.

Möglichkeit 1: Problem mit persistenten Volumeansprüchen (Persistent Volume Claim, PVC)

  • Überprüfen Sie den Status der PVC für die verbundene Registry:
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc

Der Wert von Phase unter Status sollte gebunden lauten. Wenn er weiterhin ausstehend lautet, löschen Sie die Erweiterung.

  • Überprüfen Sie, ob sich die gewünschte Speicherklasse in Ihrer Liste der Speicherklassen befindet:
kubectl get storageclass --all-namespaces
  • Falls nicht, erstellen Sie die Erweiterung neu, und fügen Sie Folgendes hinzu:
--config pvc.storageClassName=”standard”` 
  • Alternativ könnte das Problem sein, dass nicht genügend Platz für den PVC vorhanden ist. Erstellen Sie die Erweiterung mit dem Parameter neu:
--config pvc.storageRequest=”250Gi”` 

Möglichkeit 2: Unzulässige Verbindungszeichenfolge

  • Überprüfen Sie die Protokolle auf den Pod für die verbundene Registry:
kubectl get pod -n connected-registry
  • Kopieren Sie den Namen des Pods der verbundenen Registry (z. B. „connected-registry-8d886cf7f-w4prp“), und fügen Sie ihn in den folgenden Befehl ein:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
  • Wenn die folgende Fehlermeldung angezeigt wird, ist die Verbindungszeichenfolge der verbundenen Registry unzulässig:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}' 
  • Stellen Sie sicher, dass die Datei protected-settings-extension.json erstellt wurde:
cat protected-settings-extension.json
  • Generieren Sie bei Bedarf die Datei protected-settings-extension.json erneut.
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
  • Aktualisieren Sie die Erweiterung, um die neue Verbindungszeichenfolge einzuschließen:
az k8s-extension update \ 
--cluster-name <myarck8scluster> \ 
--cluster-type connectedClusters \ 
--name <myconnectedregistry> \ 
-g <myresourcegroup> \ 
--config-protected-file protected-settings-extension.json

Problem: Die Erweiterung wurde erstellt, aber die verbundene Registry hat nicht den Status „Online“.

Möglichkeit 1: Die vorherige verbundene Registry wurde nicht deaktiviert.

Dieses Szenario tritt häufig auf, wenn eine vorherige Erweiterung für die verbundene Registry gelöscht und eine neue für dieselbe verbundene Registry erstellt wurde.

  • Überprüfen Sie die Protokolle auf den Pod für die verbundene Registry:
kubectl get pod -n connected-registry
  • Kopieren Sie den Namen des Pods der verbundenen Registry (z. B. „connected-registry-xxxxxxxxx-xxxxx“), und fügen Sie ihn in den folgenden Befehl ein:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
  • Wenn die folgende Fehlermeldung angezeigt wird, muss die verbundene Registry deaktiviert werden:

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."}]}'

  • Führen Sie zum Deaktivieren den folgenden Befehl aus:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>

Nach einigen Minuten sollte der Pod der verbundenen Registry neu erstellt werden, und der Fehler sollte nicht mehr angezeigt werden.

Aktivieren der Protokollierung

  • Führen Sie den Befehl [az acr connected-registry update] aus, um die Erweiterung für die verbundene Registry mit dem Debugprotokollgrad zu aktualisieren:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
  • Die folgenden Protokollgrade können für die Problembehandlung verwendet werden:

    • Debuggen enthält detaillierte Informationen zu Debugzwecken.

    • Info enthält allgemeine Informationen zu Debugzwecken.

    • Warnung zeigt potenzielle Probleme an, die noch keine Fehler sind, werden aber möglicherweise zu welchen werden, wenn keine entsprechende Aktion ausgeführt wird.

    • Fehler protokolliert Fehler, die verhindern, dass ein Vorgang abgeschlossen wird.

    • Keine deaktiviert die Protokollierung, sodass keine Protokollnachrichten geschrieben werden.

  • Passen Sie die Protokollebene nach Bedarf an, um das Problem zu beheben.

Die aktive Auswahl bietet weitere Optionen, um die Ausführlichkeit von Protokollen beim Debuggen von Problemen mit einer verbundenen Registry anzupassen. Die folgenden Optionen sind verfügbar:

Der Protokolliergrad der verbundenen Registry ist spezifisch für die Vorgänge der verbundenen Registry und bestimmt den Schweregrad der Nachrichten, die von der verbundenen Registry behandelt werden. Diese Einstellung wird verwendet, um das Protokollierungsverhalten der verbundenen Registry selbst zu verwalten.

--log-level legt den Protokolliergrad für die Instanz fest. Der Protokolliergrad bestimmt den Schweregrad von Nachrichten, die von der Protokollierung behandelt werden. Durch Festlegen des Protokolliergrads können Sie Nachrichten herausfiltern, die unter einem bestimmten Schweregrad liegen. Wenn Sie beispielsweise den Protokolliergrad auf „Warnung“ festlegen, behandelt die Protokollierung Warnungen, Fehler und kritische Meldungen, ignoriert jedoch Informationen und Debugmeldungen.

Der Protokolliergrad „az cli“ steuert die Ausführlichkeit der Ausgabemeldungen während des Azure CLI-Vorgangs. Die Azure CLI (az) bietet mehrere Ausführlichkeitsoptionen für Protokollgrade, die angepasst werden können, um die Menge der Ausgabeinformationen während des Vorgangs zu steuern:

Mit --verbose wird die Ausführlichkeit der Protokolle erhöht. Sie enthalten detailliertere Informationen als mit der Standardeinstellung. Dies kann hilfreich sein, um Probleme zu identifizieren.

--debug- ermöglicht vollständige Debugprotokolle. Debugprotokolle enthalten die detailliertesten Informationen, einschließlich aller Informationen, die mit dem Grad „Ausführlich“ bereitgestellt werden, sowie weitere Details zur Diagnose von Problemen.

Nächste Schritte