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.



kubernetes-extern-dns.zip

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

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • 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.

Stellen Sie

Die Anweisungen zum Konfigurieren von Kubernetes ExternalDNS für die Verwendung von Oracle Cloud Infrastructure DNS finden Sie unter "ExternalDNS für die Verwendung von Oracle Cloud Infrastructure DNS konfigurieren" in der Oracle Cloud Infrastructure-Dokumentation.

Mehr erfahren

Erfahren Sie mehr über das Deployment eines Oracle Container Engine for Kubernetes-Clusters mit automatischer DNS-Verwaltung.

Prüfen Sie diese zusätzlichen Ressourcen:

Danksagungen

Autor:

  • Guido Alejandro Ferreyra