Gestisci carico di lavoro su più cluster OKE mediante Karmada
Introduzione
Karmada (abbreviazione di Kubernetes Armada) è una piattaforma di gestione che ti consente di eseguire applicazioni cloud native senza problemi su più cluster Kubernetes e ambienti cloud senza richiedere modifiche alle tue applicazioni. Sfruttando le API native Kubernetes e le funzioni di pianificazione avanzate, Karmada offre un'esperienza Kubernetes aperta e davvero multi-cloud.
Progettato per casi d'uso multi-cloud e cloud ibrido, Karmada fornisce l'automazione chiavi in mano per la gestione delle applicazioni tra cluster. Le sue funzionalità principali includono la gestione centralizzata, l'alta disponibilità, il ripristino automatizzato dei guasti e la pianificazione intelligente del traffico.
Obiettivi
-
Installare i componenti
karmadain un cluster OKE host. -
Unisci 2 cluster di membri OKE a karmada.
-
Crea la distribuzione con pod distribuiti su 2 cluster OKE.
Prerequisiti
-
Tenancy attiva su OCI
-
Un utente con privilegi sufficienti per creare le risorse
Nota: è possibile utilizzare l'identità del carico di lavoro solo per i cluster avanzati.
-
Compartimento già creato in cui distribuire le risorse
-
Gruppo dinamico per tutte le VM nel compartimento:
All {instance.compartment.id = 'ocid1.compartment.oc1...'} -
Criterio per l'esecuzione dei comandi CLI OCI utilizzando il principal dell'istanza:
allow dynamic-group <dynamic-group-name> to manage cluster-family in compartment <compartment-name>
Task 1: Creare le risorse necessarie per la demo
Nota: i passi riportati di seguito mostrano come distribuire 3 cluster OKE e 1 VM che verranno utilizzati durante la demo.
-
Scaricare il file zip di rilascio contenente i file terraform da github: karmada-on-oke.
-
Utilizzare Oracle Resource Manager per creare e applicare lo stack.
- Utilizzare il menu hamburger per accedere a Oracle Resource Manager.
- Scegliere
Stacks. - Selezionare
Create stack. - Selezionare
My configuration. - Nella sezione
My configuration, assicurarsi cheZip filesia selezionato. Scegliere il file zip scaricato in precedenza. SelezionareUpload. - Assegnare un nome significativo allo stack.
- Selezionare
Next. - Scegliere la chiave pubblica ssh che verrà utilizzata per connettersi alla VM.
- Scegliere il compartimento in cui verranno create le risorse.
- Selezionare
Next. - Nella schermata successiva selezionare
Run apply. - Selezionare
Create.
-
Ottenere l'IP pubblico della VM.
Dopo un'esecuzione riuscita del job dal passo precedente, l'ultima riga del log deve includere l'IP pubblico della VM. Registrarlo per un uso successivo.
Task 2: Installare Karmada nel cluster host
- Utilizzando l'IP ottenuto in precedenza, utilizzare ssh per connettersi alla VM:
ssh -i <private-ssh-key> opc@<public-IP> -
Passa all'utente root:
sudo su - -
Installare i componenti karmada nel cluster host:
karmadactl init
Task 3: Join di membri cluster OKE
-
Entra nel cluster
member1:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member1 --cluster-kubeconfig=$HOME/.kube/config-k1 -
Entra nel cluster
member2:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member2 --cluster-kubeconfig=$HOME/.kube/config-k2 -
Visualizza cluster membri:
karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
Task 4: Distribuisci carico di lavoro su Karmada
-
Impostare
KUBECONFIGper puntare al server karmada-api:export KUBECONFIG=/etc/karmada/karmada-apiserver.config -
Creare la distribuzione e il criterio di propagazione corrispondente:
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 -
Verificare la distribuzione:
karmadactl get deployment --operation-scope allL'output dovrebbe essere simile a:
# 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 YSi noti che tra i tre pod, due sono in esecuzione su
member2e uno sumember1.
Task 5: Pulizia
- Disinstallazione dei componenti karmada dal cluster host:
karmadactl --kubeconfig /root/.kube/config deinit
- Distruggere le risorse create utilizzando lo stack terraform:
- Tornare a Oracle Resource Manager.
- Selezionare lo stack creato.
- Selezionare
Destroy.
Conferme
- Autore - Daniel Dinu (principal Cloud Engineer)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Manage Workload on Multiple OKE Clusters Using Karmada
G55118-01