Kubernetes utilise les libellés et les taints pour gérer et planifier les ressources dans les clusters. Pour plus d'informations sur l'introduction et les notes d'utilisation des libellés, consultez la page Libellés et sélecteurs. Pour comprendre le fonctionnement des taints et des tolérances, reportez-vous à la section Taints et tolérances de la documentation Kubernetes.
L'exécution de nœuds équipés de matériel spécialisé, tels que des GPU, est coûteuse. Pour éviter que des charges de travail générales ne s'exécutent sur ces nœuds et les réserver aux pods qui ont réellement besoin de ce matériel, appliquez des taints aux nœuds. Un taint indique au planificateur Kubernetes d'éviter ou d'expulser les pods qui ne disposent pas d'une tolérance correspondante.
ACK vous permet de gérer les taints et les libellés des nœuds directement depuis la console.
Cas d'utilisation
Nœuds dédiés : réservez un groupe de nœuds à des équipes ou des charges de travail spécifiques en leur appliquant un taint, de sorte que seuls les pods disposant de la tolérance appropriée y soient planifiés.
Planification spécifique au matériel : assurez-vous que seuls les pods nécessitant des GPU ou d'autres matériels spécialisés sont placés sur les nœuds dotés de ce matériel.
Expulsion de pod : ajoutez un taint
NoExecutepour drainer les pods d'un nœud. Les pods sans tolérance correspondante sont expulsés du nœud. Si vous souhaitez conserver un pod sur le nœud, ajoutez-lui une tolérance correspondant au taint NoExecute.
Effets des taints
Chaque taint possède un effet qui détermine la manière dont le planificateur traite les pods sans tolérance correspondante :
| Effet | Comportement pour les nouveaux pods | Comportement pour les pods en cours d'exécution |
|---|---|---|
NoSchedule |
Non planifié sur le nœud | Non expulsé |
NoExecute |
Non planifié sur le nœud | Expulsé (si aucune tolérance correspondante n'est présente) |
PreferNoSchedule |
Le planificateur tente d'éviter le nœud ; il s'agit d'une exigence souple | Non expulsé |
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Accès à la console ACK
Autorisations suffisantes pour gérer les libellés et les taints des nœuds
Gérer les libellés de nœud
Les libellés permettent d'identifier et de classer les nœuds. Utilisez-les comme sélecteurs pour cibler des nœuds spécifiques lors d'opérations ou de la planification.
Ajouter un libellé
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Nodes > Nodes.
Cliquez sur Manage Labels and Taints. Sous l'onglet Labels, sélectionnez les nœuds cibles et cliquez sur Add Label.
Dans la boîte de dialogue Add, définissez les champs Name et Value, puis confirmez.
Une fois le libellé ajouté, il apparaît dans la colonne Labels de la liste des nœuds.
Utiliser les libellés dans la liste des nœuds
Cliquez sur un libellé pour filtrer la liste des nœuds et afficher uniquement ceux qui possèdent ce libellé.
Cliquez sur l'icône
située à côté d'un libellé pour le supprimer.
Certains libellés natifs de Kubernetes ne peuvent pas être supprimés. Si vous en supprimez un, le système le rajoute automatiquement au nœud.
Gérer les taints de nœud
Ajouter un taint
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster. Dans le volet de navigation de gauche, choisissez Nodes > Nodes.
Cliquez sur Manage Labels and Taints. Sous l'onglet Taints, sélectionnez les nœuds cibles et cliquez sur Add Taint.
Dans la boîte de dialogue Add, définissez les champs Name, Value et Effect, puis confirmez.
| Paramètre | Description |
|---|---|
| Name | 1 à 63 caractères ; lettres, chiffres, traits d'union (-), traits de soulignement (_) et points (.). Doit commencer et se terminer par une lettre ou un chiffre. Pour utiliser une clé préfixée, ajoutez un préfixe de sous-domaine DNS (max. 253 caractères) suivi d'une barre oblique (/). |
| Value | Facultatif. Max. 63 caractères ; lettres, chiffres, traits d'union (-), traits de soulignement (_) et points (.). Doit commencer et se terminer par une lettre ou un chiffre. |
| Effect | NoSchedule, NoExecute ou PreferNoSchedule. Consultez la section Effets des taints pour plus de détails sur le comportement. |
Pour connaître la spécification complète du format des taints, reportez-vous à la section Concepts des taints et des tolérances de la documentation Kubernetes.
Vérifier le taint
Après avoir ajouté le taint, vérifiez qu'il est bien appliqué :
Sur la page Nodes, recherchez le nœud cible dans la liste.
Vérifiez la colonne Taints : le nouveau taint doit y apparaître.
Cliquez sur le taint pour filtrer la liste des nœuds et vérifier que seuls les nœuds portant ce taint sont affichés.
Supprimer un taint
Dans la colonne Taints, cliquez sur l'icône
située à côté du taint que vous souhaitez supprimer.
Étapes suivantes
Pour configurer les libellés et les taints au niveau du pool de nœuds (appliqués à tous les nœuds d'un pool), consultez la rubrique Créer et gérer un pool de nœuds.
Pour planifier des pods sur des nœuds spécifiques à l'aide de libellés ou du champ
nodeSelector, consultez la rubrique Planifier des pods sur des nœuds spécifiques.