Freigeben über


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

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:

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
  1. Ein Problem betrifft die Clientanforderung.
  2. Ein Netzwerkblocker ist zwischen dem Client und dem Server vorhanden.
  1. Die angeforderte Seite ist nicht vorhanden, oder der Client verfügt nicht über die Berechtigung für den Zugriff auf die Seite.
  2. Datenverkehr wird von einer Netzwerksicherheitsgruppe oder einer Firewall blockiert.
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:

  1. Suchen Sie im Azure-Portal nach Skalierungssätzen für virtuelle Computer, und wählen Sie sie aus.

  2. Wählen Sie in der Liste der Skalierungssätze den Skalierungssatz aus, der für Ihren AKS-Cluster verwendet wird.

  3. Wechseln Sie im Navigationsbereich des Skalierungssatzes zum Abschnitt "Überwachung", und wählen Sie dann "Metriken" aus.

  4. 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:

  1. Suchen Sie im Azure-Portal nach Kubernetes-Diensten, und wählen Sie sie aus.

  2. Wählen Sie in der Liste der Kubernetes-Dienste den Namen Ihres AKS-Clusters aus.

  3. Wechseln Sie im AKS-Clusternavigationsbereich zum Abschnitt "Überwachung ", und wählen Sie dann Empfehlungen für Ratgeber aus.

  4. Ü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:

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:

  1. 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.

  2. 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.