Hinweis:
- Dieses Tutorial ist in einer von Oracle bereitgestellten freien Laborumgebung verfügbar.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch Werte, die speziell für Ihre Cloud-Umgebung gelten.
Externen Load Balancer mit Oracle Cloud Native Environment bereitstellen
Einführung
Oracle Cloud Native Environment ist eine vollständig integrierte Suite für die Entwicklung und Verwaltung von cloud-nativen Anwendungen. Das Kubernetes-Modul ist das Core-Modul. Es wird zur Bereitstellung und Verwaltung von Containern verwendet und installiert und konfiguriert außerdem CRI-O-, runC- und Kata-Container automatisch. CRI-O verwaltet die Containerlaufzeit für ein Kubernetes-Cluster. Die Laufzeit kann runC oder Kata Containers sein.
Ziele
In dieser Übung erfahren Sie, wie Sie die folgenden Aktionen durchführen:
- Konfigurieren Sie das Kubernetes-Cluster mit dem Oracle Cloud Infrastructure-Load Balancer für High Availability
- Oracle Cloud Native Environment in einem Cluster mit 5 Knoten konfigurieren
- Prüfen Sie, ob der Load Balancer-Failover zwischen den Control-Plane-Knoten erfolgreich abgeschlossen wird
Supporthinweis: Verwenden Sie einen externen Load Balancer, wie den für Produktions-Deployments empfohlenen IS von Oracle Cloud Instructure Load Balancer.
Voraussetzungen
In diesem Abschnitt werden die Hostsysteme aufgeführt, auf denen die Schritte in diesem Tutorial ausgeführt werden. Sie benötigen:
-
6 Oracle Linux-Systeme als:
- Operatorknoten (ocne-operator)
- 3 Kubernetes-Control-Plane-Knoten (ocne-control01, ocne-control02, ocne-control03)
- 2 Kubernetes-Worker-Knoten (ocne-worker01, ocne-worker02)
- 1 Oracle Linux-System mit installiertem kubectl (sysop01)
Hinweis: In einer Produktionsumgebung wird empfohlen, ein Cluster mit mindestens fünf Control-Plane-Knoten und mindestens drei Worker-Knoten zu verwenden.
-
Auf jedem System muss mindestens Folgendes installiert sein:
- Neueste Installation von Oracle Linux 8 (x86_64) und Ausführung von Unbreakable Enterprise Kernel Release 6 (UEK R6)
-
Diese Umgebung ist mit den folgenden Elementen vorkonfiguriert:
oracle-Benutzerkonto erstellt (wird bei der Installation verwendet)- Zugriff auf
oracle-Accountsudoerteilt - Schlüsselbasierte SSH, auch als kennwortloses SSH bezeichnet, zwischen den Instanzen einrichten
- Oracle Cloud Native Environment Release 1.5 installiert (aber keine Umgebung erstellt)
Übungsumgebung einrichten
Hinweis: Bei Verwendung der kostenlosen Übungsumgebung finden Sie unter Oracle Linux Lab - Grundlagen weitere Anweisungen zur Verbindung und Verwendung.
Diese Übung umfasst mehrere Systeme, die jeweils unterschiedliche Schritte erfordern. Es wird empfohlen, zunächst ein Terminalfenster oder eine Registerkarte zu öffnen und eine Verbindung zu den folgenden Knoten herzustellen. Dadurch müssen Sie sich nicht wiederholt anmelden und abmelden. Die Knoten sind:
- Netzbetreiber
- Jeder von:
- ocne-control01
- ocne-control02
- ocne-control03
- sysop01
-
Öffnen Sie ein Terminal, und verbinden Sie sich über SSH mit jedem der Knoten.
ssh oracle@<ip_address_of_ol_node>
Load Balancer einrichten (optional)
Hinweis: Wenn Sie die freie Laborumgebung verwenden, sind die in diesem Abschnitt beschriebenen Schritte nicht erforderlich, da sie in der ersten Deployment-Phase der Übung abgeschlossen wurden. Stattdessen müssen Luna Lab-Benutzer direkt mit der nächsten Seite fortfahren: CLI-Konfigurationsdatei für Plattform erstellen und von dort fortfahren. Andernfalls werden die Details zur Konfiguration für Benutzer angegeben, die diese Schritte in ihrem eigenen Oracle Cloud Infrastructure-Mandanten replizieren möchten.
Oracle Cloud Infrastructure-Load Balancer erstellen
-
Melden Sie sich bei der Cloud-Konsole an.

