Rozwiązywanie problemów z połączeniami z punktami końcowymi spoza sieci wirtualnej

W tym artykule omówiono sposób rozwiązywania problemów z połączeniami z punktami końcowymi spoza sieci wirtualnej (tj. za pośrednictwem publicznego Internetu) z klastra usługi Microsoft Azure Kubernetes Service (AKS).

Wymagania wstępne

Lista kontrolna rozwiązywania problemów

Krok 1. Rozwiązywanie podstawowych problemów

Upewnij się, że możesz nawiązać połączenie z publicznymi punktami końcowymi w Internecie. Aby uzyskać instrukcje, zobacz Podstawowe rozwiązywanie problemów z wychodzącymi połączeniami klastra AKS.

Krok 2. Określanie typu ruchu wychodzącego dla klastra usługi AKS

Aby zidentyfikować typ ruchu wychodzącego klastra usługi AKS, uruchom polecenie az aks show :

az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"

Jeśli typ ruchu wychodzącego to loadBalancer, upewnij się, że tabela tras skojarzona z węzłami usługi AKS ma domyślną trasę do Internetu. Szczegóły przedstawiono w poniższej tabeli.

Źródło Prefiksy adresów Typ następnego przeskoku
Domyślne 0.0.0.0/0 Internet

Jeśli typ ruchu wychodzącego to userDefinedRouting, upewnij się, że spełnione są następujące warunki:

  • Urządzenie wychodzące (zapora lub serwer proxy) jest osiągalne.

  • Urządzenie wychodzące zezwala na wymagany ruch wychodzący z klastra.

    Aby uzyskać listę nazw FQDN dozwolonych dla klastra usługi AKS, uruchom polecenie az aks egress-endpoints list :

    az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
    

Jeśli typ ruchu wychodzącego to managedNATGateway, sprawdź, czy podsieć usługi AKS jest skojarzona z bramą NAT, uruchamiając polecenie az network nat gateway show :

az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"

Aby uzyskać więcej informacji na temat korzystania z bramy NAT wraz z usługą AKS, zobacz Managed NAT gateway (Zarządzana brama TRANSLATOR).

Krok 3. Sprawdzanie danych wyjściowych cURL podczas nawiązywania połączenia z klastrem

Kody odpowiedzi cURL mogą pomóc w zidentyfikowaniu typu problemu. Po udostępnieniu kodu odpowiedzi spróbuj lepiej zrozumieć, jak działa problem. Aby uzyskać więcej informacji na temat kodów stanu HTTP i podstawowego zachowania problemu, zapoznaj się z poniższą tabelą.

Źródło informacji Link
Internet Assigned Numbers Authority (IANA) Rejestr kodu stanu protokołu HTTP (Hypertext Transfer Protocol)
Mozilla Kody stanu odpowiedzi HTTP
Wikipedia Lista kodów stanu HTTP

Następujące kody stanu HTTP mogą wskazywać wymienione problemy.

Kod stanu HTTP Problem Przykład
4xx
  1. Problem ma wpływ na żądanie klienta.
  2. Między klientem a serwerem istnieje bloker sieci.
  1. Żądana strona nie istnieje lub klient nie ma uprawnień dostępu do strony.
  2. Ruch jest blokowany przez sieciową grupę zabezpieczeń lub zaporę.
5xx Problem dotyczy serwera. Aplikacja nie działa lub brama nie działa.

Krok 4. Określenie, co się stanie, jeśli ruch wychodzący zwykle przechodzi przez urządzenie wirtualne, ale zamiast tego pomijasz go

Aby szybko przetestować, czy urządzenie wychodzące (urządzenie wirtualne) powoduje problem, można tymczasowo zezwolić na cały ruch przez Internet. Aby skonfigurować tę konfigurację, można zmienić domyślny adres IP i trasę 0.0.0.0/0 portu przez urządzenie wirtualne, aby zamiast tego przechodzić przez Internet.

Czy problem występuje sporadycznie?

