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 Dienstesnamespace
: 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
- AWS-DNS-Unterstützung für Ihre VPC.
- Eine Übersicht über die Verwendung von DNS in Kubernetes-Clustern finden Sie unter DNS für Dienste und Pods.