Diagnostizieren von Verbindungsproblemen für Kubernetes-Cluster mit Azure Arc-Unterstützung

Wenn Probleme beim Verbinden eines Clusters mit Azure Arc auftreten, liegt dies wahrscheinlich an einem der hier aufgeführten Probleme. Wir stellen zwei Flussdiagramme mit Hilfestellungen bereit: eins für den Fall, dass Sie keinen Proxyserver verwenden, und eins für den Fall, dass Ihre Netzwerkverbindung einen Proxyserver verwendet.

Tipp

Die Schritte in diesem Flussdiagramm gelten unabhängig davon, ob Sie die Azure CLI oder Azure PowerShell verwenden, um eine Verbindung mit Ihrem Cluster herzustellen. Für einige Schritte ist jedoch die Verwendung der Azure CLI erforderlich. Wenn Sie die Azure CLI noch nicht installiert haben, holen Sie das unbedingt nach, bevor Sie beginnen.

Verbindungen ohne Proxy

Diagnostizieren Sie mithilfe dieses Flussdiagramms Ihr Problem, wenn Sie versuchen, einen Cluster ohne Proxyserver mit Azure Arc zu verbinden. Weitere Einzelheiten zu den einzelnen Schritten finden Sie im Anschluss.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

Verfügt die Azure-Identität über ausreichende Berechtigungen?

Überprüfen Sie die Voraussetzungen für die Verbindung mit einem Cluster, und stellen Sie sicher, dass die Identität, die Sie zum Herstellen einer Verbindung mit dem Cluster verwenden, über die erforderlichen Berechtigungen verfügt.

Verwenden Sie die neueste Version der Azure-Befehlszeilenschnittstelle?

Stellen Sie sicher, dass Sie die neueste Version installiert haben.

Wenn Sie Ihren Cluster mithilfe von Azure PowerShell verbunden haben, stellen Sie sicher, dass Sie die aktuelle Version ausführen.

Verwenden Sie die aktuelle Version der connectedk8s-Erweiterung?

Aktualisieren Sie die Azure CLI-Erweiterung connectedk8s auf die neueste Version, indem Sie den folgenden Befehl ausführen:

az extension update --name connectedk8s

Wenn Sie die Erweiterung noch nicht installiert haben, können Sie dazu den folgenden Befehl ausführen:

az extension add --name connectedk8s

Verweist kubeconfig auf den richtigen Cluster?

Führen Sie kubectl config get-contexts aus, um den Namen des Zielkontexts zu bestätigen. Legen Sie dann den Standardkontext auf den richtigen Cluster fest, indem Sie kubectl config use-context <target-cluster-name> ausführen.

Sind alle erforderlichen Ressourcenanbieter registriert?

Stellen Sie sicher, dass die Ressourcenanbieter Microsoft.Kubernetes, Microsoft.KubernetesConfiguration und Microsoft.ExtendedLocation registriert sind.

Sind alle Netzwerkanforderungen erfüllt?

Überprüfen Sie die Netzwerkanforderungen, und stellen Sie sicher, dass keine erforderlichen Endpunkte blockiert werden.

Werden alle Pods im azure-arc-Namespace ausgeführt?

Wenn alles ordnungsgemäß funktioniert, sollten sich Ihre Pods im Zustand Running befinden. Führen Sie kubectl get pods -n azure-arc aus, um zu überprüfen, ob der Zustand eines Pods nicht Running lautet.

Treten weiterhin Probleme auf?

Mit den oben genannten Schritten können viele allgemeine Verbindungsprobleme behoben werden. Wenn Sie jedoch immer noch keine Verbindung herstellen können, generieren Sie eine Problembehandlungsprotokolldatei, und öffnen Sie dann eine Supportanfrage, damit wir das Problem weiter untersuchen können.

Führen Sie den folgenden Befehl aus, um die Protokolldatei zur Problembehandlung zu generieren:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Wenn Sie eine Supportanfrage erstellen, verwenden Sie im Abschnitt Zusätzliche Details die Option Dateiupload, um die generierte Protokolldatei hochzuladen.

Verbindungen mit einem Proxyserver

Wenn Sie auf mindestens einem Computer einen Proxyserver verwenden, führen Sie die ersten fünf Schritte des Flussdiagramms für das Szenario ohne Proxyserver (über die Registrierung des Ressourcenanbieters) aus. Dies sind grundlegende Schritte zur Problembehandlung. Sollten dann weiterhin Probleme auftreten, finden Sie im nächsten Flussdiagramm weitere Schritte zur Problembehandlung. Weitere Einzelheiten zu den einzelnen Schritten finden Sie im Anschluss.

Flowchart showing a visual representation of checking for connection issues when using a proxy.

Führt der Computer Befehle hinter einem Proxyserver aus?

Wenn der Computer Befehle hinter einem Proxyserver ausführt, müssen Sie alle erforderlichen Umgebungsvariablen festlegen. Informationen finden Sie unter Herstellen einer Verbindung mithilfe eines ausgehenden Proxyservers.

Beispiel:

export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"

Akzeptiert der Proxyserver nur vertrauenswürdige Zertifikate?

Achten Sie darauf, dass Sie den Zertifikatdateipfad einschließen, indem Sie --proxy-cert <path-to-cert-file> beim Ausführen des Befehls az connectedk8s connect einfügen.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

Kann der Proxyserver die erforderlichen Netzwerkendpunkte erreichen?

Überprüfen Sie die Netzwerkanforderungen, und stellen Sie sicher, dass keine erforderlichen Endpunkte blockiert werden.

Verwendet der Proxyserver nur HTTP?

Wenn Ihr Proxyserver nur HTTP verwendet, können Sie proxy-http für beide Parameter verwenden.

Wenn Ihr Proxyserver sowohl mit HTTP als auch mit HTTPS eingerichtet ist, führen Sie den Befehl az connectedk8s connect aus, und geben Sie dabei die Parameter --proxy-https und --proxy-http an. Stellen Sie sicher, dass Sie --proxy-http für den HTTP-Proxy und --proxy-https für den HTTPS-Proxy verwenden.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>  

Erfordert der Proxyserver Auslassungsbereiche für die Kommunikation zwischen Diensten?

Wenn Sie Auslassungsbereiche benötigen, verwenden Sie --proxy-skip-range <excludedIP>,<excludedCIDR> im Befehl az connectedk8s connect.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>

Werden alle Pods im azure-arc-Namespace ausgeführt?

Wenn alles ordnungsgemäß funktioniert, sollten sich Ihre Pods im Zustand Running befinden. Führen Sie kubectl get pods -n azure-arc aus, um zu überprüfen, ob der Zustand eines Pods nicht Running lautet.

Treten weiterhin Probleme auf?

Mit den oben genannten Schritten können viele allgemeine Verbindungsprobleme behoben werden. Wenn Sie jedoch immer noch keine Verbindung herstellen können, generieren Sie eine Problembehandlungsprotokolldatei, und öffnen Sie dann eine Supportanfrage, damit wir das Problem weiter untersuchen können.

Führen Sie den folgenden Befehl aus, um die Protokolldatei zur Problembehandlung zu generieren:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Wenn Sie eine Supportanfrage erstellen, verwenden Sie im Abschnitt Zusätzliche Details die Option Dateiupload, um die generierte Protokolldatei hochzuladen.

Nächste Schritte