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

Gäller för: ✔️ AKS Automatic ✔️ AKS Standard

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.

AKS Automatic är den rekommenderade produktionsklara standardinställningen för de flesta AKS-arbetsbelastningar. AKS Automatiska kluster är förkonfigurerade med LocalDNS för att förbättra DNS-prestanda, minska trycket på conntrack och öka motståndskraften utan att kräva extra installation.

På AKS Standard är LocalDNS valfritt och du kan aktivera och konfigurera det separat.

Mer information om AKS Automatic finns i Vad är AKS Automatic?

CoreDNS i Azure Kubernetes Service

CoreDNS är standard-DNS-tjänsten i AKS. Den 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, går 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

Den här artikeln innehåller en översikt över vad LocalDNS är och dess fördelar i AKS.

För AUTOMATISK AKS är LocalDNS förkonfigurerat.

Information om AKS Standard finns i instruktioner för LocalDNS för vägledning om hur du aktiverar och konfigurerar 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.

LocalDNS och AKS Automatic

AKS Automatisk förkonfigurerar LocalDNS som en del av dess produktionsklara standardinställningar. Du behöver inte köra ett separat aktiveringskommando på AKS Automatiska kluster.

Använd den här artikeln för att förstå hur LocalDNS fungerar och varför det förbättrar DNS-beteendet för AKS-arbetsbelastningar. Om du behöver aktiverings- och konfigurationssteg för AKS Standard använder du instruktionsguiden för LocalDNS.

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: Använd kubeDNSOverrides och vnetDNSOverrides för att kontrollera DNS-beteendet i klustret.
  • Undvik conntrack-lopp och överbelastning av conntrack-tabeller: 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: Du kan konfigurera LocalDNS cacheplugin med serveStale och Time to Live (TTL)-inställningar. Ange parametrarna serveStale, serveStaleDurationInSecondsoch cacheDurationInSeconds för att uppnå DNS-återhämtning, även under ett uppströms DNS-avbrott.
  • Protokollkontroll: 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å Tillgänglighetsplanering: Teams som använder AKS Standard bör utvärdera om DNS-prestanda och återhämtning motiverar aktivering av LocalDNS

AKS Automatic- och AKS Standard-beteende

Klusterläge Beteende för LocalDNS
AKS Automatisk Förkonfigurerade
AKS Standard Optional

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.