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
kubectlinstallé 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.
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 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.
- Créez un fichier appelé
pod.yamldans le répertoire/home/labex/projectavec 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
- Utilisez la commande
kubectl annotatepour ajouter une annotation au Pod :
kubectl annotate pod my-pod my-annotation-key=my-annotation-value
- 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.
- Utilisez la commande
kubectl annotatepour 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
- 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.
- Utilisez la commande
kubectl annotatepour mettre à jour la valeur d'une annotation existante sur le Pod :
kubectl annotate pod my-pod my-annotation-key-1=new-value --overwrite=true
- 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.
- Utilisez la commande
kubectl annotateavec le drapeau--overwritepour supprimer une annotation du Pod :
kubectl annotate pod my-pod my-annotation-key-2- ## Note the trailing dash
- 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).
- Créez un fichier appelé
deployment.yamldans le répertoire/home/labex/projectavec 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
- Utilisez la commande
kubectl annotatepour ajouter une annotation au déploiement :
kubectl annotate deployment my-deployment my-annotation-key=my-annotation-value
- 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.


