Problembehandlung bei Verbindungen mit Endpunkten außerhalb des virtuellen Netzwerks
In diesem Artikel wird erläutert, wie Sie Verbindungen mit Endpunkten außerhalb des virtuellen Netzwerks (d. h. über das öffentliche Internet) von einem Microsoft Azure Kubernetes Service (AKS)-Cluster beheben.
Voraussetzungen
Das Client-URL-Tool (curl).
Das Kubernetes-Kubectl-Tool oder ein ähnliches Tool zum Herstellen einer Verbindung mit dem Cluster. Führen Sie zum Installieren von Kubectl mithilfe der Azure CLI den Befehl "az aks install-cli " aus.
Checkliste zur Problembehandlung
Ist das Problem dauerhaft?
Schritt 1: Grundlegende Problembehandlung durchführen
Stellen Sie sicher, dass Sie eine Verbindung mit öffentlichen Endpunkten im Internet herstellen können. Anweisungen finden Sie unter Grundlegende Problembehandlung für ausgehende AKS-Clusterverbindungen.
Schritt 2: Ermitteln des ausgehenden Typs für den AKS-Cluster
Um den ausgehenden Typ des AKS-Clusters zu identifizieren, führen Sie den Befehl "az aks show " aus:
az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"
Wenn der ausgehende Typ lautet loadBalancer
, gibt es keine Routentabelle, es sei denn, Sie verwenden kubenet-Netzwerk . Wenn Sie Kubenet verwenden, stellen Sie sicher, dass die Standardroutentabelle keine zusätzliche Konfiguration aufweist, die ausgehende Internetverbindung blockiert. Wenn Sie ein anderes Netzwerk wie Azure CNI, Dynamic Allocation oder Azure CNI Overlay verwenden, wird standardmäßig keine Routentabelle erstellt. Stellen Sie in diesem Fall sicher, dass die NSG (Netzwerksicherheitsgruppe) keine benutzerdefinierte Konfiguration aufweist, die die ausgehende Internetverbindung blockiert.
Wenn der ausgehende Typ lautet userDefinedRouting
, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
Das Ausgangsgerät (Firewall oder Proxy) ist erreichbar.
Das Ausgangsgerät ermöglicht den erforderlichen ausgehenden Datenverkehr aus dem Cluster.
Um die Liste der FQDNs abzurufen, die für Ihren AKS-Cluster zulässig sind, führen Sie den Befehl "az aks egress-endpoints list " aus:
az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
Wenn der ausgehende Typ lautet managedNATGateway
, überprüfen Sie, ob das AKS-Subnetz dem NAT-Gateway zugeordnet ist, indem Sie den Befehl "az network nat gateway show " ausführen:
az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"
Weitere Informationen zur Verwendung eines NAT-Gateways zusammen mit AKS finden Sie unter Verwaltetes NAT-Gateway.
Schritt 3: Überprüfen der curl-Ausgabe, wenn Sie eine Verbindung mit dem Anwendungs pod herstellen
Die Curl-Antwortcodes können Ihnen dabei helfen, den Problemtyp zu identifizieren. Nachdem der Antwortcode verfügbar ist, versuchen Sie, besser zu verstehen, wie sich das Problem verhält. Weitere Informationen zu den HTTP-Statuscodes und dem zugrunde liegenden Verhalten des Problems finden Sie in der folgenden Tabelle.
Informationsquelle | Verknüpfung |
---|---|
Internet Assigned Numbers Authority (IANA) | Hypertext Transfer Protocol (HTTP)-Statuscoderegistrierung |
Mozilla | HTTP-Antwortstatuscodes |
Wikipedia | Liste mit HTTP-Statuscodes |
Die folgenden HTTP-Statuscodes können auf die aufgeführten Probleme hinweisen.
HTTP-Statuscode | Problem | Beispiel |
---|---|---|
4xx |
|
|
5xx |
Ein Problem betrifft den Server. | Die Anwendung ist ausgefallen, oder ein Gateway funktioniert nicht. |
Sie können versuchen, mithilfe von curl eine Verbindung mit dem Anwendungsendpunkt herzustellen. Hier ist ein Beispielbefehl und eine Ausgabe:
# 404 error code example
$ curl -vv <host IP address>/test.index
* Trying <host IP address>:80...
* TCP_NODELAY set
* Connected to <host IP address> (<host IP address>) port 80 (#0)
> GET /test.index HTTP/1.1
> Host: <host IP address>
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
...
* Connection #0 to host <host IP address> left intact
Schritt 4: Überprüfen, was passiert, wenn ausgehender Datenverkehr die virtuelle Appliance vorübergehend umgeht
Um schnell zu testen, ob das Ausgangsgerät (virtuelle Appliance) das Problem verursacht, können Sie vorübergehend zulassen, dass der gesamte Datenverkehr über das Internet durchläuft. Um dieses Setup zu konfigurieren, können Sie stattdessen die Standard-IP-Adresse und die Portroute der 0.0.0.0
/0
virtuellen Appliance ändern, um das Internet zu durchlaufen.
Wenn das Ausgangsgerät gut funktioniert, wenn die virtuelle Appliance umgangen wird, überprüfen Sie die Protokolle der virtuellen Appliance, um zu sehen, welche Pakete verweigert werden, und fügen Sie der virtuellen Appliance entsprechend Zulassungsregeln hinzu.
Tritt das Problem nur zeitweilig auf?
Möglicherweise treten aus vielen Gründen zeitweilig ausgehende Probleme auf. Führen Sie die folgenden Schritte aus, um probleme mit intermittierenden ausgehenden Verbindungen zu beheben:
Schritt 1: Überprüfen, ob die Pod- oder Knotenressourcen erschöpft sind
Führen Sie die folgenden Befehle aus, um zu überprüfen, wie viele Ressourcen verwendet werden:
kubectl top pods
kubectl top nodes
Schritt 2: Überprüfen, ob der Betriebssystemdatenträger stark verwendet wird
Führen Sie die folgenden Schritte aus, um zu überprüfen, ob der Betriebssystemdatenträger stark verwendet wird:
Suchen Sie im Azure-Portal nach Skalierungssätzen für virtuelle Computer, und wählen Sie sie aus.
Wählen Sie in der Liste der Skalierungssätze den Skalierungssatz aus, der für Ihren AKS-Cluster verwendet wird.
Wechseln Sie im Navigationsbereich des Skalierungssatzes zum Abschnitt "Überwachung", und wählen Sie dann "Metriken" aus.
Zeigen Sie die Datenträgermetriken für den Skalierungssatz aus dem Abschnitt "Metriken " an, indem Sie nach den folgenden Feldern suchen.
Feld Wert Bereich VMSS-Name Metriknamespace Host für virtuelle Computer Metriken Metrik für Betriebssystem- und andere Datenträger
Weitere Informationen zu Metriken finden Sie unter Betriebssystemdatenträger- und Datenträgermetriken.
Führen Sie die folgenden Schritte aus, um AKS-Empfehlungen zur Datenträgerauslastung anzuzeigen:
Suchen Sie im Azure-Portal nach Kubernetes-Diensten, und wählen Sie sie aus.
Wählen Sie in der Liste der Kubernetes-Dienste den Namen Ihres AKS-Clusters aus.
Wechseln Sie im AKS-Clusternavigationsbereich zum Abschnitt "Überwachung ", und wählen Sie dann Empfehlungen für Ratgeber aus.
Überprüfen Sie die aufgeführten Empfehlungen zur Datenträgernutzung.
Wenn der Betriebssystemdatenträger stark verwendet wird, sollten Sie die folgenden Abhilfemaßnahmen in Betracht ziehen:
Vergrößern Sie die Datenträgergröße des Betriebssystems.
Wechseln Sie zu ephemeralen Betriebssystemdatenträgern.
Wenn diese Abhilfemaßnahmen das Problem nicht beheben, analysieren Sie den Prozess, der schwere Lese-/Schreibvorgänge auf dem Datenträger ausführt. Überprüfen Sie dann, ob Sie die Aktionen auf einen Datenträger statt auf den Betriebssystemdatenträger verschieben können.
Schritt 3: Überprüfen, ob der Quellnetzwerkadressenübersetzungsport erschöpft ist
Wenn Anwendungen viele ausgehende Verbindungen herstellen, können sie die Anzahl der verfügbaren Ports auf der IP-Adresse des ausgehenden Geräts ausschöpfen. Befolgen Sie die Standarddiagnose für das Lastenausgleichsgerät mit Metriken, Warnungen und Ressourcenintegrität, um die Verwendung und Zuordnung des SNAT-Port (Source Network Address Translation, Quellnetzwerkadressenübersetzung) Ihres vorhandenen Lastenausgleichs zu überwachen. Überwachen Sie, um das Risiko der SNAT-Portausschöpfung zu überprüfen oder zu ermitteln.
Erreichen oder überschreiten Sie die maximale Anzahl zugewiesener SNAT-Ports? In diesem Fall können Sie ihre Anwendung überprüfen, um festzustellen, ob vorhandene Verbindungen verwendet werden. Weitere Informationen finden Sie unter Entwerfen Ihrer Anwendungen zur effizienten Verwendung von Verbindungen.
Wenn Sie der Ansicht sind, dass die Anwendung ordnungsgemäß konfiguriert ist und Sie mehr SNAT-Ports benötigen als die Standardanzahl zugewiesener Ports, führen Sie die folgenden Schritte aus:
Erhöhen Sie die Anzahl der öffentlichen IP-Adressen auf dem Gerät für ausgehenden Datenverkehr. Wenn es sich bei dem Gerät für ausgehenden Datenverkehr um den Lastenausgleich handelt, können Sie die Anzahl der öffentlichen IP-Adressen für den Lastenausgleich erhöhen.
Erhöhen Sie für Ihre AKS-Workerknoten die Anzahl der Ports pro Knoten.
Haftungsausschluss für Kontaktinformationen von Drittanbietern
Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.