Skip to main content

Sora Project

· 9 minuts de lectura
Rei Izumi
Moon.cat owner

En 2022 empecé el proyecto final para abandonar Docker Swarm y cambiar a Kubernetes. Aunque tenía conocimientos en Kubernetes, cuando te pones a construir toda la base, decidir el tipo de engine para los contenedores, el tipo de red, solucionar las piezas que no tienes "de serie" ya que usas bare-metal, ... Por suerte internet está lleno de gente loca que se dedica a documentar y responder a todos estos temas. Por desgracia, según la posición del sol la siguiente 💣 es diferente. Tienes que prepararte para cualquier improvisto, ¡incluso ese que aún no has visto/deducido!

Aun así, terminé el 2023 con el sistema funcionando y documentado. Un éxito. Bueno, menos por el mantenimiento enorme que NO te explican. Y es que Kubernetes puede ser muy bonito, pero es absurdamente complejo, y muchos de los servicios también lo son.

Tocaba buscar una solución. Simplificar mantenimiento, simplificar creación. Así nació Sora Project.

¡Métricas!

· 1 minut de lectura
Rei Izumi
Moon.cat owner

Tras cambiar a Proxmox y jugar con Terraform para automatizar la creación de una plataforma Kubernetes (sí, la documentaré cuando la considere totalmente estable 😋), faltaba añadir las métricas.

En mi caso, las máquinas virtuales se utilizan casi en exclusiva para construir clústers de Kubernetes, y estos a su vez tienen métricas de cada nodo, mientras el Linux es monitorizado por Nagios.

Y aun así, el tiempo me ha mostrado que no es suficiente, necesitas monitorizar también el host físico que gestiona a Proxmox.

Teniendo esto en cuenta, he creado una serie de modificaciones para exportar métricas hacia un Prometheus existente, desplegado en el Kubernetes en mi caso, pero se puede ajustar hacia cualquier otro.

info

El objetivo es desplegar un clúster de Kubernetes auto-gestionado, que incorpore toda la plataforma y aplicaciones, con 1 comando. Está en camino ... 🥹

Bye VMWare. Hello Proxmox

· 2 minuts de lectura
Rei Izumi
Moon.cat owner

Tras muchos y muchos años batallando con VMWare ESXi, es hora de cambiar.

Empecé con la versión que se instalaba sobre un Linux, donde temblabas de medio tras cada actualización de Kernel sabiendo que iba a dejar de funcionar, y tendrías que pasar noches en vela para encontrar una solución (donde quizás, ni existía), para saltar a ESXi Hypervisor. Esta versión utilizaba su propio sistema operativo y tenía versión gratuita con grandes limitaciones (sin API, las copias de seguridad iban a ser un infierno, pero todo se puede solucionar).

Y no, no era un camino de rosas. El hardware era descartado rápidamente, lo que obligaba a modificar las ISO para añadir la compatibilidad, o simplemente aceptar que ya no podrías actualizar más.

Todo para finalmente darnos una bonita patada, eliminar la versión gratuita y aumentar el precio de todo tras la compra de Broadcom. Si ya era caro, pues ahora te apuñalo 2 veces, no sea que te plantees pagar.

Así que toca abrir la puerta y largarse.

Empezando el K8s Project

· 1 minut de lectura
Rei Izumi
Moon.cat owner

Hace mucho tiempo inicié un proyecto de gestión de contenedores con la tecnología Docker Swarm, pero los tiempos modernos utilizan Kubernetes, así que hacer crecer este proyecto no parece buena idea.

Para ello empieza una nueva trayectoria, esta vez con Kubernetes, replicando los mismos servicios, mejorando algunas secciones gracias a la experiencia y añadiendo nuevos servicios.

Y así es como se estrena el K8s Project.

Nueva sección de IT

· 1 minut de lectura
Rei Izumi
Moon.cat owner

Después de mucho tiempo, inauguro una nueva sección de IT.

Esta sección está dedicada a servicios que no estén en contenedores (ya que para eso están los proyectos específicos), ni aquellos que sean servicios básicos, que se despliegan dentro del Rasp Project.

Web, Rasp Project y Swarm Project

· 4 minuts de lectura
Rei Izumi
Moon.cat owner

