Stellen Sie WordPress mit MySQL Database Service auf Oracle Cloud Infrastructure Kubernetes Engine bereit

Profitieren Sie von den Vorteilen der Flexibilität und Kosten beim Hosten Ihrer WordPress-Webseiten und -Blogs auf Oracle Cloud Infrastructure (OCI).

WordPress ist eines der beliebtesten Content-Management-Systeme (CMS), das für die Verwaltung von Webseiten und Blogs verwendet wird. Machen Sie Ihr WordPress-Deployment hochskalierbar und mit den folgenden OCI-Services verfügbar:
  • Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine oder OKE), um ein hoch skalierbares und verfügbares Wordpress-Deployment bereitzustellen, ohne dass ein Kubernetes-Cluster bereitgestellt oder verwaltet werden muss.
  • MySQL Database Service stellt eine leistungsstarke Datenbank für Ihre WordPress-Anwendung bereit, ohne die Datenbank bereitstellen oder verwalten zu müssen.
  • File Storage Service für Shared Persistence Storage (erforderlich von WordPress), der für alle Instanzen der Anwendung zugänglich ist, um ihn hochverfügbar zu machen.

Architektur

Diese Referenzarchitektur zeigt ein hochverfügbares und skalierbares WordPress-Deployment in einem OKE-Cluster. Dieses Deployment verwendet den File Storage-Service als persistenten Speicher und MySQL Database Service als Datenbank. Ein Load Balancer mit einer externen IP wird zugewiesen, um Zugriff auf die Anwendung WordPress zu erteilen.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung von oci-mysql-oke-wordpress-arch.png folgt
Beschreibung der Abbildung oci-mysql-oke-wordpress-arch.png

oci-mysql-oke-wordpress-arch-oracle.zip

Im folgenden Abschnitt wird diese Referenzarchitektur beschrieben:

Im OKE-Cluster können Sie die Anzahl der WordPress-Anwendungspods für das Deployment auswählen. Jeder Pod erfordert Zugriff auf persistenten Shared Storage. Um den Speicher bereitzustellen, wird im Cluster eine Speicherklassenressource erstellt, die einer NFS-Freigabe in File Storage zugeordnet ist. Eine Ressource mit persistentem Volume macht dann den von der Speicherklasse angebotenen Speicher für Ressourcen im Cluster nutzbar. Eine persistente Volume Claim-(PVC-)Ressource wird erstellt, um anzugeben, dass Pods den Speicher verwenden möchten. Der PVC wird in den WordPress-Anwendungspods zugeordnet, um auf den Speicher zuzugreifen.

Die Datenbank für die Anwendung WordPress verwendet MySQL Database Service. Die MySQL Database Service-Instanz wird aus dem OKE-Cluster als benutzerdefinierte Ressource erstellt und verwaltet, die mit dem OCI Service Operator for Kubernetes (OSOK) definiert ist.

MySQL Database Service wird mit High Availability (HA) mit drei MySQL Database Service-Instanzen bereitgestellt, die über verschiedene Availability-Domains oder Faultdomains hinweg bereitgestellt sind. Die Anwendung WordPress 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 einen Failover zu einer sekundären Instanz durch, ohne die Anwendung WordPress neu zu konfigurieren.

Ein Load Balancer wird aus dem OKE-Cluster als Dienstressource mit dem Typ LoadBalancer erstellt und verwaltet.

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.

  • Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (OCI 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.

  • Dateispeicher

    Der Oracle Cloud Infrastructure File Storage Service stellt ein dauerhaftes, skalierbares, sicheres Netzwerkdateisystem der Unternehmensklasse bereit. Sie können über jede Bare-Metal-, VM- oder Containerinstanz in einem VCN eine Verbindung mit einem File Storage Service-Dateisystem herstellen. Sie können auch außerhalb des VCN mit Oracle Cloud Infrastructure FastConnect und IPSec-VPN auf ein Dateisystem zugreifen.

  • WordPress Contentmanagementsystem (CMS)

    WordPress CMS ermöglicht es Ihnen, eine voll funktionsfähige Blog-Website oder eine allgemeine Website zu erstellen.

  • 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

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • 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 WordPress CMS die relationalen Daten in Oracle MySQL Database Service. Wir empfehlen die Verwendung der neuesten Version.

Hinweise

Beachten Sie beim Deployment von WordPress in Oracle Cloud Folgendes hinsichtlich Skalierbarkeit und Verfügbarkeit:

  • Anwendungsverfügbarkeit

    Die Anwendung WordPress 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.

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 zeigt, wie Sie ein WordPress-Deployment mit einem MySQL Database-System als Datenbank in einem in OCI für HA oder Nicht-HA bereitgestellten Kubernetes-Cluster booten. Sie können den Code von GitHub herunterladen und an Ihre spezifischen Anforderungen anpassen.

  1. Gehen Sie zu GitHub - HA oder GitHub - non-HA.
  2. Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Rechner herunter.
  3. Befolgen Sie die Anweisungen im Dokument README.

Danksagungen

  • Autoren: Chiping Hwang, Hassan Ajan
  • Mitwirkende: Anupama Pundpal