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

<sxh yaml> apiVersion: v1 kind: Pod metadata:

 name: elnombredemipod

spec:

 containers:
    name: contenedor1
    image: nginx:alpine

</sxh>

Para ejecutar el manifiesto que acabamos de crear <sxh>kubectl apply -f fichero.yaml </sxh>

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 <sxh yaml> 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

</sxh>

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 <sxh yaml> 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

</sxh> 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 <sxh>kubectl get pods -l env:pro</sxh>