Gérer la charge de travail sur plusieurs grappes OKE à l'aide de Karmada

Présentation

Karmada (abréviation de Kubernetes Armada) est une plateforme de gestion qui vous permet d'exécuter des applications en nuage natives de façon transparente sur plusieurs grappes Kubernetes et environnements en nuage sans avoir à modifier vos applications. En tirant parti des API natives de Kubernetes et des fonctions de programmation avancées, Karmada offre une expérience Kubernetes ouverte et véritablement multinuage.

Conçu pour les cas d'utilisation multinuages et hybrides, Karmada fournit une automatisation clé en main pour la gestion des applications sur l'ensemble des grappes. Ses principales capacités comprennent la gestion centralisée, la haute disponibilité, la reprise après sinistre automatisée et la planification intelligente du trafic.

Objectifs

Conditions requises

Tâche 1 : Créer les ressources nécessaires pour la démonstration

Note : Les étapes suivantes montrent comment déployer 3 grappes OKE et 1 machine virtuelle qui seront utilisées lors de la démonstration.

  1. Téléchargez le fichier zip de version contenant les fichiers terraform de github : karmada-on-oke.

  2. Utilisez Oracle Resource Manager pour créer et appliquer la pile.

    1. À l'aide du menu hamburger, allez à Oracle Resource Manager.
    2. Sélectionnez Stacks.
    3. Sélectionnez Create stack.
    4. Sélectionnez My configuration.
    5. Dans la section My configuration, assurez-vous que Zip file est sélectionné. Sélectionnez le fichier zip que vous avez téléchargé précédemment. Sélectionnez Upload.
    6. Attribuez un nom significatif à la pile.
    7. Sélectionnez Next.
    8. Sélectionnez la clé publique SSH qui sera utilisée pour la connexion à la machine virtuelle.
    9. Sélectionnez le compartiment dans lequel les ressources seront créées.
    10. Sélectionnez Next.
    11. Dans l'écran suivant, sélectionnez Run apply.
    12. Sélectionnez Create.
  3. Obtenez l'adresse IP publique de la machine virtuelle.

    Une fois la tâche exécutée avec succès à l'étape précédente, la dernière ligne du journal doit inclure l'adresse IP publique de la machine virtuelle. Enregistrez-le pour une utilisation ultérieure.

Tâche 2 : Installer Karmada sur la grappe d'hôtes

  1. À l'aide de l'adresse IP précédemment obtenue, utilisez ssh pour vous connecter à la machine virtuelle :
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. Passer à l'utilisateur racine :

    sudo su -
    
  3. Installez les composants karmada sur la grappe hôte :

    karmadactl init
    

Tâche 3 : Se joindre aux membres du cluster OKE

  1. Jointure de la grappe member1 :

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member1 --cluster-kubeconfig=$HOME/.kube/config-k1
    
  2. Jointure de la grappe member2 :

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member2 --cluster-kubeconfig=$HOME/.kube/config-k2
    
  3. Afficher les grappes de membres :

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

Tâche 4 : Déployer la charge de travail sur Karmada

  1. Définissez KUBECONFIG pour pointer vers le serveur karmada-api :

    export KUBECONFIG=/etc/karmada/karmada-apiserver.config
    
  2. Créez le déploiement et la politique de propagation correspondante :

    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. Vérifiez le déploiement :

    karmadactl  get deployment --operation-scope all
    

    La sortie doit être similaire à :

    # 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
    

    Notez que sur les trois pods, deux s'exécutent sur member2 et un sur member1.

Tâche 5 : Nettoyage

  1. Désinstallez les composants karmada de la grappe hôte :
karmadactl --kubeconfig /root/.kube/config deinit
  1. Détruisez les ressources créées à l'aide de la pile terraform :

Remerciements

Ressources d'apprentissage supplémentaires

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur la chaîne YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.