Gérer la charge globale sur plusieurs clusters OKE à l'aide de Karmada

Introduction

Karmada (abréviation de Kubernetes Armada) est une plate-forme de gestion qui vous permet d'exécuter des applications cloud natives en toute transparence sur plusieurs clusters Kubernetes et environnements cloud sans nécessiter de modification de vos applications. En tirant parti des API natives de Kubernetes et des fonctionnalités de planification avancées, Karmada offre une expérience Kubernetes ouverte et véritablement multicloud.

Conçue pour les cas d'utilisation multicloud et cloud hybride, Karmada fournit une automatisation clé en main pour la gestion des applications dans les clusters. Ses principales fonctionnalités comprennent la gestion centralisée, la haute disponibilité, la récupération automatisée des pannes et la planification intelligente du trafic.

Objectifs

Prérequis

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

Remarque : les étapes suivantes montrent comment déployer 3 clusters OKE et 1 machine virtuelle qui seront utilisés au cours de la démonstration.

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

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

    1. Dans le menu latéral, accédez à 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é. Choisissez le fichier ZIP que vous avez précédemment téléchargé. Sélectionnez Upload.
    6. Donnez un nom explicite à la pile.
    7. Sélectionnez Next.
    8. Choisissez la clé publique SSH qui sera utilisée pour la connexion à la machine virtuelle.
    9. Choisissez le compartiment dans lequel les ressources seront créées.
    10. Sélectionnez Next.
    11. Sur l'écran suivant, sélectionnez Run apply.
    12. Sélectionnez Create (Créer).
  3. Obtenez l'adresse IP publique de la machine virtuelle.

    Une fois le travail exécuté 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 : installation de Karmada sur le cluster hôte

  1. En utilisant l'adresse IP précédemment obtenue, utilisez ssh pour vous connecter à la machine virtuelle :
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. Passez à l'utilisateur root :

    sudo su -
    
  3. Installez les composants karmada sur le cluster hôte :

    karmadactl init
    

Tâche 3 : rejoindre les membres du cluster OKE

  1. Rejoignez le cluster member1 :

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

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

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

Tâche 4 : Déployer la charge globale 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 stratégie 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 valeur de 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
    

    Sur les trois pods, deux sont en cours d'exécution sur member2 et un sur member1.

Tâche 5 : nettoyage

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

Accusés de réception

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur la chaîne YouTube Oracle Learning. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

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