===== 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