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
-
Installez les composants
karmadasur un cluster OKE hôte. -
Rejoignez 2 clusters membres OKE pour karmada.
-
Créez un déploiement avec des pods répartis sur 2 clusters OKE.
Prérequis
-
Location active sur OCI
-
Un utilisateur disposant de privilèges suffisants pour créer les ressources
Remarque : vous ne pouvez utiliser l'identité de charge globale que pour les clusters améliorés.
-
Compartiment déjà créé dans lequel déployer les ressources
-
Groupe dynamique pour toutes les machines virtuelles du compartiment :
All {instance.compartment.id = 'ocid1.compartment.oc1...'} -
Stratégie permettant d'exécuter 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
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.
-
Téléchargez le fichier ZIP de version contenant les fichiers terraform à partir de github : karmada-on-oke.
-
Utilisez Oracle Resource Manager pour créer et appliquer la pile.
- Dans le menu latéral, accédez à 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é. Choisissez le fichier ZIP que vous avez précédemment téléchargé. SélectionnezUpload. - Donnez un nom explicite à la pile.
- Sélectionnez
Next. - Choisissez la clé publique SSH qui sera utilisée pour la connexion à la machine virtuelle.
- Choisissez le compartiment dans lequel les ressources seront créées.
- Sélectionnez
Next. - Sur l'écran suivant, sélectionnez
Run apply. - Sélectionnez
Create(Créer).
-
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
- 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> -
Passez à l'utilisateur root :
sudo su - -
Installez les composants karmada sur le cluster hôte :
karmadactl init
Tâche 3 : rejoindre les membres du cluster OKE
-
Rejoignez le cluster
member1:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member1 --cluster-kubeconfig=$HOME/.kube/config-k1 -
Rejoignez le cluster
member2:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member2 --cluster-kubeconfig=$HOME/.kube/config-k2 -
Afficher les clusters membres :
karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
Tâche 4 : Déployer la charge globale 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 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 -
Vérifiez le déploiement :
karmadactl get deployment --operation-scope allLa 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 YSur les trois pods, deux sont en cours d'exécution sur
member2et un surmember1.
Tâche 5 : nettoyage
- Désinstallez les composants karmada du cluster 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.
Accusés de réception
- Auteur - Daniel Dinu (ingénieur principal en cloud)
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.
Manage Workload on Multiple OKE Clusters Using Karmada
G55117-01