Commande d'annotation Kubernetes

KubernetesBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons explorer la commande kubectl annotate, qui est un outil puissant utilisé dans Kubernetes pour ajouter ou modifier des annotations de métadonnées sur les ressources Kubernetes. Les annotations sont utilisées pour attacher des métadonnées arbitraires aux ressources Kubernetes sous forme de paires clé-valeur, et elles peuvent être utilisées pour stocker des informations supplémentaires sur une ressource qui peuvent ne pas être utilisées par le système Kubernetes lui-même, mais peuvent être utilisées par des outils ou des processus externes.

Au cours de ce laboratoire, nous commencerons par des exemples simples et nous dirigerons progressivement vers des cas d'utilisation plus complexes de la commande kubectl annotate, mettant en évidence sa polyvalence et son utilité dans diverses situations.

Prérequis

  • Une compréhension de base des concepts et des commandes Kubernetes.
  • Un cluster Kubernetes configuré avec kubectl installé et configuré.

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 annotate

La commande kubectl annotate est utilisée pour mettre à jour ou supprimer des annotations sur les ressources Kubernetes. Les annotations sont des paires clé - valeur qui stockent des métadonnées, qui peuvent inclure des chaînes de caractères arbitraires ou du JSON structuré. Elles sont utiles pour que les outils et les extensions stockent leurs données.

Exécutez la commande suivante pour afficher les options disponibles pour kubectl annotate :

kubectl annotate -h

Vous verrez la sortie suivante :

Mettez à jour les annotations sur une ou plusieurs ressources.

Tous les objets Kubernetes prennent en charge la possibilité de stocker des données supplémentaires avec l'objet sous forme d'annotations. Les annotations sont des paires clé/valeur qui peuvent être plus grandes que les étiquettes (labels) et incluent des valeurs de chaîne arbitraires telles que du JSON structuré. Les outils et les extensions système peuvent utiliser les annotations pour stocker leurs propres données.

Tenter de définir une annotation qui existe déjà échouera à moins que l'option --overwrite soit définie. Si l'option --resource - version est spécifiée et ne correspond pas à la version actuelle de la ressource sur le serveur, la commande échouera.

Utilisez "kubectl api - resources" pour obtenir la liste complète des ressources prises en charge.

Exemples :
  ## Mettez à jour le pod 'foo' avec l'annotation 'description' et la valeur 'my frontend'
  ## Si la même annotation est définie plusieurs fois, seule la dernière valeur sera appliquée
  kubectl annotate pods foo description='my frontend'

  ## Mettez à jour un pod identifié par le type et le nom dans "pod.json"
  kubectl annotate -f pod.json description='my frontend'

  ## Mettez à jour le pod 'foo' avec l'annotation 'description' et la valeur 'my frontend running nginx', en écrasant toute valeur existante
  kubectl annotate --overwrite pods foo description='my frontend running nginx'

  ## Mettez à jour tous les pods dans le namespace
  kubectl annotate pods --all description='my frontend running nginx'

  ## Mettez à jour le pod 'foo' uniquement si la ressource n'a pas été modifiée depuis la version 1
  kubectl annotate pods foo description='my frontend running nginx' --resource - version=1

  ## Mettez à jour le pod 'foo' en supprimant une annotation nommée 'description' si elle existe
  ## Ne nécessite pas le drapeau --overwrite
  kubectl annotate pods foo description-

Annoter un Pod avec une seule paire clé-valeur

Dans cette étape, nous commencerons par un exemple simple d'annotation d'un Pod avec une seule paire clé-valeur en utilisant la commande kubectl annotate.

  1. Créez un fichier appelé pod.yaml dans le répertoire /home/labex/project avec le contenu suivant :
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: nginx
      image: nginx

Créez le Pod avec la commande suivante :

kubectl apply -f pod.yaml
  1. Utilisez la commande kubectl annotate pour ajouter une annotation au Pod :
kubectl annotate pod my-pod my-annotation-key=my-annotation-value
  1. Vérifiez que l'annotation a été ajoutée au Pod :
kubectl describe pod my-pod | grep Annotations

Vous devriez voir l'annotation my-annotation-key avec la valeur my-annotation-value dans la sortie.

Annoter un Pod avec plusieurs paires clé-valeur

Dans cette étape, nous allons explorer comment ajouter plusieurs annotations à un Pod en utilisant la commande kubectl annotate.

  1. Utilisez la commande kubectl annotate pour ajouter plusieurs annotations au Pod :
kubectl annotate pod my-pod my-annotation-key-1=my-annotation-value-1 my-annotation-key-2=my-annotation-value-2
  1. Vérifiez que les annotations ont été ajoutées au Pod :
kubectl describe pod my-pod | grep my-annotation-key

Vous devriez voir les deux annotations my-annotation-key-1 et my-annotation-key-2 avec leurs valeurs correspondantes dans la sortie.

Mettre à jour une annotation existante

Dans cette étape, nous allons apprendre à mettre à jour une annotation existante sur un Pod en utilisant la commande kubectl annotate.

  1. Utilisez la commande kubectl annotate pour mettre à jour la valeur d'une annotation existante sur le Pod :
kubectl annotate pod my-pod my-annotation-key-1=new-value --overwrite=true
  1. Vérifiez que l'annotation a été mise à jour sur le Pod :
kubectl describe pod my-pod | grep my-annotation-key-1

Vous devriez voir la valeur mise à jour de my-annotation-key-1 dans la sortie.

Supprimer une annotation

Dans cette étape, nous allons voir comment supprimer une annotation d'un Pod en utilisant la commande kubectl annotate.

  1. Utilisez la commande kubectl annotate avec le drapeau --overwrite pour supprimer une annotation du Pod :
kubectl annotate pod my-pod my-annotation-key-2- ## Note the trailing dash
  1. Vérifiez que l'annotation a été supprimée du Pod :
kubectl describe pod my-pod | grep my-annotation-key-2

Vous ne devriez pas voir l'annotation my-annotation-key-2 dans la sortie.

Annoter une ressource différente

Dans cette étape, nous allons explorer comment utiliser la commande kubectl annotate pour annoter une ressource différente, comme un déploiement (Deployment).

  1. Créez un fichier appelé deployment.yaml dans le répertoire /home/labex/project avec le contenu suivant :
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: nginx
          image: nginx

Créez le déploiement avec la commande suivante :

kubectl apply -f deployment.yaml
  1. Utilisez la commande kubectl annotate pour ajouter une annotation au déploiement :
kubectl annotate deployment my-deployment my-annotation-key=my-annotation-value
  1. Vérifiez que l'annotation a été ajoutée au déploiement :
kubectl describe deployment my-deployment

Vous devriez voir l'annotation my-annotation-key avec la valeur my-annotation-value dans la sortie.

Résumé

Dans ce laboratoire (lab), nous avons appris à utiliser la commande kubectl annotate pour ajouter, mettre à jour et supprimer des annotations des ressources Kubernetes. Nous avons commencé par des exemples simples d'annotation d'un Pod avec une seule paire clé-valeur et plusieurs paires clé-valeur, puis nous avons exploré des cas d'utilisation plus avancés, comme la mise à jour d'une annotation existante et l'annotation d'une ressource différente comme un déploiement (Deployment). Les annotations peuvent être un outil puissant pour attacher des métadonnées supplémentaires aux ressources Kubernetes et fournir des informations utiles pour des outils ou des processus externes.