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
-
Installez les composants
karmadasur une grappe OKE hôte. -
Joignez 2 grappes de membres OKE à karmada.
-
Créer un déploiement avec des pods répartis sur 2 grappes OKE.
Conditions requises
-
Location active sur OCI
-
Utilisateur disposant des privilèges suffisants pour créer les ressources
Note : Vous ne pouvez utiliser l'identité de charge de travail que pour les grappes améliorées.
-
Compartiment déjà créé dans lequel déployer des ressources
-
Groupe dynamique pour toutes les machines virtuelles du compartiment :
All {instance.compartment.id = 'ocid1.compartment.oc1...'} -
Politique d'exécution des commandes de l'interface de ligne de commande OCI à l'aide du principal d'instance :
allow dynamic-group <dynamic-group-name> to manage cluster-family in compartment <compartment-name>
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.
-
Téléchargez le fichier zip de version contenant les fichiers terraform de github : karmada-on-oke.
-
Utilisez Oracle Resource Manager pour créer et appliquer la pile.
- À l'aide du menu hamburger, allez à Oracle Resource Manager.
- Sélectionnez
Stacks. - Sélectionnez
Create stack. - Sélectionnez
My configuration. - Dans la section
My configuration, assurez-vous queZip fileest sélectionné. Sélectionnez le fichier zip que vous avez téléchargé précédemment. SélectionnezUpload. - Attribuez un nom significatif à la pile.
- Sélectionnez
Next. - Sélectionnez la clé publique SSH qui sera utilisée pour la connexion à la machine virtuelle.
- Sélectionnez le compartiment dans lequel les ressources seront créées.
- Sélectionnez
Next. - Dans l'écran suivant, sélectionnez
Run apply. - Sélectionnez
Create.
-
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
- À 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> -
Passer à l'utilisateur racine :
sudo su - -
Installez les composants karmada sur la grappe hôte :
karmadactl init
Tâche 3 : Se joindre aux membres du cluster OKE
-
Jointure de la grappe
member1:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member1 --cluster-kubeconfig=$HOME/.kube/config-k1 -
Jointure de la grappe
member2:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member2 --cluster-kubeconfig=$HOME/.kube/config-k2 -
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
-
Définissez
KUBECONFIGpour pointer vers le serveur karmada-api :export KUBECONFIG=/etc/karmada/karmada-apiserver.config -
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 -
Vérifiez le déploiement :
karmadactl get deployment --operation-scope allLa 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 YNotez que sur les trois pods, deux s'exécutent sur
member2et un surmember1.
Tâche 5 : Nettoyage
- Désinstallez les composants karmada de la grappe hôte :
karmadactl --kubeconfig /root/.kube/config deinit
- Détruisez les ressources créées à l'aide de la pile terraform :
- Revenez à Oracle Resource Manager.
- Sélectionnez la pile que vous avez créée.
- Sélectionnez
Destroy.
Remerciements
- Auteur - Daniel Dinu (ingénieur principal en nuage)
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.
Manage Workload on Multiple OKE Clusters Using Karmada
G55116-01