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

Prerequisiti

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.

  1. Scaricare il file zip di rilascio contenente i file terraform da github: karmada-on-oke.

  2. Utilizzare Oracle Resource Manager per creare e applicare lo stack.

    1. Utilizzare il menu hamburger per accedere a Oracle Resource Manager.
    2. Scegliere Stacks.
    3. Selezionare Create stack.
    4. Selezionare My configuration.
    5. Nella sezione My configuration, assicurarsi che Zip file sia selezionato. Scegliere il file zip scaricato in precedenza. Selezionare Upload.
    6. Assegnare un nome significativo allo stack.
    7. Selezionare Next.
    8. Scegliere la chiave pubblica ssh che verrà utilizzata per connettersi alla VM.
    9. Scegliere il compartimento in cui verranno create le risorse.
    10. Selezionare Next.
    11. Nella schermata successiva selezionare Run apply.
    12. Selezionare Create.
  3. 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

  1. Utilizzando l'IP ottenuto in precedenza, utilizzare ssh per connettersi alla VM:
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. Passa all'utente root:

    sudo su -
    
  3. Installare i componenti karmada nel cluster host:

    karmadactl init
    

Task 3: Join di membri cluster OKE

  1. Entra nel cluster member1:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member1 --cluster-kubeconfig=$HOME/.kube/config-k1
    
  2. Entra nel cluster member2:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member2 --cluster-kubeconfig=$HOME/.kube/config-k2
    
  3. Visualizza cluster membri:

    karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  get clusters
    

Task 4: Distribuisci carico di lavoro su Karmada

  1. Impostare KUBECONFIG per puntare al server karmada-api:

    export KUBECONFIG=/etc/karmada/karmada-apiserver.config
    
  2. 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
    
  3. Verificare la distribuzione:

    karmadactl  get deployment --operation-scope all
    

    L'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   Y
    

    Si noti che tra i tre pod, due sono in esecuzione su member2 e uno su member1.

Task 5: Pulizia

  1. Disinstallazione dei componenti karmada dal cluster host:
karmadactl --kubeconfig /root/.kube/config deinit
  1. Distruggere le risorse create utilizzando lo stack terraform:

Conferme

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.