Service Discovery und DNS – Übersicht

In diesem Thema wird beschrieben, wie GKE on AWS mit Domain Name Services (DNS) sowohl in Ihrer AWS Virtual Private Cloud (VPC) als auch in Ihren Clustern interagiert.

AWS VPC-DNS

In diesem Abschnitt wird beschrieben, wie Sie eine VPC für GKE in AWS konfigurieren.

VPC-DNS konfigurieren

GKE on AWS unterstützt eine Vielzahl von DNS-Konfigurationen in Ihrer AWS-VPC. Sie konfigurieren die DNS-Einstellungen Ihrer VPC, wenn Sie ein Set von DHCP-Optionen festlegen. Weitere Informationen finden Sie unter DNS-Unterstützung für Ihre VPC.

Sie können folgende Optionen konfigurieren:

DNS-Hostnamen
Legt fest, ob EC2-Instanzen mit öffentlichen IP-Adressen entsprechende öffentliche DNS-Hostnamen erhalten. Sie legen diesen Wert im Feld enableDNSHostnames der DHCP-Optionen für die VPC fest. Weitere Informationen finden Sie unter VPC-DNS-Hostnamen und DHCP-Optionen für Ihre VPC.
EC2-DNS-Hostnamen
Dies legt fest, ob EC2-Instanzen einen Standard-DNS-Hostnamen oder einen benutzerdefinierten DNS-Hostnamen erhalten.
DNS-Server
Gibt an, ob die DHCP-Optionen Ihrer VPC entweder den AWS Route53-DNS-Server (mit der Option AmazonProvidedDNS) oder einen gehosteten DNS-Server verwenden.

Gehostetes DNS verwenden

Um ein gehostetes DNS zu verwenden, müssen die Sicherheitsgruppen Steuerungsebene und Knotenpool ausgehenden Traffic über TCP- und UDP Port 53 zulassen.

Unterstützte VPC-DNS-Konfigurationen

Die folgende Tabelle enthält DNS-Konfigurationen, die von GKE on AWS unterstützt werden:

DNS-Hostnamen aktivieren EC2-DNS-Hostnamen DNS-Server Unterstützt?
true Standard AWS Route53 Ja
false Standard AWS Route53 Ja
true Benutzerdefiniert AWS Route53 Ja
false Benutzerdefiniert AWS Route53 Ja
true Benutzerdefiniert Gehostetes Ja
false Benutzerdefiniert Gehostetes Ja
true Standard Gehostetes Nein
false Standard Gehostetes Nein

Diensterkennung

Die Diensterkennung ist der Prozess, bei dem Arbeitslasten Dienste ermitteln, ohne die IP-Adresse des Dienstes zu kennen. In diesem Abschnitt wird beschrieben, wie GKE in AWS die Diensterkennung und verwaltetes DNS implementiert.

Kubernetes generiert automatisch Dienstnamen, die folgende Spezifikation verwenden:

service.namespace.svc.cluster.local

Wobei:

  • service: Name Ihres Dienstes
  • namespace: Namespace Ihres Dienstes

Arbeitslasten greifen auch über DNS-Namen auf externe Dienste wie example.net zu. Weitere Informationen zum Verhalten von DNS in Kubernetes finden Sie unter DNS für Dienste und Pods.

CoreDNS

GKE in AWS verwendet CoreDNS zum Auflösen von DNS-Namen in Clustern. CoreDNS wird als redundantes, skaliertes Deployment im Namespace kube-system ausgeführt. Das CoreDNS-Deployment verfügt über einen Service, der die CoreDNS-Pods gruppiert und ihnen eine einzige IP-Adresse zuweist. Das CoreDNS-Deployment wird mit der Größe und Nutzung des Clusters skaliert.

NodeLocal DNSCache

GKE in AWS verwendet NodeLocal DNSCache, um die DNS-Leistung bei der Suche zu verbessern. NodeLocal DNSCache wird auf jedem Knoten im Cluster als DaemonSet ausgeführt. Wenn ein Pod eine DNS-Anfrage stellt, wird die Anfrage zuerst an den DNS-Cache auf demselben Knoten gesendet. Wenn der Cache die DNS-Anfrage nicht auflösen kann, leitet er die Anfrage an Folgendes weiter:

  • CoreDNS für einen internen Namen (z. B. foo.bar.svc.cluster.local)
  • Den Amazon DNS-Server für einen externen Namen (z. B. example.net)

Nächste Schritte