Kubernetes utilise des libellés et des tolérances pour gérer et planifier les ressources dans les clusters. Pour en savoir plus sur l'introduction et les notes d'utilisation des libellés, consultez la documentation Libellés et sélecteurs. Pour obtenir des informations générales sur le fonctionnement des tolérances et des altérations, reportez-vous à la section Altérations et tolérances de la documentation Kubernetes.
L'exécution de nœuds équipés de matériel spécialisé, tel que des GPU, est coûteuse. Afin d'éviter que des charges de travail génériques ne s'exécutent sur ces nœuds et de les réserver aux pods qui ont réellement besoin de ce matériel, appliquez des altérations aux nœuds. Une altération 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 altérations et les libellés de 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 une altération, 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 soient placés sur les nœuds dotés de ce matériel.
Expulsion de pod : Ajoutez une altération
NoExecutepour vider 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 à l'altération NoExecute.
Effets des altérations
Chaque altération possède un effet qui détermine la manière dont le planificateur traite les pods ne disposant pas d'une 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 altérations de nœuds
Gérer les libellés de nœuds
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. Dans 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 altérations de nœuds
Ajouter une altération
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. Dans 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 (-), underscores (_) 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 (-), underscores (_) et points (.). Doit commencer et se terminer par une lettre ou un chiffre. |
| Effect | NoSchedule, NoExecute ou PreferNoSchedule. Consultez la section Effets des altérations pour plus de détails sur le comportement. |
Pour la spécification complète du format des altérations, consultez la section Concepts des altérations et des tolérances de la documentation Kubernetes.
Vérifier l'altération
Après avoir ajouté l'altération, vérifiez qu'elle est bien appliquée :
Sur la page Nodes, localisez le nœud cible dans la liste.
Vérifiez la colonne Taints : la nouvelle altération doit y apparaître.
Cliquez sur l'altération pour filtrer la liste des nœuds et vérifier que seuls les nœuds possédant cette altération sont affichés.
Supprimer une altération
Dans la colonne Taints, cliquez sur l'icône
située à côté de l'altération que vous souhaitez supprimer.
Étapes suivantes
Pour configurer les libellés et les altérations 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.