Dela via


Felsöka anslutningar till slutpunkter utanför det virtuella nätverket

I den här artikeln beskrivs hur du felsöker anslutningar till slutpunkter utanför det virtuella nätverket (dvs. via offentligt Internet) från ett AKS-kluster (Microsoft Azure Kubernetes Service).

Förutsättningar

Checklista för felsökning

Är problemet beständiga?

Steg 1: Utför grundläggande felsökning

Se till att du kan ansluta till offentliga slutpunkter på Internet. Anvisningar finns i Grundläggande felsökning av utgående AKS-klusteranslutningar.

Steg 2: Fastställa utgående typ för AKS-klustret

Om du vill identifiera den utgående typen av AKS-kluster kör du kommandot az aks show :

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

Om den utgående typen är loadBalancerfinns det ingen routningstabell om du inte använder kubenet-nätverket . Om du använder kubenet kontrollerar du att standardrutttabellen inte har någon ytterligare konfiguration som blockerar utgående Internetanslutning. Om du använder ett annat nätverk, till exempel Azure CNI, Dynamisk allokering eller Azure CNI Overlay, skapas ingen routningstabell som standard. I det här fallet kontrollerar du att nätverkssäkerhetsgruppen (nätverkssäkerhetsgruppen) inte har någon anpassad konfiguration som blockerar utgående Internetanslutning.

Om den utgående typen är userDefinedRoutingkontrollerar du att följande villkor är uppfyllda:

  • Utgående enhet (brandvägg eller proxy) kan nås.

  • Utgående enhet tillåter den utgående trafik som krävs från klustret.

    Om du vill hämta listan över FQDN:er som tillåts för ditt AKS-kluster kör du kommandot az aks egress-endpoints list :

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

Om den utgående typen är managedNATGatewaykontrollerar du om AKS-undernätet är associerat med NAT-gatewayen genom att köra kommandot az network nat gateway show :

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

Mer information om hur du använder en NAT-gateway tillsammans med AKS finns i Hanterad NAT-gateway.

Steg 3: Granska curl-utdata när du ansluter till programpodden

Curl-svarskoderna kan hjälpa dig att identifiera problemtypen. När svarskoden har blivit tillgänglig kan du försöka bättre förstå hur problemet fungerar. Mer information om HTTP-statuskoderna och problemets underliggande beteende finns i följande tabell.

Informationskälla Länk
IANA (Internet Assigned Numbers Authority) Statuskodregister för Hypertext Transfer Protocol (HTTP)
Mozilla Statuskoder för HTTP-svar
Wikipedia Lista med HTTP-statuskoder

Följande HTTP-statuskoder kan tyda på de problem som visas.

HTTP-statuskod Problem Exempel
4xx
  1. Ett problem påverkar klientbegäran.
  2. Det finns en nätverksblockerare mellan klienten och servern.
  1. Den begärda sidan finns inte eller så har klienten inte behörighet att komma åt sidan.
  2. Trafiken blockeras av en nätverkssäkerhetsgrupp eller en brandvägg.
5xx Ett problem påverkar servern. Programmet är nere eller så fungerar inte en gateway.

Du kan försöka ansluta till programslutpunkten med curl. Här är ett exempel på kommando och utdata:

# 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

Steg 4: Kontrollera vad som händer om utgående trafik tillfälligt kringgår den virtuella installationen

För snabb testning för att avgöra om den utgående enheten (den virtuella installationen) orsakar problemet kan du tillfälligt tillåta att all trafik går via Internet. Om du vill konfigurera den här konfigurationen kan du ändra standard-IP-adressen och portvägen 0.0.0.0/0 för via den virtuella installationen så att den går via Internet i stället.

Om den utgående enheten fungerar bra när du kringgår den virtuella installationen kontrollerar du loggarna för den virtuella installationen för att se vilka paket som nekas och lägger till tillåtna regler i den virtuella installationen i enlighet med detta.

Är problemet tillfälligt?

Du kan uppleva tillfälliga problem med utgående trafik av många orsaker. Om du vill felsöka tillfälliga problem med utgående anslutningar kan du prova följande steg:

Steg 1: Kontrollera om podd- eller nodresurserna är uttömda

Kör följande kommandon för att kontrollera hur mycket resurserna används:

kubectl top pods
kubectl top nodes

Steg 2: Kontrollera om operativsystemdisken används mycket

Följ dessa steg för att kontrollera om operativsystemets disk används kraftigt:

  1. I Azure Portal söker du efter och väljer Vm-skalningsuppsättningar.

  2. I listan med skalningsuppsättningar väljer du den skalningsuppsättning som används för ditt AKS-kluster.

  3. I navigeringsfönstret för skalningsuppsättningen går du till avsnittet Övervakning och väljer sedan Mått.

  4. Visa diskmåtten för skalningsuppsättningen från avsnittet Mått genom att leta efter följande fält.

    Fält Värde
    Omfång VMSS-namn
    Namnområde för mått Virtuell värddator
    Mått OS- och datadiskmått

Mer information om mått finns i OS Disk- och Data Disk-mått.

Följ dessa steg om du vill visa AKS-rekommendationer om diskanvändning:

  1. I Azure Portal söker du efter och väljer Kubernetes-tjänster.

  2. I listan över Kubernetes-tjänster väljer du namnet på ditt AKS-kluster.

  3. I aks-klusternavigeringsfönstret går du till avsnittet Övervakning och väljer sedan Advisor-rekommendationer.

  4. Granska de angivna rekommendationerna om diskanvändning.

Om os-disken används mycket bör du överväga att använda följande åtgärder:

Om dessa åtgärder inte löser problemet analyserar du processen som utför tunga läs-/skrivåtgärder på disken. Kontrollera sedan om du kan flytta åtgärderna till en datadisk i stället för os-disken.

Steg 3: Kontrollera om översättningsporten för källnätverksadressen är uttömd

Om program gör många utgående anslutningar kan de uttömma antalet tillgängliga portar på den utgående enhetens IP-adress. Följ standarddiagnostik för lastbalanserare med mått, aviseringar och resurshälsa för att övervaka användningen och allokeringen av den befintliga lastbalanserarens SNAT-port (source network address translation). Övervaka för att verifiera eller fastställa risken för SNAT-portöverbelastning.

Når eller överskrider du det maximala antalet allokerade SNAT-portar? I så fall kan du kontrollera programmet för att avgöra om det återanvänder befintliga anslutningar. Mer information finns i Designa dina program så att de använder anslutningar effektivt.

Om du känner att programmet är korrekt konfigurerat och du behöver fler SNAT-portar än standardantalet allokerade portar följer du dessa steg:

  1. Öka antalet offentliga IP-adresser på den utgående enheten. Om den utgående enheten är lastbalanseraren kan du öka antalet offentliga IP-adresser på lastbalanseraren.

  2. Öka portarna per nod för AKS-arbetsnoderna.

Ansvarsfriskrivning för tredje part

Microsoft tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta ytterligare information om det här ämnet. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att kontaktinformation från tredje part är korrekt.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.