Rozpoznawanie nazw DNS w usłudze Azure Kubernetes Service (AKS)

Dotyczy: ✔️ AKS Automatic AKS Standard ✔️

Rozpoznawanie systemu nazw domen (DNS) jest krytycznym składnikiem w usłudze Azure Kubernetes Service (AKS), umożliwiając zasobnikom i usługom komunikowanie się przy użyciu nazw czytelnych dla człowieka zamiast adresów IP. Usługa AKS udostępnia wbudowane usługi DNS, aby zapewnić bezproblemowe rozpoznawanie nazw dla zasobów klastra wewnętrznego i zewnętrznych punktów końcowych. Zrozumienie sposobu działania systemu DNS w usłudze AKS pomaga operatorom klastra i deweloperom zapewnić niezawodną łączność, zoptymalizować wydajność i skutecznie rozwiązywać problemy z siecią.

AKS Automatic to zalecany, domyślny wybór gotowy do wdrożeń produkcyjnych dla większości obciążeń AKS. Klastry automatyczne AKS są wstępnie skonfigurowane z funkcją LocalDNS w celu poprawy wydajności DNS, zmniejszenia obciążenia mechanizmu conntrack i zwiększenia odporności bez konieczności dodatkowej konfiguracji.

W usłudze AKS Standard usługa LocalDNS jest opcjonalna i można ją włączyć i skonfigurować oddzielnie.

Aby uzyskać więcej informacji o usłudze AKS Automatic, zobacz Czym jest usługa AKS Automatic?

CoreDNS w usłudze Azure Kubernetes Service

CoreDNS to domyślna usługa DNS w usłudze AKS. Zapewnia wewnętrzne rozpoznawanie nazw i odnajdywanie usług dla obciążeń uruchomionych w klastrze. Działa jako zestaw zasobników w przestrzeni nazw kube-system i jest ściśle zintegrowany z siecią Kubernetes.

Gdy zasobnik w usłudze AKS wystawia zapytanie DNS, takie jak rozpoznawanie nazwy innej usługi, żądanie przechodzi do zasobników CoreDNS. Te zasobniki przetwarzają zapytanie i zwracają odpowiedni adres IP lub przesyłają żądanie do nadrzędnego serwera DNS dla domen zewnętrznych.

Ta architektura zapewnia równowagę między elastycznością a bezpieczeństwem operacyjnym w środowisku zarządzanym. Aby uzyskać szczegółowe informacje na temat dostosowywania usługi CoreDNS w usłudze AKS, zapoznaj się z przewodnikiem dostosowywania coreDNS.

Aby uzyskać informacje na temat projektu CoreDNS, zobacz stronę projektu nadrzędnego CoreDNS.

LocalDNS w usłudze Azure Kubernetes Service

Uwaga / Notatka

Ten artykuł zawiera omówienie funkcji LocalDNS i jej zalet w usłudze AKS.

W przypadku usługi AKS Automatic lokalna sieciDNS jest wstępnie skonfigurowana.

W przypadku usługi AKS Standard informacje o tym, jak włączyć i skonfigurować LocalDNS, można znaleźć w przewodniku z instrukcjami dotyczącymi LocalDNS.

Przegląd

LocalDNS to zaawansowana funkcja w usłudze Azure Kubernetes Service (AKS), która wdraża serwer proxy systemu nazw domen (DNS) na każdym węźle w celu zapewnienia wysoce odpornego, niskiego opóźnienia w rozpoznawaniu nazw DNS. Dzięki obsłudze zapytań DNS lokalnie ten serwer proxy zmniejsza ruch do zasobników dodatków CoreDNS, zwiększając ogólną niezawodność i wydajność DNS w klastrze. LocalDNS jest szczególnie korzystne w dużych klastrach lub środowiskach z dużymi ilościami zapytań DNS, w sytuacji, gdy scentralizowane rozwiązywanie DNS może stać się wąskim gardłem.

Gdy LocalDNS jest włączony, AKS wdraża jako usługę systemd lokalną pamięć podręczną DNS na każdym węźle. Zasobniki na węźle wysyłają zapytania DNS do tej lokalnej pamięci podręcznej, co umożliwia szybsze rozwiązywanie poprzez zmniejszenie liczby przeskoków sieciowych. Takie podejście minimalizuje conntrack również użycie tabel, obniżając ryzyko wyczerpania tabel. Ponadto, jeśli nadrzędny DNS stanie się niedostępny, LocalDNS może nadal dostarczać buforowane odpowiedzi przez określony czas, co pomaga zachować łączność podu i niezawodność usługi.

