DNS-upplösning i Azure Kubernetes Service (AKS)

DNS-matchning (Domain Name System) är en viktig komponent i Azure Kubernetes Service (AKS), vilket gör det möjligt för poddar och tjänster att kommunicera med hjälp av läsbara namn i stället för IP-adresser. AKS tillhandahåller inbyggda DNS-tjänster för att säkerställa sömlös namnmatchning för både interna klusterresurser och externa slutpunkter. Att förstå hur DNS fungerar i AKS hjälper klusteroperatörer och utvecklare att säkerställa tillförlitlig anslutning, optimera prestanda och felsöka nätverksproblem effektivt.

CoreDNS i Azure Kubernetes Service

CoreDNS är standard-DNS-tjänsten i Azure Kubernetes Service (AKS), som tillhandahåller intern namnmatchning och tjänstidentifiering för arbetsbelastningar som körs i klustret. Den fungerar som en uppsättning poddar i kube-system-namnområdet och är nära integrerad med Kubernetes-nätverk.

När en podd i AKS utfärdar en DNS-fråga, till exempel att matcha namnet på en annan tjänst, dirigeras begäran till CoreDNS-poddarna. Dessa poddar bearbetar frågan och returnerar lämplig IP-adress eller vidarebefordrar begäran till en överordnad DNS-server för externa domäner.

Den här arkitekturen garanterar en balans mellan flexibilitet och driftsäkerhet i en hanterad miljö. Mer information om hur du anpassar CoreDNS i AKS finns i anpassningsguiden för CoreDNS.

Information om CoreDNS-projektet finns på sidan för CoreDNS-uppströmsprojekt.

LocalDNS i Azure Kubernetes Service

Anmärkning

Det här dokumentet ger en översikt över vad LocalDNS är och dess fördelar i AKS. Den innehåller inte installationsinstruktioner. Vägledning om hur du aktiverar och konfigurerar LocalDNS finns i anvisningar för LocalDNS.

Översikt

LocalDNS är en avancerad funktion i Azure Kubernetes Service (AKS) som distribuerar en DNS-proxy på varje nod för att ge högmotståndskraftig DNS-upplösning med låg svarstid. Genom att hantera DNS-frågor lokalt minskar den här proxyn trafiken till CoreDNS-tilläggspoddar, vilket förbättrar den övergripande DNS-tillförlitligheten och prestandan i klustret. LocalDNS är särskilt fördelaktigt i stora kluster eller miljöer med höga DNS-frågevolymer, där centraliserad DNS-matchning kan bli en flaskhals.

När LocalDNS är aktiverat distribuerar AKS en lokal DNS-cache som en systemd tjänst på varje nod. Poddar på noden skickar sina DNS-frågor till den här lokala cachen, vilket möjliggör snabbare lösning genom att minska nätverkshoppen. Den här metoden minimerar conntrack också tabellanvändningen, vilket minskar risken för tabellöverbelastning. Om den överordnade DNS:en dessutom blir otillgänglig kan LocalDNS fortsätta att hantera cachelagrade svar under en konfigurerbar varaktighet, vilket bidrar till att upprätthålla poddanslutningen och tjänstens tillförlitlighet.

Diagram som visar LocalDNS-arkitektur.

Viktiga funktioner

  • Kortare svarstid för DNS-matchning: Varje AKS-nod kör en LocalDNS-tjänst systemd . Arbetsbelastningar som körs på noden skickar DNS-frågor till den här tjänsten, vilket löser dem lokalt, vilket minskar nätverkshoppen och påskyndar DNS-sökningar.

  • Anpassningsbart DNS-beteende: Du kan använda kubeDNSOverrides och vnetDNSOverrides för att styra DNS-beteendet i klustret.

  • Undvik conntrack-lopp och överbelastning av conntrack-tabellen: Poddar skickar DNS-frågor till LocalDNS-tjänsten på samma nod utan att skapa nya conntrack tabellposter. Om du hoppar över anslutningsspårningen minskar du conntrack-tävlingar och undviker UDP-DNS-poster (User Datagram Protocol) från att fylla upp conntrack tabeller. Den här optimeringen förhindrar förlorade och avvisade anslutningar som orsakas av conntrack tabellöverbelastning och loppvillkor.

  • Anslutning uppgraderad till TCP: Anslutningen från cachen localdns till klustrets CoreDNS-tjänst använder TCP (Transmission Control Protocol). TCP möjliggör ombalansering av anslutningar och tar bort conntrack tabellposter när servern stänger anslutningen (till skillnad från UDP-anslutningar, som har en standardtidsgräns på 30 sekunder). Program behöver inte ändringar eftersom localdns tjänsten fortfarande lyssnar efter UDP-trafik.

  • Cachelagring: Plugin-programmet för LocalDNS-cachen kan konfigureras med inställningar för serveStale och Time to Live (TTL). serveStale, serveStaleDurationInSeconds, och cacheDurationInSeconds parametrar kan konfigureras för att uppnå DNS-återhämtning, även under ett uppströms DNS-avbrott.

  • Protokollkontroll: Du kan ange DNS-frågeprotokollet (till exempel PreferUDP eller ForceTCP) för varje domän. Med den här flexibiliteten kan du optimera DNS-trafik för specifika domäner eller uppfylla nätverkskrav.

Andra fördelar och överväganden

Fördelar Överväganden
Bättre skalbarhet: Minskar belastningen på centraliserade CoreDNS-poddar Minimala resurskostnader: Använder en liten mängd processor och minne på varje nod
Sömlös integrering: Kräver inte ändringar i befintliga programanslutningar Konfigurationsändringar: Uppdateringar kräver nodbilduppgraderingar, vilket kan orsaka tillfälliga störningar
Blockera ogiltiga sökdomäner: Förhindrar ogiltiga DNS-frågor på nodnivå

Genom att använda LocalDNS får du snabbare och mer tillförlitlig DNS-matchning för dina arbetsbelastningar, minskar risken för DNS-relaterade avbrott och får mer kontroll över DNS-trafik i AKS-miljön.

Nästa steg

Mer information om hur du aktiverar LocalDNS och konfigurerar dess inställningar i AKS-klustret finns i anvisningar för LocalDNS.

Mer information om grundläggande nätverksbegrepp finns i Nätverksbegrepp för program i AKS.