-
Klicken Sie oben links auf das Hamburger-Menü und dann auf Networking und Load Balancer.

-
Die Seite Load Balancer wird angezeigt.

-
Suchen Sie das verwendete Compartment in der Dropdown-Liste.

-
Klicken Sie auf die Schaltfläche Load Balancer erstellen.

-
Klicken Sie im Popup-Dialogfeld auf die Schaltfläche Load Balancer erstellen, um den Standard-Load-Balancer-Typ auszuwählen.

Load Balancer-Details aktualisieren
-
Suchen Sie den Standardabschnitt Sichtbarkeitstyp, und klicken Sie auf die Option Privat.

-
Scrollen Sie auf der Seite weiter nach unten zum Abschnitt Networking auswählen.
-
Wählen Sie den im Dropdown-Listenfeld angegebenen Wert für Visuelles Cloud-Netzwerk und Subnetz aus.
Hinweis: Die im Bild angezeigten Werte werden bei jedem Start der Übung unterschiedlich sein.

-
Klicken Sie auf Weiter, um zum nächsten Schritt zu gehen.
Load Balancer Policy und Protokoll festlegen
-
Legen Sie nun die Load Balancing Policy und das Health Check Protocol fest.
- Übernehmen Sie die Standardeinstellung Load Balancing Policy mit dem Wert Weighted Round Robin.
-
Geben Sie im Abschnitt Health Check Policy angeben die angezeigten Einstellungen ein.
- Wählen Sie unter Protokoll die Option TCP aus.
- Ändern Sie den Wert für Port von 80 in 6443.

Backend-Knoten hinzufügen
-
Klicken Sie auf Backends hinzufügen, um ein Fenster anzuzeigen.

-
Wählen Sie die folgenden Knoten aus, und klicken Sie auf die Schaltfläche Ausgewählte Backends hinzufügen.
- ocne-control01
- ocne-control02
- ocne-control03
-
Aktualisieren Sie die Spalte Port für jeden der neu ausgewählten Backend-Server vom Standardwert 80 in 6443.

-
Klicken Sie auf die Schaltfläche Weiter, um mit dem nächsten Schritt fortzufahren.
Load Balancer Listener konfigurieren
-
Wählen Sie die Schaltfläche TCP.
-
Ändern Sie den Port für Ingress-Traffic von 443 zu 6443
Die eingegebenen Werte sollten wie in diesem Bild aussehen.

-
Klicken Sie auf die Schaltfläche Weiter.
Load Balancer Logging konfigurieren
-
Der letzte Schritt beim Setup ist die Option Logging verwalten.

Da für dieses Szenario keine Änderungen erforderlich sind, klicken Sie auf die Schaltfläche Weiterleiten, um den Load Balancer zu erstellen.
Load Balancer-Informationen
-
Nach der Erstellung wird eine Übersichtsseite für den neu erstellten Load Balancer angezeigt.

