Introduction
Dans ce laboratoire (lab), vous apprendrez à utiliser la commande kubectl taint, qui est un outil puissant dans Kubernetes pour ajouter, modifier et supprimer des taints (marqueurs) sur les nœuds. Les taints sont utilisés pour indiquer qu'un nœud a certaines restrictions ou exigences, et cela peut aider à contrôler l'ordonnancement (scheduling) des pods dans un cluster Kubernetes.
Démarrer le cluster Minikube
Avant de créer des ressources, vous avez besoin d'un cluster Kubernetes en cours d'exécution. Minikube est un environnement Kubernetes léger qui s'exécute sur votre machine locale.
Accédez à votre répertoire de travail :
Ouvrez le terminal et accédez au dossier de projet par défaut :
cd /home/labex/projectDémarrez Minikube :
Démarrez Minikube pour initialiser un cluster Kubernetes :
minikube start- Cette commande configure un cluster Kubernetes mono - nœud sur votre machine locale.
- Minikube peut prendre quelques minutes à démarrer en fonction des performances de votre système.
Vérifiez que Minikube est en cours d'exécution :
Vérifiez l'état du cluster Minikube :
minikube status- Recherchez des composants tels que
kubeletetapiserverlistés commeRunning(en cours d'exécution). - Si le cluster n'est pas en cours d'exécution, relancez la commande
minikube start.
- Recherchez des composants tels que
Si vous rencontrez des problèmes lors du démarrage de Minikube, utilisez minikube delete pour réinitialiser l'environnement si nécessaire.
Explorer la commande kubectl taint
La commande kubectl taint est utilisée pour ajouter, modifier ou supprimer des taints (marqueurs) sur les nœuds Kubernetes. Les taints sont des paires clé - valeur avec des effets qui influencent l'ordonnancement (scheduling) des pods en restreignant quels pods peuvent être placés sur des nœuds spécifiques.
Exécutez la commande suivante pour afficher les options disponibles pour kubectl taint :
kubectl taint -h
Vous verrez la sortie suivante :
Mettez à jour les taints sur un ou plusieurs nœuds.
* Un taint se compose d'une clé, d'une valeur et d'un effet. En tant qu'argument ici, il est exprimé sous la forme clé=valeur:effet.
* La clé doit commencer par une lettre ou un chiffre et peut contenir des lettres, des chiffres, des tirets, des points et des underscores, jusqu'à 253 caractères.
* Facultativement, la clé peut commencer par un préfixe de sous - domaine DNS et un seul '/', comme example.com/my-app.
* La valeur est facultative. Si elle est donnée, elle doit commencer par une lettre ou un chiffre et peut contenir des lettres, des chiffres, des tirets, des points et des underscores, jusqu'à 63 caractères.
* L'effet doit être NoSchedule, PreferNoSchedule ou NoExecute.
* Actuellement, les taints ne peuvent s'appliquer qu'aux nœuds.
Exemples:
## Mettez à jour le nœud 'foo' avec un taint de clé 'dedicated' et de valeur 'special-user' et d'effet 'NoSchedule'
## Si un taint avec cette clé et cet effet existe déjà, sa valeur est remplacée comme spécifié
kubectl taint nodes foo dedicated=special-user:NoSchedule
## Supprimez du nœud 'foo' le taint de clé 'dedicated' et d'effet 'NoSchedule' s'il existe
kubectl taint nodes foo dedicated:NoSchedule-
## Supprimez du nœud 'foo' tous les taints de clé 'dedicated'
kubectl taint nodes foo dedicated-
## Ajoutez un taint de clé 'dedicated' sur les nœuds ayant l'étiquette mylabel=X
kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule
## Ajoutez au nœud 'foo' un taint de clé 'bar' et sans valeur
kubectl taint nodes foo bar:NoSchedule
Ajouter un taint à un nœud
Dans cette étape, vous apprendrez à ajouter un taint (marqueur) à un nœud en utilisant la commande kubectl taint. Les taints sont utilisés pour marquer un nœud avec certaines restrictions ou exigences, ce qui peut affecter l'ordonnancement (scheduling) des pods sur ce nœud.
Pour ajouter un taint à un nœud, vous pouvez utiliser la commande suivante :
kubectl taint nodes minikube app=prod:NoSchedule
Cela ajoutera un taint de clé app et de valeur prod à un nœud nommé minikube, avec l'effet NoSchedule. Cela empêchera les pods d'être ordonnancés sur le nœud à moins qu'ils tolèrent le taint.
Ensuite, vous pouvez afficher les taints actuellement appliqués aux nœuds de votre cluster Kubernetes en utilisant la commande kubectl describe node.
Pour afficher les taints sur un nœud, vous pouvez utiliser la commande suivante :
kubectl describe node minikube
Les taints appliqués au nœud seront listés dans la section "Taints" de la sortie. Vous pouvez utiliser ces informations pour vérifier que le taint que vous avez ajouté à l'étape précédente est bien appliqué au nœud.
Supprimer un taint d'un nœud
Dans cette étape, vous apprendrez à supprimer un taint (marqueur) d'un nœud en utilisant la commande kubectl taint. Cela peut être utile si vous devez mettre à jour les restrictions ou les exigences d'un nœud, ou si vous souhaitez autoriser les pods à être ordonnancés (scheduled) sur un nœud précédemment marqué avec un taint.
Pour supprimer un taint d'un nœud, vous pouvez utiliser la commande suivante :
kubectl taint nodes minikube app-
Cela supprimera le taint app=prod:NoSchedule du nœud minikube. Cela permettra aux pods d'être ordonnancés sur le nœud sans avoir besoin de tolérer le taint précédemment appliqué.
Modifier un taint sur un nœud
Dans cette étape, vous apprendrez à modifier un taint (marqueur) sur un nœud en utilisant la commande kubectl taint. Cela peut être utile si vous devez mettre à jour les restrictions ou les exigences d'un nœud, mais que vous souhaitez conserver la clé et l'effet du taint existant.
- Ajoutez un nouveau taint avec le contenu suivant :
kubectl taint nodes minikube app=uat:NoSchedule
- Utilisez l'option d'écrasement pour forcer les mises à jour
kubectl taint nodes minikube app=dev:NoSchedule --overwrite=true
Cela mettra à jour la valeur du taint app de prod à dev sur le nœud minikube. Cela modifiera le taint sur le nœud tout en conservant la même clé et le même effet de taint.
Résumé
Dans ce laboratoire (lab), vous avez appris à utiliser la commande kubectl taint dans Kubernetes. Vous avez commencé par ajouter un taint (marqueur) à un nœud en utilisant la commande kubectl taint avec une clé, une valeur et un effet spécifiques. Vous avez ensuite appris à afficher les taints appliqués à un nœud en utilisant la commande kubectl describe node.


