Kubernetes · 3 min read · Dec 08, 2025

Etiquetas y Selectores en Kubernetes

Las etiquetas no son más que pares clave-valor asignados a Objetos de Kubernetes como Pods, Servicios, etc. Las etiquetas se pueden usar para organizar y seleccionar objetos de Kubernetes. Las etiquetas se pueden adjuntar a los objetos en el momento de la creación y se pueden modificar en cualquier momento. Podemos agregar múltiples etiquetas a los objetos de Kubernetes.

Los selectores son utilizados por los usuarios para seleccionar un conjunto de objetos. El selector de etiquetas es el núcleo del agrupamiento en Kubernetes. La API de Kubernetes admite dos tipos de selectores:

  1. Selectores basados en igualdad:
    Esto permite filtrar por clave y valor, donde los objetos coincidentes deben satisfacer todas las etiquetas especificadas.
  2. Selectores basados en conjuntos:
    Esto permite filtrar claves de acuerdo con un conjunto de valores.

Para saber más sobre Etiquetas y Selectores, haz clic aquí.

En este artículo, crearemos un Pod con etiquetas y redirigiremos las solicitudes a él desde el servicio utilizando un selector. También realizaremos operaciones de obtención y eliminación en Pod y Servicio utilizando Etiquetas/Selectores en la línea de comandos.

Requisitos previos

  1. Clúster de Kubernetes con al menos 1 nodo trabajador.
    Si deseas aprender a crear un Clúster de Kubernetes, haz clic aquí. Esta guía te ayudará a crear un clúster de Kubernetes con 1 Maestro y 2 Nodos en Instancias EC2 de AWS Ubuntu 18l04.

Lo que haremos

  1. Crear un Pod y un Servicio con Etiquetas y Selector
  2. Entender Etiquetas

Crear un Pod y Servicio con Etiquetas y Selectores

Para crear un Pod con etiquetas, crea un nuevo archivo y agrega el siguiente contenido en él.

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

Para crear un servicio con un selector, crea un archivo con la siguiente definición de servicio que utiliza el espacio de nombres predeterminado.

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

Para crear un Pod, ejecuta el siguiente comando.

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

create-pod-with-label

Para crear un Servicio, ejecuta el siguiente comando.

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

create-service-with-selector

Ahora, para verificar si el Selector de Etiquetas está funcionando, intenta acceder al servicio en NodeIP:NodePort.

Aquí, la IP de mi Nodo es 106.210.138.189 y el servicio está expuesto en Port=30385.

Dado que podemos acceder al Pod de Nginx utilizando el Servicio que creamos, significa que la Etiqueta y el Selector funcionaron.

Entender Etiquetas

Ahora, podemos realizar varias operaciones en el Pod y el Servicio que creamos utilizando la Etiqueta.

Para obtener Pods que coincidan con una etiqueta de nuestra elección, podemos usar “–selector” en el comando de la siguiente manera.

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

get-pods-with-matching-labels

También podemos usar “-l” en lugar de “–selector” para obtener los Pods que coincidan con la etiqueta de nuestra elección.

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

alternative-to-selector-command

Incluso podemos realizar la operación de eliminación de pod especificando la etiqueta. Los Pods que coincidan con la etiqueta se pueden eliminar utilizando los siguientes comandos.

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

delete-pods-with-matching-label

De la misma manera que pudimos eliminar Pods que coinciden con las etiquetas, también podemos eliminar el servicio.

Para eliminar el servicio que coincide con una etiqueta, usa el siguiente comando. Además, si no hay ningún servicio que coincida con la etiqueta especificada en el comando, no se realizará ninguna operación de eliminación.

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

delete-service-with-matching-label

Conclusión

En este artículo, creamos un Pod con etiquetas en él y creamos y apuntamos un servicio a esos Pods que coinciden con la etiqueta. También vimos cómo se pueden eliminar Pods y Servicios que coinciden con las etiquetas.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.