Z wielu powodów mogą wystąpić sporadyczne problemy z ruchem wychodzącym. Aby rozwiązać sporadyczne problemy z połączeniem wychodzącym, spróbuj wykonać następujące testy:

Czy zasobnik lub węzeł są wyczerpane w zasobach?

Uruchom następujący kod, aby sprawdzić sposób użycia zasobów:

kubectl top pods
kubectl top nodes

Czy dysk systemu operacyjnego jest mocno używany?

Aby sprawdzić, czy dysk systemu operacyjnego jest intensywnie używany, wykonaj następujące kroki:

  1. W Azure Portal wyszukaj i wybierz pozycję Zestawy skalowania maszyn wirtualnych.

  2. Na liście zestawów skalowania wybierz zestaw skalowania używany dla klastra usługi AKS.

  3. W okienku nawigacji zestawu skalowania przejdź do sekcji Monitorowanie , a następnie wybierz pozycję Metryki.

  4. Wyświetl metryki dysku dla zestawu skalowania z sekcji Metryki , szukając następujących pól.

    Pole Value
    Zakres Nazwa usługi VMSS
    Przestrzeń nazw metryk Host maszyny wirtualnej
    Metryki Metryka systemu operacyjnego i dysku danych

Aby uzyskać więcej informacji na temat metryk, zobacz Metryki Dysk systemu operacyjnego i Dysk danych.

Aby wyświetlić zalecenia usługi AKS dotyczące wykorzystania dysku, wykonaj następujące kroki:

  1. W Azure Portal wyszukaj i wybierz pozycję Usługi Kubernetes.

  2. Na liście usług Kubernetes wybierz nazwę klastra USŁUGI AKS.

  3. W okienku nawigacji klastra usługi AKS przejdź do sekcji Monitorowanie , a następnie wybierz pozycję Rekomendacje usługi Advisor.

  4. Zapoznaj się z wymienionymi zaleceniami dotyczącymi użycia dysku.

Jeśli dysk systemu operacyjnego jest intensywnie używany, rozważ zastosowanie następujących środków zaradczych:

Jeśli te środki zaradcze nie rozwiążą problemu, przeanalizuj proces, który wykonuje ciężkie operacje odczytu/zapisu na dysku. Następnie sprawdź, czy można przenieść akcje na dysk danych zamiast na dysk systemu operacyjnego.

Czy port tłumaczenia źródłowego adresu sieciowego jest wyczerpany?

Jeśli aplikacje tworzą wiele połączeń wychodzących, mogą wyczerpać liczbę dostępnych portów na adresIE IP urządzenia wychodzącego. Postępuj zgodnie ze standardową diagnostyką modułu równoważenia obciążenia z metrykami, alertami i kondycją zasobów, aby monitorować użycie i alokację portu translacji źródłowego adresu sieciowego (SNAT) istniejącego modułu równoważenia obciążenia. Monitoruj, aby sprawdzić lub określić ryzyko wyczerpania portów SNAT.

Czy osiągasz lub przekraczasz maksymalną liczbę przydzielonych portów SNAT? W takim przypadku możesz sprawdzić aplikację, aby ustalić, czy używa ona ponownie istniejących połączeń. Aby uzyskać więcej informacji, zobacz Projektowanie aplikacji w celu wydajnego korzystania z połączeń.

Jeśli uważasz, że aplikacja jest prawidłowo skonfigurowana i potrzebujesz więcej portów SNAT niż domyślna liczba przydzielonych portów, wykonaj następujące kroki:

  1. Zwiększ liczbę publicznych adresów IP na urządzeniu wychodzącym. Jeśli urządzenie wychodzące jest modułem równoważenia obciążenia, możesz zwiększyć liczbę publicznych adresów IP w module równoważenia obciążenia.

  2. Zwiększ porty na węzeł dla węzłów procesu roboczego usługi AKS.

Wyłączenie odpowiedzialności za kontakty z osobami trzecimi

Firma Microsoft udostępnia informacje kontaktowe innych firm, które ułatwiają znalezienie dodatkowych informacji na ten temat. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji kontaktowych innych firm.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.