Workload in mehreren OKE-Clustern mit Karmada verwalten
Einführung
Karmada (Kurzform für Kubernetes Armada) ist eine Managementplattform, mit der Sie cloudnative Anwendungen nahtlos über mehrere Kubernetes-Cluster und Cloud-Umgebungen hinweg ausführen können, ohne dass Änderungen an Ihren Anwendungen erforderlich sind. Durch die Nutzung von Kubernetes-nativen APIs und erweiterten Planungsfunktionen bietet Karmada ein offenes und wirklich Multi-Cloud-Kubernetes-Erlebnis.
Karmada wurde für Multi-Cloud- und Hybrid-Cloud-Anwendungsfälle entwickelt und bietet schlüsselfertige Automatisierung für die Verwaltung von Anwendungen über Cluster hinweg. Seine Kernfunktionen umfassen zentralisiertes Management, hohe Verfügbarkeit, automatisierte Fehlerwiederherstellung und intelligente Verkehrsplanung.
Ziele
-
Installieren Sie
karmada-Komponenten in einem Host-OKE-Cluster. -
Verbinden Sie 2 OKE-Mitgliedscluster mit karmada.
-
Erstellen Sie ein Deployment mit Pods, die auf 2 OKE-Cluster verteilt sind.
Voraussetzungen
-
Aktiver Mandant auf OCI
-
Ein Benutzer mit ausreichenden Berechtigungen zum Erstellen der Ressourcen
Hinweis: Sie können die Workload-Identität nur für erweiterte Cluster verwenden.
-
Ein Compartment, in dem Ressourcen bereitgestellt werden sollen, wurde bereits erstellt
-
Dynamische Gruppe für alle VMs im Compartment:
All {instance.compartment.id = 'ocid1.compartment.oc1...'} -
Policy zur Ausführung von OCI-CLI-Befehlen mit Instanz-Principal:
allow dynamic-group <dynamic-group-name> to manage cluster-family in compartment <compartment-name>
Aufgabe 1: Erforderliche Ressourcen für die Demo erstellen
Hinweis: Die folgenden Schritte zeigen, wie Sie 3 OKE-Cluster und 1 VM bereitstellen, die während der Demo verwendet werden.
-
Laden Sie die Release-ZIP-Datei mit den Terraform-Dateien von github herunter: karmada-on-oke.
-
Verwenden Sie Oracle Resource Manager, um den Stack zu erstellen und anzuwenden.
- Navigieren Sie über das Hamburger-Menü zu Oracle Resource Manager.
- Wählen Sie
Stacks. - Wählen Sie
Create stackaus. - Wählen Sie
My configurationaus. - Stellen Sie im Abschnitt
My configurationsicher, dassZip fileausgewählt ist. Wählen Sie die ZIP-Datei aus, die Sie zuvor heruntergeladen haben. Wählen SieUploadaus. - Geben Sie dem Stack einen aussagekräftigen Namen.
- Wählen Sie
Next. - Wählen Sie den SSH-Public Key aus, mit dem eine Verbindung zur VM hergestellt werden soll.
- Wählen Sie das Compartment aus, in dem die Ressourcen erstellt werden.
- Wählen Sie
Next. - Wählen Sie im nächsten Bildschirm
Run applyaus. - Wählen Sie
Createaus.
-
Rufen Sie die öffentliche IP der VM ab.
Wenn der Job aus dem vorherigen Schritt erfolgreich ausgeführt wurde, muss die letzte Zeile im Log die öffentliche IP der VM enthalten. Notieren Sie es für die spätere Verwendung.
Aufgabe 2: Karmada auf Hostcluster installieren
- Verwenden Sie die zuvor erhaltene IP mit ssh, um eine Verbindung zur VM herzustellen:
ssh -i <private-ssh-key> opc@<public-IP> -
Zu Root-Benutzer wechseln:
sudo su - -
Installieren Sie karmada-Komponenten auf dem Hostcluster:
karmadactl init
Aufgabe 3: OKE-Clustermitglieder beitreten
-
Join-Cluster
member1:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member1 --cluster-kubeconfig=$HOME/.kube/config-k1 -
Join-Cluster
member2:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member2 --cluster-kubeconfig=$HOME/.kube/config-k2 -
Member-Cluster anzeigen:
karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
Aufgabe 4: Workload auf Karmada bereitstellen
-
Setzen Sie
KUBECONFIGso, dass es auf den karmada-api-Server verweist:export KUBECONFIG=/etc/karmada/karmada-apiserver.config -
Erstellen Sie das Deployment und die entsprechende Propagierungs-Policy:
kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/deployment.yaml kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/propagationpolicy.yaml -
Prüfen Sie das Deployment:
karmadactl get deployment --operation-scope allAusgabe sollte dem Nachstehenden ähneln:
# karmadactl get deployment --operation-scope all NAME CLUSTER READY UP-TO-DATE AVAILABLE AGE ADOPTION nginx Karmada 3/3 3 3 22m - nginx member2 2/2 2 2 22m Y nginx member1 1/1 1 1 22m YBeachten Sie, dass von den drei Pods zwei auf
member2und ein aufmember1ausgeführt werden.
Aufgabe 5: Bereinigen
- Deinstallieren Sie karmada-Komponenten aus dem Hostcluster:
karmadactl --kubeconfig /root/.kube/config deinit
- Zerstören Sie die mit dem Terraform-Stack erstellten Ressourcen:
- Navigieren Sie zurück zu Oracle Resource Manager.
- Wählen Sie den erstellten Stack aus.
- Wählen Sie
Destroyaus.
Bestätigungen
- Autor – Daniel Dinu (Principal Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich weitere Übungen auf docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im YouTube-Kanal von Oracle Learning zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Manage Workload on Multiple OKE Clusters Using Karmada
G55114-01