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
Verktyget klient-URL (curl).
Kubernetes kubectl-verktyget eller ett liknande verktyg för att ansluta till klustret. Om du vill installera kubectl med hjälp av Azure CLI kör du kommandot az aks install-cli .
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 loadBalancer
finns 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 userDefinedRouting
kontrollerar 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 managedNATGateway
kontrollerar 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 |
|
|
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:
I Azure Portal söker du efter och väljer Vm-skalningsuppsättningar.
I listan med skalningsuppsättningar väljer du den skalningsuppsättning som används för ditt AKS-kluster.
I navigeringsfönstret för skalningsuppsättningen går du till avsnittet Övervakning och väljer sedan Mått.
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:
I Azure Portal söker du efter och väljer Kubernetes-tjänster.
I listan över Kubernetes-tjänster väljer du namnet på ditt AKS-kluster.
I aks-klusternavigeringsfönstret går du till avsnittet Övervakning och väljer sedan Advisor-rekommendationer.
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:
Öka operativsystemets diskstorlek.
Växla till tillfälliga OS-diskar.
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:
Ö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.
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.