Compartir información con los pods

Para compartir información con los pods tenemos varias formas de hacerlo como: configmaps, volúmenes, secrets o variables Configmap Creamos un configmap con el siguiente comando: kubectl create configmap miconfigmap –from-literal=clave=valor Ahora se lo pasamos a un pod como una variable. Para ello creamos una fichero llamado pod1.yaml con el siguiente […]

Rolling updates y Rollbacks

El cambio de versión de aplicaciones que se encuentran en producción, suele ser momento crítico, por lo que tener la opción de volver a la versión anterior, en caso de que algo falle, es un seguro de vida. En kubernetes, existe esta posibilidad. Comenzamos creando un fichero llamado deploy.yaml, con […]

Obtener métricas de cpu y memoria

La administración de recursos de un cluster de kubernetes es una tarea muy importante, por lo que debemos de tener en cuenta los recursos que va a necesitar un deployment antes de crearlo. Para esto, podemos utilizar las métricas. Con esto, podemos tener unas métricas actualizadas y momentáneas del uso […]

Limitar los recursos utilizados por los pods

Para tener más control de los recursos utilizados por los pods, es una buena práctica definir tanto los límites de cpu y memoria que puden utilizar, así como la cantidad de recursos que van a necesitar nuestros pods, para intentar garantizar el buen funcionamiento. Esto se puede definir en los […]

Crear scheduler

En kubernetes, el scheduler es el encargado de colocar los pods en los nodos, según la cpu y memoria de que dispongan los nodos, entre otras cosas.  Para poder crear el scheduler debemos seguir los siguientes pasos. Si usamos como sistema operativo ubuntu18, debemos instalar go  y las build essentials: […]

Helm

Helm es el manejador de paquetes de kubernetes. Nos puede proporcionar las siguientes ventajas: Simplifica la complejidad de los despliegues Fácil actualización Se comparten fácilmente los charts «Rollbacks» seguros Está diseñado para realizar las siguientes tareas: Crear charts desde cero Empaquetar los charts en archivos tgz Interactuar con los repositorios […]

Liveness y readiness probes

Cuando ejecutamos un despliegue en kubernetes, si un pod falla, kubelet se encarga de detruirlo y crear uno nuevo, pero también es posible que cree un bucle y el pod se quede reiniciándose infinitamente o que el pod esté corriendo, pero no pueda ejecutar ciertas tareas que esperamos. Para controlar […]

Persistencia de datos en kubernetes I – HostPath

En kubernetes, los datos que se almacenan en los pods son efímeros, por lo que si queremos mantener información de forma persistente, debemos almacenar esa información de algún modo. Esta persistencia de la información, en kubernetes, se consigue mediante volúmenes. Estos volúmenes se montan en los pods cuando son creados. […]

Jobs y cronjobs en kubernetes

En kubernetes también se pueden crear tareas programadas con crons o correr una tarea simple, que realizarla a mano sería más costoso, como por ejemplo dejar preinstalado wordpress en un volumen. Para estos menesteres están los jobs y los cronjobs. El siguiente ejemplo es un job que nos deja una […]

Comandos básicos Kubernetes

La siguiente lista es un recopilatorio de comandos básicos para poder obtener la información que necesitamos acerca de lo que ocurre en nuestro cluster de kubernetes: # información del cluter kubectl cluster-info # lista de los nodos del cluster kubectl get nodes # lista de los servicios kubectl get service […]

Run, cmd y entrypoint en un dockerfile

Puede ser que las primeras veces que estamos creando un dockerfile, no se tengan claras las diferencias entre run, cmd y entrypoint. Es una duda corriente no saber cuándo usar cada uno. RUN se usa básicamente para correr un comando, ya sea instalar un servicio, eliminar ficheros, crear directorios, … […]

Instalar wordpress con ansible + docker

La herramienta ansible es muy versátil y nos permite automatizar muchas tareas, entre ellas crear contenedores de docker. Esto es muy útil si tras configurar con ansible nuestra máquina, queremos dejar corriendo una aplicación, ya sea para probar que todo funciona, o para cualquier otra tarea. Con el siguiente playbook […]

Configurar envío de correo desde wordpress

Por norma general, casi todas las webs hacen uso del envío de correos electrónicos, ya sea en un formulario de contacto, una suscripción, envío de mailing, … por lo que deberemos de hacer uso de algún plugin de envío de correo mediante smtp. Algunos de los plugins de stmp para […]

Instalar kubernetes con un script

A veces instalar algín servicio puede ser algo tedioso por la cantidad de comandos que debemos introducir y la instalación de kubernetes no iba a ser menos. Este script está testado en ubuntu 18.04, por lo que al utilizarlo en alguna otra distribución de linux, puede variar. El contenido del […]

Crear imagen docker personalizada

Alguna vez nos puede ocurrir que queremos una imagen de docker con algunos servicios muy concretos y no la encontramos o no tiene la versión de php que queremos, por ejemplo, o simplemente no nos aporta seguridad el creador de la imagen. SI no encontramos lo que queremos, podemos hacerlo […]