Kubernetes-Cluster mit automatischer DNS-Verwaltung für mehrere Umgebungen bereitstellen
Die Verwaltung der Cloud-DNS-Strategie für Ihre internen und externen Umgebungen (z. B. Entwicklung, Test und Produktion) kann ohne eine automatisierte Lösung kompliziert und zeitaufwendig werden. Idealerweise sollten sowohl Ihre Benutzer als auch Ihre Kunden in der Lage sein, zu einer Domain zu navigieren, und Ihre DNS-Lösung sollte direkt zur richtigen IP-Adresse der Umgebung führen. Dieses ideale Szenario ist benutzerfreundlich und kann menschliche Fehler verhindern.
Kubernetes ExternalDNS bietet Funktionen zur Automatisierung einer DNS-Lösung, um Benutzern die Navigation zu der gewünschten Domain zu erleichtern. Dazu gehören erweiterte Funktionen wie globales Load Balancing, automatisches Failover, DNS-basiertes Trafficmanagement und integrierte Sicherheitsfunktionen wie Domain Name System Security Extensions (DNSSEC), um sich vor Manipulation und Spoofing-Angriffen zu schützen.
Diese Referenzarchitektur verwendet ein einzelnes Kubernetes-Cluster-Deployment mit Oracle Cloud Infrastructure-DNS-Zonen und Kubernetes ExternalDNS, um eine DNS-Lösung für mehrere Umgebungen zu konfigurieren.
Architektur
Diese Architektur verwendet ein in einer OCI-DNS-Zone bereitgestelltes Oracle Cloud Infrastructure Container Engine for Kubernetes-(OCI OKE-)Cluster, das die "A-Datensätze" für Ihre bereitgestellten Services über Load Balancer enthält. In dieser Architektur verfügt das OKE-Cluster über drei Worker-Knoten und drei verschiedene Namespaces für die Deployment-Trennung. Verwenden Sie diese Architektur für ein OKE-Deployment mit mehreren Umgebungen, das ein einzelnes Cluster anstelle mehrerer Cluster verwendet.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
Mehrmandanten-oke-dns-architecture.zip
Jede Umgebung (Entwicklung, Test und Produktion) verfügt über eine eigene Gruppe von Kubernetes-Komponenten wie Namespaces, Pods und Services. Kubernetes ExternalDNS ermöglicht die automatische Erstellung und Verwaltung von DNS-Datensätzen für Kubernetes-Services, die extern bereitgestellt werden. Dies erleichtert externen Clients den Zugriff auf die Services im Cluster. Die Kubernetes-Komponenten werden an Kubernetes ExternalDNS weitergeleitet. Dadurch werden dann "A-Datensätze" erstellt, die auf jeden Service-Load Balancer in OCI verweisen.
Das folgende Diagramm veranschaulicht diese Softwarearchitektur.
Die Architektur umfasst die folgenden Komponenten:
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domain bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).
- Availability-Domains
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Es ist daher unwahrscheinlich, dass der Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.
- Faultdomains
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Fehlerdomänen mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverausfälle, Systemwartungen und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, benutzerdefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der in und aus dem Subnetz zulässig sein muss.
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes ist ein vollständig verwalteter, skalierbarer und hoch verfügbarer Service, mit dem Sie Ihre containerisierten Anwendungen in der Cloud bereitstellen können. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen benötigen, und Container Engine for Kubernetes stellt sie in Oracle Cloud Infrastructure in einem vorhandenen Mandanten bereit. Container Engine for Kubernetes verwendet Kubernetes, um das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen auf mehreren Hostclustern zu automatisieren.
- DNS
Der Oracle Cloud Infrastructure Domain Name System-(DNS-)Service ist ein hoch skalierbares, globales Anycast-Domain Name System-(DNS-)Netzwerk, das eine verbesserte DNS-Performance, -Resilienz und -Skalierbarkeit bietet, sodass Endbenutzer sich so schnell wie möglich von überall aus mit der Anwendung des Kunden verbinden können.
- Öffentliche/private DNS-Zone
Mit dem Oracle Cloud Infrastructure-DNS-Service können Sie Zonen verwalten. Eine Zone ist ein Teil des DNS-Namespace. Ein Start of Authority-(SOA-)Datensatz definiert eine Zone. Eine Zone enthält alle Labels unter sich im Baum, sofern nicht anders angegeben.
Empfehlungen
- Virtuelles Cloud-Netzwerk (VCN)
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke innerhalb des standardmäßigen privaten IP-Adressraums.
Berücksichtigen Sie beim Entwerfen der Subnetze den Trafficfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Load-Balancer-Bandbreite
Beim Erstellen des Load Balancers können Sie entweder eine vordefinierte Ausprägung auswählen, die eine feste Bandbreite bereitstellt, oder eine benutzerdefinierte (flexible) Ausprägung angeben, in der Sie einen Bandbreitenbereich festlegen und der Service die Bandbreite automatisch basierend auf Trafficmustern skalieren lässt. Mit beiden Methoden können Sie die Ausprägung jederzeit ändern, nachdem Sie den Load Balancer erstellt haben.
Hinweise
Wenn Sie mehrere Umgebungen in einem einzelnen Oracle Cloud Infrastructure Container Engine for Kubernetes-Cluster bereitstellen, beachten Sie Folgendes.
- Sicherheit
Ziehen Sie die Verwendung von Kubernetes-Netzwerk-Policys in Betracht, um die Namespace-Konnektivität zu trennen und sich auf rollenbasierte Zugriffskontrolle zu verlassen, um den Zugriff auf das Namespace-Management zu kontrollieren.