Hinweis: Die Abschnitte Gesamtzustand und Zustand der Backend-Sets sind möglicherweise nicht als OK (Grün) dargestellt. Das liegt daran, dass Oracle Cloud Native Environment noch nicht auf der Kubernetes-Control Plane und den Worker-Knoten erstellt wurde. In den nächsten Schritten geht es darum.
Plattform-CLI-Konfigurationsdatei erstellen
Administratoren können eine Konfigurationsdatei verwenden, um das Erstellen und Verwalten von Umgebungen und Modulen zu vereinfachen. Die in einer gültigen YAML-Syntax geschriebene Konfigurationsdatei enthält alle Informationen über die zu erstellenden Umgebungen und Module. Mit einer Konfigurationsdatei werden wiederholte Einträge der CLI-Befehlsoptionen der Plattform gespeichert.
Hinweis: Wenn mehrere Control-Plane-Knoten in myenvironment.yaml zur Konfiguration von Oracle Cloud Native Environment eingegeben werden, erfordert olcnectl, dass Details eines Load Balancers (in unserem Fall Oracle Cloud Infrastructure Load Balancer) in die Datei myenvironment.yaml eingegeben werden. Erzielen Sie dies, indem Sie ein neues Argument (
load-balancer: <enter-your-OCI-LB-ip-here>) in myenvironment.yaml eingeben.
Beispielkonfigurationsdatei:
environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/configs/certificates/production/ca.cert olcne-node-cert-path: /etc/olcne/configs/certificates/production/node.cert olcne-node-key-path: /etc/olcne/configs/certificates/production/node.key modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: 10.0.0.<XXX>:6443 master-nodes: ocne-control01:8090,ocne-control02:8090,ocne-control03:8090 worker-nodes: ocne-worker01:8090,ocne-worker02:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/node.cert restrict-service-externalip-tls-key: /etc/olcne/configs/certificates/restrict_external_ip/production/node.key
Während des Deployments der Übung wird automatisch eine Konfigurationsdatei generiert und kann in der Übung verwendet werden. Weitere Informationen zum manuellen Erstellen einer Konfigurationsdatei finden Sie in der Dokumentation unter Using a Configuration File.
Aktualisieren Sie die Konfigurationsdatei.
-
(Auf ocne-operator) Zeigen Sie den Inhalt der Konfigurationsdatei an.
cat ~/myenvironment.yaml -
(Unter ocne-operator) Fügen Sie den Adresswert für Load Balancer IPv4 zur Datei myenvironment.yaml hinzu.
LB_IP=$(oci lb load-balancer list --auth instance_principal --compartment-id $COMPARTMENT_OCID | jq -r '.data[]."ip-addresses"[]."ip-address"') sed -i "14i\ load-balancer: $LB_IP:6443" ~/myenvironment.yamlDamit der obige Befehl erfolgreich ausgeführt wird, müssen die folgenden vorbereitenden Schritte auf dem Operatorknoten ausgeführt werden. Diese Schritte werden im Rahmen der Bereitstellung der kostenlosen Übung für Sie ausgeführt.
-
Oracle Cloud Infrastructure-CLI wurde installiert.
-
Suchen Sie die OCID des Compartments, in dem Oracle Cloud Native Environment bereitgestellt wird.
-
Diese Umgebungsvariablen wurden der Datei
~/.bashrcdes Benutzers hinzugefügt.COMPARTMENT_OCID=<compartment_ocid>LC_ALL=C.UTF-8LANG=C.UTF-8
-
-
(Bei ocne-operator) Vergewissern Sie sich, dass der Load Balancer-Wert zur Datei myenviroment.yaml hinzugefügt wurde.
cat ~/myenvironment.yaml
Umgebung und Kubernetes-Modul erstellen
-
(Bei ocne-operator) Erstellen Sie die Umgebung.
cd ~ olcnectl environment create --config-file myenvironment.yamlBeispielausgabe:
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created. -
(Auf ocne-operator) Erstellen Sie das Kubernetes-Modul.
olcnectl module create --config-file myenvironment.yamlBeispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully. -
(Auf ocne-operator) Validieren Sie das Kubernetes-Modul.
olcnectl module validate --config-file myenvironment.yamlBeispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.In dieser freien Übungsumgebung gibt es keine Validierungsfehler. Wenn Fehler auftreten, werden die Befehle, die zum Beheben der Knoten erforderlich sind, als Ausgabe dieses Befehls bereitgestellt.
-
(Installieren Sie auf ocne-operator das Kubernetes-Modul.
olcnectl module install --config-file myenvironment.yamlHinweis: Das Deployment von Kubernetes auf den Knoten dauert einige Minuten.
Beispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully. -
(Auf ocne-operator) Prüfen Sie das Deployment des Kubernetes-Moduls.
olcnectl module instances --config-file myenvironment.yamlBeispielausgabe:
[oracle@ocne-operator ~]$ olcnectl module instances --config-file myenvironment.yaml INSTANCE MODULE STATE mycluster kubernetes installed ocne-control01:8090 node installed ocne-control02:8090 node installed ocne-control03:8090 node installed ocne-worker01:8090 node installed ocne-worker02:8090 node installed [oracle@ocne-operator ~]$
kubectl einrichten
-
(Richten Sie auf dem Knoten ocne-controlxx den Befehl
kubectlein.mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc -
(Unter sysop01) Richten Sie den Befehl
kubectlein.-
Kopieren Sie die Konfigurationsdatei von einem der Control-Plane-Knoten.
mkdir -p $HOME/.kube ssh -o StrictHostKeyChecking=no 10.0.0.150 "sudo cat /etc/kubernetes/admin.conf" > $HOME/.kube/config -
Exportieren Sie die Konfiguration zur Verwendung durch den Befehl
kubectl.sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
-
(Unter sysop01) Prüfen Sie, ob
kubectlfunktioniert.kubectl get nodesBeispielausgabe:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 5m10s v1.23.7+1.el8 ocne-control02 Ready control-plane,master 3m33s v1.23.7+1.el8 ocne-control03 Ready control-plane,master 4m29s v1.23.7+1.el8 ocne-worker01 Ready <none> 3m15s v1.23.7+1.el8 ocne-worker02 Ready <none> 3m8s v1.23.7+1.el8 [oracle@sysop01 ~]$
Bestätigen, dass der Load Balancer einen Control-Plane-Knotenausfall verwaltet
Die Installation von Oracle Cloud Native Environment mit drei Control-Plane-Knoten hinter einem externen Load-Balancer ist abgeschlossen.
Im nächsten Abschnitt wird bestätigt, dass der externe Load Balancer erkennt, wenn ein Control-Plane-Knoten ausfällt, und ihn aus der Trafficverteilungs-Policy Round Robin entfernt. Der letzte Testschritt zeigt, dass der Knoten, der "fehlende" wiederherstellt, automatisch wieder mit dem Cluster verbunden wird und wieder verfügbar wird, um clusterbasierten Traffic zu verarbeiten.
Bestätigen, dass der Load Balancer aktiv ist
Wenn Sie die kostenlose Übungsumgebung verwenden, melden Sie sich wie in der Dokumentation zu Oracle Linux-Übungen beschrieben bei der Cloud-Konsole an.
Auf die Load Balancer-Details zugreifen
-
Melden Sie sich bei der Cloud-Konsole an, falls noch nicht geschehen.

-
Klicken Sie oben links auf das Hamburger-Menü und dann auf Networking und Load Balancer.

-
Daraufhin wird die Seite Load Balancer angezeigt.

-
Suchen Sie das verwendete Compartment in der Dropdown-Liste.

Wenn Sie Anweisungen zu diesem Schritt benötigen, finden Sie weitere Informationen unter Oracle Linux Lab - Grundlagen.
-
Die im Voraus erstellten Details der Load Balancer-Zusammenfassung sollten diesem Image ähneln.

-
Klicken Sie auf den Link ocne-load-balancer.
-
Scrollen Sie nach unten zum Link Backend-Sets (links im Browser unter der Überschrift Ressourcen).
-
Klicken Sie auf den Link Backend-Sets.

-
Ein Link zum vorhandenen Backend-Set wird angezeigt. Klicken Sie auf den Link (in diesem Beispiel ocne-lb-backend-set).

-
Klicken Sie auf den Link Backends (links im Browser unter der Überschrift Ressourcen).

-
Auf dem Bildschirm wird bestätigt, dass drei fehlerfreie Knoten vorhanden sind.

Eine der Control-Plane-Knoteninstanzen stoppen
-
Klicken Sie auf das Hamburger-Menü (oben links), und navigieren Sie zu Compute und dann zu Instanzen.

-
Die Seite Instanzen wird angezeigt.

-
Klicken Sie auf einen der aufgeführten Control-Plane-Knoten (Beispiel: ocne-control01).
-
Die Instanzdetails werden angezeigt.

-
Klicken Sie auf die Schaltfläche *Stoppen.
-
Aktivieren Sie im Popup-Dialogfeld das Kontrollkästchen Stopp der Instanz durch sofortiges Ausschalten erzwingen, und klicken Sie dann auf die Schaltfläche Stopp der Instanz erzwingen.
Hinweis: Führen Sie diesen Vorgang NICHT für ein Produktionssystem aus, da es zu Datenverlust, Beschädigung oder schlechterem Datenverlust im gesamten System führen kann.

-
Warten Sie, bis auf der Seite "Instanzdetails" bestätigt wird, dass die Instanz Gestoppt ist.

Prüfen Sie, ob der Oracle Cloud Infrastructure Load Balancer den Fehler auf dem Control-Plane-Knoten registriert
-
Navigieren Sie zu Networking > Load Balancer.
-
Klicken Sie auf den Link ocne-load-balancer.
-
Klicken Sie unter Ressourcen im unteren linken Bereich auf Backend-Sets.
-
Klicken Sie anschließend auf den angezeigten Namen in der Tabelle Backend-Sets (Beispiel: ocne-lb-backend-set).
-
Klicken Sie auf Backends, um die Knoten anzuzeigen.
Der Status dieser Seite sollte automatisch aktualisiert werden. Die Änderung des angezeigten Status dauert in der Regel 2-3 Minuten.
-
Die anfänglich gemeldete Phase muss den Status Warnung aufweisen.

-
Einige Minuten später (~2-3 Minuten) wird der Status auf Kritisch aktualisiert. Das bedeutet, dass der Knoten vom Load Balancer-Prozess von Oracle Cloud Infrastructure als nicht reagiert. Daher leitet der Load Balancer eingehende Anforderungen nicht mehr an den nicht verfügbaren Backend-Kontrollplanknoten weiter.

Bestätigen Sie, dass das Oracle Cloud Native Environment-Cluster reagiert
Da mindestens zwei aktive Member im Cluster verbleiben, müssen die aktiven Control-Plane-Knoten auf kubectl-Befehle reagieren.
-
(Bei sysop01) Stellen Sie sicher, dass
kubectlreagiert und den Control-Plane-Knoten, der gerade gestoppt wurde, alsNotReady(nicht verfügbar) meldet.kubectl get nodesBeispielausgabe:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 NotReady control-plane,master 26m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 25m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 24m v1.23.7+1.el8 ocne-worker01 Ready <none> 24m v1.23.7+1.el8 ocne-worker02 Ready <none> 26m v1.23.7+1.el8 [oracle@sysop01 ~]$Hinweis:* Es dauert wahrscheinlich 2 bis 3 Minuten, bis der Status **NotReady angezeigt wird. Wiederholen Sie den
kubectl get nodes-Befehl in regelmäßigen Abständen, bis sich der Status von Bereit zu NotReady ändert.
Gestoppten Control-Plane-Knoten neu starten
-
Navigieren Sie zu Compute > Instanzen.
-
Klicken Sie auf den Knoten der Control Plane, der zuvor gestoppt wurde.
-
Starten Sie die Instanz, indem Sie auf die Schaltfläche Starten klicken.
Warten Sie, bis im Abschnitt "Status" Grün angezeigt wird, und bestätigen Sie, dass die Instanz Wird ausgeführt ist.

Prüfen, ob der Control-Plane-Knoten erneut mit dem Oracle Cloud Infrastructure-Load-Balancer-Cluster verknüpft wird
-
Navigieren Sie zu Networking > Load Balancer.
-
Klicken Sie auf den Link ocne-load-balancer.
-
Klicken Sie unter Ressourcen im unteren linken Bereich auf Backend-Sets.
-
Klicken Sie anschließend auf den angezeigten Namen in der Tabelle Backend-Sets (Beispiel: ocne-lb-backend-set).
-
Klicken Sie auf Backends, um die Knoten anzuzeigen.
Der Status dieser Seite sollte automatisch aktualisiert werden. Die Änderung des angezeigten Status dauert in der Regel 2-3 Minuten.
-
Der Gesamtzustand zeigt den Status Warnung an, bis der neu gestartete Knoten erkannt wird.

-
Nach der Erkennung meldet der Gesamtzustand OK.

In dieser Phase hat der Kontrollknoten erneut mit dem Cluster verknüpft, und alle drei Control-Plane-Knoten sind an der Round-Robin-Aufteilung des eingehenden Traffics zum Cluster beteiligt.
Control-Plane-Knotenstatus abrufen
-
(Bei sysop01) Prüfen Sie, ob
kubectlreagiert und den Knoten der Control Plane meldet, der neu gestartet wurde, hat den StatusReady(Verfügbar).kubectl get nodesBeispielausgabe:
[oracle@sysop01 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 26m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 25m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 24m v1.23.7+1.el8 ocne-worker01 Ready <none> 24m v1.23.7+1.el8 ocne-worker02 Ready <none> 26m v1.23.7+1.el8 [oracle@sysop01 ~]$*Hinweis: Statusänderungen können 2-3 Minuten dauern, bevor der aktualisierte Status angezeigt wird. Wiederholen Sie den Befehl
kubectl get nodesin regelmäßigen Abständen, bis sich der Status ändert.Dadurch wird bestätigt, dass der Load Balancer korrekt konfiguriert wurde und Anforderungen erfolgreich akzeptiert.
Weitere Informationen
- Oracle Cloud Native Environment-Dokumentation
- Oracle Cloud Native Environment-Schulung
- Oracle Linux-Lernabonnement
- Oracle Linux-Curriculum
Weitere Lernressourcen
Sehen Sie sich weitere Übungen unter docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning-Kanal YouTube zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Deploy an External Load Balancer with Oracle Cloud Native Environment
F61283-03
September 2022
Copyright © 2022, Oracle and/or its affiliates.