Labels et Annotations
Ces deux notions, très similaires, permettent notamment d’ajouter des métadonnées aux ressources. Elles s’appliquent à toutes les ressources de Kubernetes.
Labels
Les labels sont utilisés à l’intérieur de Kubernetes. Notamment avec l’outil selector qui permet de sélectionner uniquement les pods en fonction des labels qu’ils contiennent. (sélection poussée, regexp…)
Ajout d’un label en ligne de commande:
kubectl create deployment monnginx --image nginx --labels "env=prod,group=front.Visualisation des labels:
kubectl get deployment --show-labels.Modification d’un label:
kubectl label deployment [deployment_name] --overwrite "env=dev".Suppression d’un label:
kubectl label deployment [deployment_name] --overwrite "env-".Utilisation d’un label dans un selector:
kubectl get pods --selector "env=dev".
Il est aussi possible d’utiliser des opérateurs: kubectl get pods --selector "env in (dev, prod)".
Annotations
Les annotations ont exactement le même fonctionnement que les labels.
Elles permettent de:
- garder des traces
- stocker des fichiers (images en Base64…)
- des liens/url