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 Dienstesnamespace
: Namespace Ihres Diensteszone
: 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
- 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.