Kubernetes (también conocido como k8s) es una herramienta para gestionar servicios e infraestructura desde código, en formato script y de forma automatizada, para hacer el despliegue de todos los servicios. Recientemente la hemos incorporado en la infraestructura de sistemas de Foxize Cloud.
Internamente, Kubernetes está compuesto por nodos master y nodos worker. Los nodos master son los que controlan el despliegue, escalado y monitorización de las aplicaciones que se ejecutan en los nodos worker. En Foxize Cloud, el cluster de kubernetes lo tenemos en Amazon Web Services (AWS). De esta forma, nuestro equipo técnico lanza una orden y Kubernetes activa una serie de acciones de forma automática.
Esta automatización nos permite que, cuando hay algún fallo, se pueda actuar de forma mucho más rápida y sin que repercuta en el usuario final. Por ejemplo, si hay un aumento de carga en la web, en muchos casos esto ocasionaría una caída del servidor y no se podría acceder a la web. Kubernetes se anticipa a esto y crea una nueva máquina de forma automática para poder soportar esta carga sin que se caiga la web. Esta función se llama autoescalado y esto nos permite reaccionar de forma automática ante variaciones de tráfico. En el momento que disminuye la carga, Kubernetes se encarga de apagar las máquinas sobrantes, permitiendo ahorrar costes.
Además, al tener programada toda la infraestructura Kubernetes en un repositorio de código con las órdenes y el listado de cambios realizados, permite al equipo técnico deshacer acciones, reutilizar scripts y facilitar la automatización.
¿Qué ventajas te aporta a ti el traspaso a Kubernetes?
Estos cambios internos tienen repercusión directa en tu plataforma de formación:
- La plataforma es más tolerante a fallos, se autorrecupera sola y más rápidamente, por lo que no notarás los fallos internos o las caídas.
- El cambio de infraestructura nos permite generar certificados SSL propios para las URL personalizadas, así que no será necesario comprarlos en una plataforma externa.
- Da más estabilidad a la plataforma y permite garantizar la escalabilidad de los proyectos.
- Mayor seguridad, ahora solo hay un punto de acceso a las máquinas en vez de estar en diferentes IPs.
- Mayor acceso a información para monitorizar y extraer datos de forma autónoma.
Esta última ventaja es gracias a Grafana, un software de monitorización instalado en Kubernetes. Grafana nos ofrece un dashboard visual de métricas de CPU, RAM, Disk, Storage, y mucho más. Esto nos permite tener un mayor control de la plataforma y detectar fácilmente de dónde se originan los fallos y actuar con rapidez.