Commande Taint de Kubernetes

KubernetesKubernetesBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/uncordon("Uncordon") kubernetes/BasicCommandsGroup -.-> kubernetes/taint("Taint") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/initialization -.-> lab-9195{{"Commande Taint de Kubernetes"}} kubernetes/get -.-> lab-9195{{"Commande Taint de Kubernetes"}} kubernetes/uncordon -.-> lab-9195{{"Commande Taint de Kubernetes"}} kubernetes/taint -.-> lab-9195{{"Commande Taint de Kubernetes"}} kubernetes/apply -.-> lab-9195{{"Commande Taint de Kubernetes"}} kubernetes/describe -.-> lab-9195{{"Commande Taint de Kubernetes"}} end

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.

  1. Accédez à votre répertoire de travail :

    Ouvrez le terminal et accédez au dossier de projet par défaut :

    cd /home/labex/project
  2. Dé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.
  3. Vérifiez que Minikube est en cours d'exécution :

    Vérifiez l'état du cluster Minikube :

    minikube status
    • Recherchez des composants tels que kubelet et apiserver listés comme Running (en cours d'exécution).
    • Si le cluster n'est pas en cours d'exécution, relancez la commande minikube start.

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.

  1. Ajoutez un nouveau taint avec le contenu suivant :
kubectl taint nodes minikube app=uat:NoSchedule
  1. 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.