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.
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.
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
- Sehen Sie sich weitere Tipps zur Problembehandlung bei der Verwendung von Kubernetes mit Azure Arc-Unterstützung an.
- Sehen Sie sich den Prozess zum Verbinden eines vorhandenen Kubernetes-Clusters mit Azure Arc an.