Bereitstellen eines hochverfügbaren MySQL Database-Systems in einem Oracle Cloud Infrastructure Kubernetes Engine-Cluster
Oracle MySQL Database Service ist ein vollständig verwalteter Datenbankservice, der in Oracle Cloud Infrastructure (OCI) bereitgestellt wird und Betreiber und Entwickler unterstützt, die sichere, cloudnative Anwendungen schnell bereitstellen möchten. Mit dem OCI-Serviceoperator für Kubernetes (OSOK) können Sie MySQL Database-Systeme für Anwendungen bereitstellen und verwalten, die im Deployment eines hochverfügbaren MySQL Database-Systems in einem Oracle Cloud Infrastructure Kubernetes Engine-Cluster (OCI Kubernetes Engine- oder OKE-Cluster) bereitgestellt werden.
Die Verwendung von OSOK vereinfacht die Verwaltung von MySQL Database-Systemen für OKE-Administratoren und ermöglicht die Bereitstellung von MySQL Database System-Instanzen neben Anwendungen mit dem Kubernetes-Packageverwaltungstool Helm.
Architektur
Diese Referenzarchitektur zeigt eine Anwendung, die in einem OKE-Cluster bereitgestellt wird, das ein hochverfügbares MySQL Database-System für seine Datenbank verwendet. Das MySQL Database-System wird vollständig aus dem OKE-Cluster mit OSOK bereitgestellt und verwaltet.
Mit OSOK kann das MySQL Database-System wie jede andere Kubernetes-Ressource mit der Kubernetes-Standard-CLI - kubectl verwaltet werden, indem das MySQL Database-System als benutzerdefinierte Ressourcendefinition (CRD) modelliert und diese Definitionen auf das OKE-Cluster angewendet werden.
Das MySQL Database-System kann als Standalone-System oder mit High Availability (HA) bereitgestellt werden. Ein HA-fähiges MySQL Database-System enthält drei Instanzen, die über verschiedene Availability-Domains oder Faultdomains bereitgestellt werden. Die Anwendung stellt eine Verbindung zu einem einzelnen Endpunkt her, um in die Datenbank zu lesen und zu schreiben. Bei einem Fehler führt das Datenbanksystem automatisch ein Failover zu einer sekundären Instanz durch, ohne die Anwendung neu zu konfigurieren.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung oci-mysql-oke-ha-arch.png
oci-mysql-oke-ha-arch-oracle.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. Daher sollte ein Fehler in einer Availability-Domain sich nicht auf die anderen Availability-Domains in der Region auswirken.
- Faultdomains
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains 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, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs die 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.
- OCI Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine oder OKE) ist ein vollständig verwalteter, skalierbarer und hoch verfügbarer Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen benötigen, und Kubernetes Engine stellt sie in Oracle Cloud Infrastructure in einem vorhandenen Mandanten bereit. OKE automatisiert mit Kubernetes das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen über Cluster von Hosts hinweg.
- Oracle MySQL Database Service
Oracle MySQL Database Service ist ein vollständig verwalteter Oracle Cloud Infrastructure-(OCI-)Datenbankservice, mit dem Entwickler schnell sichere, Cloud-native Anwendungen entwickeln und bereitstellen können. Oracle MySQL Database Service wurde für OCI optimiert und ist exklusiv in OCI verfügbar und wird zu 100% von den OCI- und MySQL-Entwicklungsteams erstellt, verwaltet und unterstützt.
Oracle MySQL Database Service verfügt über eine integrierte, leistungsstarke Analyse-Engine (HeatWave), mit der anspruchsvolle Echtzeitanalysen direkt für eine betriebliche MySQL-Datenbank ausgeführt werden können.
- Network Address Translation-(NAT-)Gateway
Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.
- Servicegateway
Das Servicegateway bietet Zugriff von einem VCN auf andere Services, wie Oracle Cloud Infrastructure Object Storage. Der Traffic vom VCN zum Oracle-Service wird über die Oracle-Netzwerkstruktur geleitet und durchläuft nicht das Internet.
- Registrierung
Oracle Cloud Infrastructure Registry ist eine von Oracle verwaltete Registry, mit der Sie Ihren Workflow von der Entwicklung bis zur Produktion vereinfachen können. Die Registry erleichtert Ihnen das Speichern, Freigeben und Verwalten von Entwicklungsartefakten wie Docker-Images. Die hochverfügbare und skalierbare Architektur von Oracle Cloud Infrastructure stellt sicher, dass Sie Ihre Anwendungen zuverlässig bereitstellen und verwalten können.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.
- Routentabelle
Virtuelle Routentabellen enthalten Regeln zum Weiterleiten von Traffic von Subnetzen an Ziele außerhalb eines VCN, in der Regel über Gateways.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der im Subnetz und aus dem Subnetz zugelassen werden muss.
Empfehlungen
- 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, die sich innerhalb des privaten IP-Standardadressraums befinden.
Wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, zu dem Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie beim Entwerfen der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene 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 den Service die Bandbreite automatisch basierend auf Trafficmustern skalieren lassen. Bei beiden Verfahren können Sie die Ausprägung nach dem Erstellen des Load Balancers jederzeit ändern.
- Sicherheitslisten
Mit Sicherheitslisten können Sie Ingress- und Egress-Regeln definieren, die für das gesamte Subnetz gelten.
- Oracle MySQL Database Service
In dieser Architektur speichert die Anwendung die relationalen Daten in Oracle MySQL Database Service. Wir empfehlen die Verwendung der neuesten Version.
Hinweise
Berücksichtigen Sie beim Deployment einer Anwendung in Oracle Cloud diese Verfügbarkeitsoptionen.
- Anwendungsverfügbarkeit
Die Anwendung wird mit mehreren Pods im Deployment bereitgestellt, um High Availability bereitzustellen.
- Verfügbarkeit und Skalierbarkeit meines SQL Database Service
Der MySQL Database Service, der in der hochverfügbaren Architektur angezeigt wird, verwendet die integrierte High Availability-Option MySQL, die drei Instanzen erstellt und in verschiedenen Faultdomains platziert.
- Sicherheit
Verwenden Sie Policys, die den Zugriff auf die verfügbaren OCI-Ressourcen einschränken. OKE ist in OCI Identity and Access Management (IAM) integriert. IAM bietet eine einfache Authentifizierung mit nativer OCI-Identitätsfunktionalität.
Stellen Sie
Diese Referenzarchitektur kann ohne Verwendung der OCI-Konsole oder CLI aus dem OKE-Cluster bereitgestellt und verwaltet und mit einem Helm-Diagramm automatisiert werden. Das Helm-Beispieldiagramm für diese Referenzarchitektur erleichtert das Erstellen und Verwalten eines MySQL Database-Systems aus einem in OCI bereitgestellten Kubernetes-Cluster. Sie können den Code von GitHub herunterladen und an Ihre spezifischen Anforderungen anpassen.
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.
Mehr erfahren
Lesen Sie diese zusätzlichen Ressourcen, um mehr über die Features dieser Architektur zu erfahren:
- Best Practice Framework für Oracle Cloud Infrastructure
- Cloudnative Apps, die MySQL verwenden, auf Oracle Cloud Infrastructure bereitstellen
- Erfahren Sie mehr über das Deployment von MySQL Database Service in Oracle Cloud
- OCI-Serviceoperator für Kubernetes
- Überblick über OCI Kubernetes Engine
- Der Oracle MySQL-Blog