Podría mentir descaradamente diciendo que fue hace 4 días cuando empecé un nuevo proyecto, uno más grande que ningún otro de los que he llevado a cabo: renovar mi infraestructura para utilizar contenedores.

Claro que, cuando empiezas a poner una piedra, te das cuenta de que quizás deberías poner más piedras, y construir un muro, y mover ese río de ahí, construir un puente, el pueblo, el castillo, ¡una ciudad!

Y así es como se han llevado a cabo varios proyectos en paralelo: la renovación de la web, el Rasp Project, y el Swarm Project.

Certificados autofirmados para intranet

· 4 minuts de lectura
Rei Izumi
Moon.cat owner

Desde hace años, todas las webs deben estar en HTTPS, si no es así, es muy posible que navegadores o servicios se nieguen a utilizarlas.

Cuando nuestra web está publicada a internet, es buena idea contratar un certificado o utilizar sistemas gratuitos como Let's Encrypt, pero cuando tu web no está publicada a Internet, si no que forma parte de tu intranet, la cosa se complica.

En estos casos, se utilizan certificados autofirmados, estos son completamente funcionales, pero tienen la pega de que todos los sistemas muestran un mensaje para avisar de que ellos no confían en el certificado, aun así, si están bien hechos, es posible minimizar o eliminar este problema.

K8s + GlusterFS (CentOS)

· 16 minuts de lectura
Rei Izumi
Moon.cat owner

Kubernetes tiene varias opciones para crear volúmenes, en otro artículo ya expliqué cómo utilizar NFS, ahora le toca a algo más profesional: GlusterFS.

GlusterFS es un sistema de réplica de datos, similar a crear una RAID a nivel de software, aunque tiene algunos extras, como la capacidad de hacer snapshots o la georeplicación. En caso de Kubernetes, únicamente nos interesa su capacidad para crear réplicas de los datos y compartirlas, similar a una carpeta compartida.

Debo avisar que GlusterFS es realmente grande y Kubernetes no está configurado "por defecto" para utilizarlo (requiere un intermediario: Heketi), así que su configuración es bastante compleja, y además hará falta obtener conocimientos de GlusterFS para gestionarlo manualmente si fuera necesario.

K8s + NFS (CentOS)

· 4 minuts de lectura
Rei Izumi
Moon.cat owner

La mentalidad de los contenedores es que sus datos se pierden tras borrarse, así que los datos que necesitamos que no se pierdan, deberán ir en volumenes.

En caso de tener un Kubernetes desplegado en una Cloud, lo recomendable es utilizar el sistema de estos, pero si tenemos nuestro propio sistema, nos tendremos que apañar con lo que podamos.

El más sencillo de todos es asociar el volumen a una carpeta compartida por NFS.

K8s en CentOS 8

· 8 minuts de lectura
Rei Izumi
Moon.cat owner

Con la aparición de la virtualización, el mundo cambió, ahora podías dividir tu mega-servidor en pequeños servidores y así utilizar todo su potencial, sin duda, fue una gran mejora y quienes se opusieron a ello, acabaron cambiando de mentalidad.

Después de esto, apareció la Cloud, un timo en toda regla, donde pagas una barbaridad por un servicio que podrías tener en tu servidor físico por un precio claramente inferior, algo inaudito fue ver cómo la gente se movió hacia la Cloud creyendo que todo sería más barato, no lo fue, pero aun así su avance no ha parado (ni su precio).

No suficiente con ello, otro gran cambio apareció con los contenedores, ya no requieres virtualizar, puedes dividir el potenciar de tu servidor distribuyendo contenedores con los servicios que necesitas, y, además, estos se pueden replicar "fácilmente" entre otros servidores, lo que te permite tener pequeños servidores junto a grandes servidores (sí, ya existen cajas donde poner varios Raspberrys para crear un cluster realmente eficiente, aunque ojo que su CPU es ARM y no todos los contenedores son compatibles).

Hacia la cabeza de estos sistemas está Docker como creador y gestor de contenedores, y Kubernetes como gestor de despliegues. Existen otras opciones a Kubernetes (como Docker Swarm, que funciona perfectamente y es mucho más sencillo), pero no hay nada más extendido y libre que este.