Überprüfen Sie die Verbindung mit der Containerregistrierung.
Dieser Artikel ist Teil einer Serie. Beginnen Sie mit der Übersicht.
Um containerisierte Anwendungen erfolgreich in Ihrem Azure Kubernetes Service(AKS)-Cluster bereitstellen zu können, ist es wichtig, die Konnektivität zwischen dem Cluster und der Containerregistrierung zu überprüfen. Dieser Schritt gewährleistet, dass Ihre Arbeitsknoten über die erforderlichen Berechtigungen zum Pullen der erforderlichen Containerimages aus der Registrierung verfügen.
Identifizieren von Symptomen
Wenn das kubelet, das auf einem Agentknoten ausgeführt wird, die Container für einen Pod erstellt, kann es sein, dass ein oder mehrere Container aufgrund des ImagePullBackOff
-Fehlers im Wartezustand verbleiben. ImagePullBackoff ist eine häufige Fehlermeldung in Kubernetes, die angibt, dass das erforderliche Containerimage nicht aus einer öffentlichen oder privaten Registrierung abgerufen werden kann. Verschiedene Faktoren können diesen Fehler verursachen, z. B. Netzwerkkonnektivitätsprobleme, ein falscher Imagename oder ein falsches Tag, unzureichende Berechtigungen oder fehlende Anmeldeinformationen.
Der BackOff
-Teil des Status bedeutet, dass Kubernetes kontinuierlich versucht, das Image zu pullen, wobei die Verzögerung zwischen den einzelnen Versuchen zunimmt. Die Verzögerung erhöht sich schrittweise, bis ein vordefinierter Grenzwert erreicht wird, der in der Regel auf 300 Sekunden (5 Minuten) in Kubernetes festgelegt ist.
Es ist wichtig, den Namen der Registrierung und den Namen des Image auf Richtigkeit zu überprüfen. Stellen Sie außerdem sicher, dass Ihr AKS-Cluster über die erforderlichen Berechtigungen zum Pullen von Images aus der entsprechenden Containerregistrierung verfügt.
Rollenzuweisungen
Wenn Sie eine Containerregistrierung an einen vorhandenen AKS-Cluster anfügen, wird die AcrPull-Rolle automatisch über die Registrierung der von Microsoft Entra verwalteten Identität zugewiesen, die den Agentpools in Ihrem AKS-Cluster zugeordnet ist. Weitere Informationen finden Sie unter Von AKS aus Authentifizieren mit einer Azure Container Registry.
Führen Sie den folgenden Befehl aus, um die verwaltete Kubelet-Identität eines Kubernetes-Clusters und deren aktuelle Rollenzuweisungen abzurufen:
# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table
Führen Sie folgenden Befehl aus, um der verwalteten AKS-Identität die Rolle AcrPull
zuzuweisen:
AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull
Behandeln von Problemen mit Azure Container Registry
Die folgenden Abschnitte enthalten Leitfäden, die Sie zu Rate ziehen können, wenn Netzwerk-, Anmelde- oder Leistungsprobleme bei einer Azure Container Registry-Instanz auftreten.
Behandlung von Netzwerkproblemen
Wenn Problemen im Zusammenhang mit dem Zugriff auf eine Azure Container Registry-Instanz in einem virtuellen Netzwerk oder hinter einer Firewall oder einem Proxy-Server auftreten: ziehen Sie folgende Lösungen in Betracht:
- Konfigurieren Sie den Zugriff über die Clientfirewall.
- Konfigurieren Sie den öffentlichen Zugriff auf die Registrierung.
- Konfigurieren Sie den Zugriff auf virtuelle Netzwerke.
- Konfigurieren Sie den Zugriff für Dienste
Beheben von Problemen bei der Anmeldung
Wenn beim Anmelden bei Azure Container Registry Authentifizierungs- und Autorisierungsprobleme auftreten, sollten Sie die folgenden Lösungen in Betracht ziehen:
- Überprüfen Sie die Docker-Konfiguration in Ihrer Umgebung.
- Geben Sie den richtigen Registrierungsnamen ein.
- Überprüfen Sie die Anmeldeinformationen für den Zugriff auf die Registrierung.
- Konfigurieren Sie den öffentlichen Zugriff auf die Registrierung.
- Beheben Sie Probleme mit der Anmeldung.
- Überprüfen, ob Anmeldeinformationen abgelaufen sind.
Behandeln von Leistungsproblemen
Wenn Leistungsprobleme bei einer Azure Container Registry-Instanz auftreten, sollten Sie die folgenden Lösungen in Betracht ziehen:
- Aktivieren Sie den Artefaktcache.
- Überprüfen Sie die Netzwerkverbindungsgeschwindigkeit.
- Überprüfen Sie die Clienthardware, die sich auf die Geschwindigkeit der Komprimierung Extraktion auf Image-Ebene auswirken kann.
- Überprüfen Sie die konfigurierten Grenzwerte in der Registrierungsdienstebene oder Umgebung.
- Konfigurieren Sie die georeplizierte Registrierung für eine optimale Leistung mit Replikaten in nahe gelegenen Regionen.
- Optimieren Sie die DNS-Konfiguration für das Pullen aus einem geografisch entfernten Registrierungsreplikat.
Diese Leitfäden können Ihnen helfen, einen nahtlosen Imageabruf für Ihren AKS-Cluster und einen reibungslosen Betrieb Ihrer Workloads sicherzustellen.
Integrieren der Containerregistrierung eines Drittanbieters
Wenn Sie eine Containerregistrierung eines Drittanbieters verwenden, müssen Sie die entsprechenden ImagePullSecret
-Anmeldeinformationen für die Registrierung erstellen, damit Ihr AKS-Cluster sicher auf die Containerimages zugreifen kann. Weitere Informationen finden Sie unter Erstellen eines Geheimnisses zum Pullen von Images. Stellen Sie sicher, dass Sie die richtigen Berechtigungen und Anmeldeinformationen eingerichtet haben, damit Sie die Verbindung mit der Containerregistrierung überprüfen und ihrem AKS-Cluster ermöglichen können, die erforderlichen Containerimages während der Bereitstellungen erfolgreich zu pullen. Diese bewährte Methode trägt dazu bei, eine reibungslose und zuverlässige Ausführung Ihrer containerisierten Workloads in Kubernetes zu gewährleisten.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Paolo Salvatori | Principal Customer Engineer
- Francis Simy Nazareth | Senior Technical Specialist
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.