Kubernetes · 3 min read · Dec 08, 2025

Étiquettes et Sélecteurs dans Kubernetes

Les étiquettes ne sont rien d’autre que des paires clé-valeur attribuées aux objets Kubernetes comme les Pods, les Services, etc. Les étiquettes peuvent être utilisées pour organiser et sélectionner des objets Kubernetes. Les étiquettes peuvent être attachées aux objets au moment de leur création et peuvent être modifiées à tout moment. Nous pouvons ajouter plusieurs étiquettes aux objets Kubernetes.

Les sélecteurs sont utilisés par les utilisateurs pour sélectionner un ensemble d’objets. Le sélecteur d’étiquettes est le noyau de la primitive de regroupement dans Kubernetes. L’API Kubernetes prend en charge deux types de sélecteurs :

  1. Sélecteurs basés sur l’égalité :
    Cela permet de filtrer par clé et valeur, où les objets correspondants doivent satisfaire toutes les étiquettes spécifiées.
  2. Sélecteurs basés sur un ensemble :
    Cela permet de filtrer les clés selon un ensemble de valeurs.

Pour en savoir plus sur les étiquettes et les sélecteurs, cliquez ici.

Dans cet article, nous allons créer un Pod avec des étiquettes et rediriger les demandes vers celui-ci depuis le service en utilisant un sélecteur. Nous effectuerons également des opérations de récupération et de suppression sur le Pod et le Service en utilisant des étiquettes/sélecteurs en ligne de commande.

Prérequis

  1. Cluster Kubernetes avec au moins 1 nœud de travail.
    Si vous souhaitez apprendre à créer un cluster Kubernetes, cliquez ici. Ce guide vous aidera à créer un cluster Kubernetes avec 1 maître et 2 nœuds sur des instances EC2 AWS Ubuntu 18.04.

Ce que nous allons faire

  1. Créer un Pod et un Service avec des étiquettes et un sélecteur
  2. Comprendre les étiquettes

Créer un Pod et un Service avec des étiquettes et des sélecteurs

Pour créer un Pod avec des étiquettes, créez un nouveau fichier et ajoutez le contenu suivant.

vim my-lable-demo-pod.yml
apiVersion: v1
kind: Pod
metadata:
  name: label-demo-pod
  labels:
    environment: test
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

label-demo-pod

Pour créer un service avec un sélecteur, créez un fichier avec la définition de service suivante qui utilise l’espace de noms par défaut.

vim my-selector-demo-service.yml
apiVersion: v1
kind: Service
metadata:
  name: selector-demo-service
  namespace: default
  labels:  
    environment: test
    app: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:    
    app: nginx
  type: NodePort

selector-demo-service

Pour créer un Pod, exécutez la commande suivante.

kubectl create -f my-lable-demo-pod.yml
kubectl get pods

create-pod-with-label

Pour créer un Service, exécutez la commande suivante.

kubectl create -f my-selector-demo-service.yml
kubectl get service

create-service-with-selector

Maintenant, pour vérifier si le sélecteur d’étiquettes fonctionne, essayez d’accéder au service sur NodeIP:NodePort.

Ici, l’IP de mon nœud est 106.210.138.189 et le service est exposé sur Port=30385.

Puisque nous pouvons accéder au Pod Nginx en utilisant le Service que nous avons créé, cela signifie que l’étiquette et le sélecteur ont fonctionné.

Comprendre les étiquettes

Maintenant, nous pouvons effectuer diverses opérations sur le Pod et le Service que nous avons créés en utilisant l’étiquette.

Pour obtenir les Pods correspondant à une étiquette de notre choix, nous pouvons utiliser “–selector” dans la commande comme suit.

kubectl get pods --selector environment=test
kubectl get pods --selector app=nginx

get-pods-with-matching-labels

Nous pouvons également utiliser “-l” au lieu de “–selector” pour obtenir les Pods correspondant à l’étiquette de notre choix.

kubectl get pods -l environment=test
kubectl get pods -l environment=prod

alternative-to-selector-command

Nous pouvons même effectuer l’opération de suppression de pod en spécifiant l’étiquette. Les Pods correspondant à l’étiquette peuvent être supprimés à l’aide des commandes suivantes.

kubectl get pods
kubectl delete pods -l environment=test
kubectl get pods

delete-pods-with-matching-label

De la même manière que nous avons pu supprimer des Pods correspondant aux étiquettes, nous pouvons également supprimer le service.

Pour supprimer le service correspondant à une étiquette, utilisez la commande suivante. De plus, s’il n’y a pas de service correspondant à l’étiquette spécifiée dans la commande, aucune opération de suppression ne sera effectuée.

kubectl get service
kubectl delete service -l environemt=test
kubectl delete service -l environment=test
kubectl get service

delete-service-with-matching-label

Conclusion

Dans cet article, nous avons créé un Pod avec des étiquettes et créé et pointé un service vers ces Pods correspondant à l’étiquette. Nous avons également vu comment les Pods et les Services correspondant aux étiquettes peuvent être supprimés.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.