Ejercicios de Labels y Selectors en Kubernetes


En esta entrada vamos a ver una serie de ejercicios de Labels y Selectors en kubernetes. Si quieres dar un repaso a algún concepto de Kubernetes puedes echar un ojo en alguna de nuestras entradas anteriores.

Labels son un par clave/valor adjunto a un objeto, como pueden ser los Pods. Son usados para identificar a los objetos que serán relevantes a los usuarios. Por ejemplo, tienes un conjunto de objetos que van a funcionar en producción y otros en desarrollo.

Los Node Selector, al igual que los labels son clave/valor y sirve para identificar que objeto esta en qué nodo.

Ejercicios de Kubernetes con Labels y Selectors

1 .- Crear dos pods que tengan la etiqueta app=v1

kubectl run mypod1 --image=nginx --restart=Never -l app=v1
kubectl run mypod2 --image=nginx --restart=Never -l app=v1

2.- Ver las etiquetas de los Pods.

kubectl get po --show-labels

3.- Cambiar la etiqueta del pod mypod2 a app=v2

kubectl label pod mypod1 app=v2 --overwrite

4.- Obetener el Label app de los pods

kubectl describe pods mypod{1..2} | grep Labels

5.- Obtener los pods con la etiqueta app=v2

Kubectl get pods -l app=v2

6.- Eliminar la etiqueta app de los pods que se han creado

kubectl label pods mypod{1..2} app-

7.- Crear un pod que será desplegado en un Nodo con la etiqueta ‘accelerator=nvidia-tesla-p100’

Paso 1:

kubectl run mypod2 --image=nginx --restart=Never --dry-run=client -o yaml >> mypod2.yaml

Paso 2:

nano mypod2.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: mypod2
  name: mypod2
spec:
  containers:
  - image: nginx
    name: mypod2
    resources: {}
    nodeSelector: # añadir estas dos líneas
      accelerator: nvidia-tesla-p100 
  dnsPolicy: ClusterFirst
  restartPolicy: Never
status: {}

8 .- Anotar pods mypod1, mypod2 con «description=’my description'»

kubectl annotate pods mypod{1..2} description='my description' 

9.- Comprobar la anotación para mypod1

kubectl describe  pods mypod1 | grep Annotations:

10.- Eliminar la anotación creada para los 2 pods

kubectl annotate pods mypod1 description-

11.- Crear un pod mypod3 y asignarle la etiqueta status=online

kubectl run mypod3 --image=nginx --restart=Never -l status=online

12.- Crear dos pods mypod1 y 2 con etiquetas statuns=offline

kubectl run mypod1 --image=nginx --restart=Never -l status=offline
kubectl run mypod2 --image=nginx --restart=Never -l status=offline

13.- Obtener todos los pods que tienen status diferente a online

kubectl get pods -l status!=online

14.- Asignar la etiqueta app=declarative en mypod3 añadiendola directamente en el yaml.

kubectl edit pod mypod3
#con el resultado ir a labels y añadir:
   .....
  labels:
    status: online
    app=declarative
.......

15.- Encontrar aquellos pods en los que el status se encuentre en online, pero de manera Set-Based Requirement:

kubectl get pod -l 'status in (online)'

Conclusión

Estos son algunos ejercicios de Labels y Selectors en Kubernetes, que ayudarán a familiarizarse con los labels y selectors en k8s.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *