Service Discovery und DNS

In diesem Thema wird beschrieben, wie Anthos-Cluster in AWS mit Domain Name Services (DNS) sowohl in Ihrer AWS Virtual Private Cloud (VPC) als auch in Ihren Clustern interagieren.

AWS VPC-DNS

In diesem Abschnitt wird beschrieben, wie Sie eine AWS Virtual Private Cloud (VPC) für Anthos-Cluster in AWS (GKE in AWS) konfigurieren können.

VPC-DNS konfigurieren

Anthos-Cluster in AWS unterstützen 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.

Unterstützte VPC-DNS-Konfigurationen

Die folgende Tabelle enthält DNS-Konfigurationen, die von Anthos-Cluster in 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 ihre IP-Adresse zu kennen. In diesem Abschnitt wird beschrieben, wie Anthos-Cluster in AWS (GKE in AWS) die Diensterkennung und verwaltetes DNS implementieren.

Kubernetes generiert automatisch Dienstnamen, die folgende Spezifikation verwenden:

service.namespace.svc.zone

Wobei:

  • service: Name Ihres Dienstes
  • namespace: Namespace Ihres Dienstes
  • zone: AWS-Zone 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

Anthos-Cluster on 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

Anthos-Cluster auf AWS verwenden NodeLocal DNSCache, um die DNS-Lookup-Leistung 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 einen der folgenden Schritte 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)

Calico

Anthos-Cluster auf AWS verwenden Calico, um ein BGP-Routing zwischen Clusterknoten einzurichten.

Nächste Schritte