Déployer des applications sur des nœuds et des pools de nœuds spécifiques
Découvrez comment déployer vos applications sur des nœuds et des pools de nœuds spécifiques, à l'aide de labels et de NodeAffinity, sur OVHcloud Managed Kubernetes
Objectif
Dans ce tutoriel, nous allons vous montrer comment déployer vos applications sur des Nodes et des Nodes Pools spécifiques, à l'aide des concepts Kubernetes labels et NodeAffinity, sur votre OVHcloud Managed Kubernetes Service.
L'exemple choisi ici tire parti d'une spécificité de facturation OVHcloud : utiliser la facturation mensuelle pour les nœuds que vous prévoyez également de conserver sur le long terme peut réduire vos coûts Kubernetes jusqu'à 50 %. Nous constatons que des clients ayant des workloads variés créent un premier pool de nœuds en facturation mensuelle pour couvrir leurs besoins de calcul de long terme, et ajoutent de l'élasticité au cluster avec un second pool de nœuds utilisant l'autoscaling et la facturation horaire.
Nous allons :
- créer un cluster Managed Kubernetes
- créer un pool de nœuds avec 3 nœuds et un mode de facturation « mensuel »
- créer un autre pool de nœuds avec l'autoscaling activé (0 nœud minimum et 10 maximum), en mode de facturation « horaire »
- déployer une application sur un pool de nœuds (et des nœuds) spécifique
Prérequis
- un projet Public Cloud au sein de votre compte OVHcloud
Accès à l'espace client OVHcloud
- Lien direct :
- Pour accéder à vos services :
Public Cloud> Sélectionnez votre projet >Managed Kubernetes Service
En pratique
Création du cluster
Accédez à l'interface d'administration de vos clusters OVHcloud Managed Kubernetes en cliquant sur Managed Kubernetes Service dans le menu de gauche, puis cliquez sur Create a cluster.
Ou, si vous avez déjà un cluster, l'interface est légèrement différente : vous devez cliquer sur le bouton Create a Kubernetes cluster.
Sélectionnez un emplacement pour votre nouveau cluster.
Choisissez la version mineure de Kubernetes.
Nous recommandons d'utiliser systématiquement la dernière version stable. Consultez notre page Fin de vie / fin de support pour comprendre notre politique de versions.
Vous pouvez désormais choisir d'intégrer votre cluster Kubernetes à un réseau privé à l'aide du vRack OVHcloud. Pour plus d'informations sur cette option, consultez notre guide Utiliser le vRack.
Pour ce tutoriel, nous allons configurer deux pools de nœuds différents.
Rappel : un pool de nœuds est un groupe de nœuds partageant la même configuration, ce qui vous offre une grande flexibilité dans la gestion de votre cluster.
Consultez le guide Gérer les pools de nœuds pour plus d'informations sur les pools de nœuds.
Pour notre premier pool de nœuds, choisissez une flavor, « B2-7 » par exemple.
À l'étape suivante, définissez la taille du pool de nœuds par défaut : indiquez un nom pour le pool et définissez le nombre de nœuds.
À l'étape suivante, choisissez le mode de facturation Monthly.
Enfin, indiquez un nom pour votre cluster et cliquez sur le bouton Send.
La création du cluster est désormais en cours. Il devrait être disponible en quelques minutes dans votre espace client OVHcloud.
Création du second pool de nœuds
Votre cluster Kubernetes est maintenant opérationnel. Cliquez sur le nom de votre cluster pour ouvrir sa page de détails, puis cliquez sur l'onglet Pools de nœuds.
Nous allons créer notre second pool de nœuds.
Cliquez sur le bouton Ajouter un pool de nœuds.
Indiquez ensuite un nom pour votre second pool de nœuds, hourly par exemple.
Sélectionnez une flavor pour votre nouveau pool de nœuds ; nous pouvons choisir « B2-7 » comme pour notre autre pool de nœuds.
À l'étape suivante, définissez la taille de notre second pool de nœuds.
Cette fois, nous pouvons activer la fonctionnalité Autoscaling.
Définissez dans ce cas la taille minimale et maximale du pool, par exemple 0 en minimum et 10 en maximum.
En activant l'anti-affinité, les nœuds actuels et futurs seront lancés sur des hyperviseurs (serveurs physiques) différents, garantissant une meilleure tolérance aux pannes.
Puis choisissez le mode de facturation Hourly pour ce second pool de nœuds.
La création du pool de nœuds est désormais en cours. Il devrait être disponible en quelques minutes dans votre espace client OVHcloud.
Le second pool de nœuds sera d'abord au statut Installing.
Attendez que son statut passe à OK.
Vérifier et préparer nos pools de nœuds
Pour déployer votre application sur votre cluster Kubernetes, consultez notre guide sur la configuration des paramètres par défaut de kubectl.
Une fois que vous pouvez accéder au cluster via la commande kubectl, affichons nos pools de nœuds :
Nos deux pools de nœuds existent et nous pouvons voir les différentes configurations et le mode d'autoscaling.
Affichons nos nœuds. Vous devriez avoir 3 nœuds en cours d'exécution dans notre premier pool de nœuds et 1 nœud dans notre pool de nœuds « hourly » :
Si vous ne faites rien pendant plusieurs minutes, l'AutoScaling du pool de nœuds « hourly » mettra fin au nœud en raison de l'inactivité :
Déploiement de notre application
Le moment est venu de découvrir la puissance des concepts Kubernetes labels et NodeAffinity.
Nous avons un pool de nœuds en facturation « mensuelle » et un autre en facturation « horaire ». L'objectif de disposer de ces deux pools de nœuds est de pouvoir séparer nos besoins selon les types d'applications.
Afin de déployer notre application sur des nœuds spécifiques, nous devons connaître le label du pool de nœuds cible.
Il faut savoir que les nœuds créés par Kubernetes portent dans leur label le nom du pool de nœuds. Grâce à cela, vous pouvez demander à Kubernetes de déployer les applications dans le pool de nœuds souhaité.
Affichons les labels de nos nœuds en cours d'exécution :
Comme vous pouvez peut-être le constater, nos nœuds en cours d'exécution portent le label nodepool=nodepool-cc40f90c-effb-4945-b7b9-05073725d62d.
Le format du label est : nodepool=<name of the nodepool>.
Le moment est venu de déployer une application, uniquement sur notre pool de nœuds hourly, et d'observer le comportement de l'AutoScaling.
Créez un fichier deployment.yaml avec le contenu suivant :
Lorsque vous appliquez ce manifeste YAML, un Pod sera d'abord à l'état Pending. Un nouveau nœud sera créé. Une fois ce nouveau nœud créé avec succès, le Pod sera démarré sur ce nœud.
Vous devez attendre plusieurs minutes afin d'obtenir un nouveau nœud correspondant à vos critères.
Et vous pouvez vérifier sur quel nœud notre application est en cours d'exécution :
Grâce à cette fonctionnalité, vous pouvez choisir et contrôler où vous souhaitez déployer vos applications.
Notez qu'un label donné peut être appliqué à plusieurs pools de nœuds et/ou à des nœuds spécifiques uniquement si cela a un sens pour vous.
Aller plus loin
Dans ce tutoriel, vous avez vu comment créer, dans votre cluster OVHcloud Managed Kubernetes, plusieurs types de pools de nœuds et comment déployer facilement vos applications où vous le souhaitez.
Saviez-vous que vous pouvez également effectuer d'autres opérations sur les nœuds, comme le taint, le drain et le cordon, grâce à la propagation des labels des pools de nœuds vers les nœuds ?
Pour en savoir plus sur l'utilisation pratique de votre cluster Kubernetes, nous vous invitons à consulter notre site de documentation OVHcloud Managed Kubernetes.
-
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
-
Échangez avec notre communauté d'utilisateurs.