Diagram przedstawiający architekturę LocalDNS.

LocalDNS i AKS Automatic

AKS Automatic wstępnie konfiguruje usługę LocalDNS w ramach domyślnych ustawień gotowych do użycia w środowisku produkcyjnym. Nie musisz uruchamiać osobnego polecenia włączającego w klastrach AKS Automatic.

Z tego artykułu dowiesz się, jak działa usługa LocalDNS i dlaczego poprawia działanie DNS dla obciążeń AKS. Jeśli potrzebujesz kroków włączania i konfiguracji usługi AKS Standard, skorzystaj z przewodnika z instrukcjami localDNS.

Kluczowe możliwości

  • Mniejsze opóźnienie rozpoznawania nazw DNS: każdy węzeł usługi AKS uruchamia usługę LocalDNS systemd . Obciążenia uruchomione w węźle wysyłają zapytania DNS do tej usługi, co rozwiązuje je lokalnie, zmniejszając przeskoki sieciowe i przyspieszając wyszukiwanie DNS.
  • Dostosowywalne zachowanie DNS: użyj polecenia kubeDNSOverrides i vnetDNSOverrides , aby kontrolować zachowanie DNS w klastrze.
  • Unikaj wyścigów conntrack i wyczerpania tabeli conntrack: zasobniki wysyłają zapytania DNS do usługi LocalDNS w tym samym węźle bez tworzenia nowych conntrack wpisów tabeli. Pominięcie śledzenia połączeń pomaga zmniejszyć konflikty w systemie conntrack i zapobiega zapełnianiu tabel wpisami DNS protokołu UDP (User Datagram Protocol). Ta optymalizacja zapobiega zarzuconym i odrzucanym połączeniom spowodowanym wyczerpaniem conntrack tabeli i warunkami wyścigu.
  • Połączenie uaktualnione do protokołu TCP: połączenie z localdns pamięci podręcznej do usługi CoreDNS klastra korzysta z protokołu TCP (Transmission Control Protocol). Protokół TCP umożliwia ponowne równoważenie połączenia i usuwa conntrack wpisy tabeli, gdy serwer zamyka połączenie (w przeciwieństwie do połączeń UDP, które mają domyślny limit czasu 30 sekund). Aplikacje nie wymagają zmian, ponieważ localdns usługa nadal nasłuchuje ruchu UDP.
  • Buforowanie: Możesz skonfigurować wtyczkę pamięci podręcznej LocalDNS przy użyciu serveStale i ustawień czasu życia (TTL). Ustaw parametry serveStale, serveStaleDurationInSeconds i cacheDurationInSeconds, aby zapewnić odporność DNS, nawet podczas awarii nadrzędnego serwera DNS.
  • Kontrola protokołu: ustaw protokół zapytania DNS (np PreferUDP . lub ForceTCP) dla każdej domeny. Ta elastyczność umożliwia optymalizację ruchu DNS dla określonych domen lub spełnienie wymagań sieciowych.

Inne korzyści i zagadnienia

Korzyści Rozważania
Lepsza skalowalność: zmniejsza obciążenie scentralizowanych zasobników CoreDNS Minimalne obciążenie zasobów: wykorzystuje niewielką ilość CPU i pamięci w każdym węźle
Bezproblemowa integracja: nie wymaga zmian istniejących połączeń aplikacji Zmiany konfiguracji: Aktualizacje wymagają uaktualnień obrazu węzła, co może powodować tymczasowe zakłócenia
Blokuj nieprawidłowe domeny wyszukiwania: uniemożliwia nieprawidłowe zapytania DNS na poziomie węzła Planowanie dostępności: zespoły korzystające z usługi AKS Standard powinny ocenić, czy wydajność i odporność DNS uzasadniają włączenie lokalnej sieciDNS

Działanie AKS Automatic i AKS Standard

Tryb klastra Zachowanie lokalnych sieciDNS
Automatyczne usługi AKS Wstępnie skonfigurowane
AKS Standard Optional

Dzięki użyciu LocalDNS uzyskując szybsze i bardziej niezawodne rozwiązanie DNS dla obciążeń, można zmniejszyć ryzyko awarii związanych z systemem DNS i uzyskać większą kontrolę nad ruchem DNS w środowisku usługi AKS.