Manifiestos

Un manifiesto no es más que un archivo de texto en formato yaml, en el que entre otras cosas describimos como se deben crear los pods.

El crear u manifiesto en vez de ejecutar los comandos manualmente en la línea de comandos tienes dos grandes ventajas:

  • Es entorno es facilmente reproducible en cualquier cluster de kubernetes
  • Automatiza y simplifica el despliegue cuando tengamos miles de pods

Ejemplo de un manifiesto de creación de un pod

apiVersion: v1
kind: Pod
metadata:
   name: elnombredemipod
spec:
   containers:
      name: contenedor1
      image: nginx:alpine

Para ejecutar el manifiesto que acabamos de crear

kubectl apply -f fichero.yaml 

En el mismo manifiesto podríamos crear por ejemplo más pods, bastaría con añadir al final una linea con tres rayas (—) y en la línea siguiente volver a describir un pod

apiVersion: v1
kind: Pod
metadata:
   name: elnombredemipod
spec:
   containers:
      name: contenedor1
      image: nginx:alpine
 ---
apiVersion: v1
kind: Pod
metadata:
   name: elnombredemipod2
spec:
   containers:
      name: contenedor2
      image: nginx:alpine

Label

dentro del manifiesto podemos crear un tipo de metadata, llamado label al que le podemos asignar una etiqueta que posteriormente nos permita identificar ese pod . usando el ejemplo anterior

apiVersion: v1
kind: Pod
metadata:
   name: elnombredemipod
spec:
   containers:
      name: contenedor1
      image: nginx:alpine
 ---
apiVersion: v1
kind: Pod
metadata:
      name: elnombredemipod2
      labels:
        app: backend
        env: pro
spec:
   containers:
      name: contenedor2
      image: nginx:alpine
En este manifiesto he añadido dos label,(app, env) una indicando que se trata de una app de backend y otra indicando que es un entorno de producción

Si ahora queremos buscar los pods que estén etiquetados como de producción en nuestro entorno

kubectl get pods -l env:pro