Mr.PlanB Logo
    Volver al blog
    Kubernetes
    Flux CD

    Flux CD en detalle: arquitectura, CRDs y modelos mentales

    5 de marzo de 2026
    4 min de lectura

    Qué inició la discusión

    ¡Hola a todos!

    Llevo unos años utilizando Flux CD tanto en el trabajo como en mi homelab. Después de hacer algunas sesiones de incorporación para nuevos compañeros en la empresa, pensé que esta información también podría ser útil para otros. Decidí preparar un vídeo que cubre varias de las cosas que me ayudaron a entender realmente cómo funciona Flux en lugar de limitarme a copiar manifiestos.

    Lo principal en lo que me centro es en cómo los diferentes controladores y sus CRDs se corresponden con comandos que ejecutarías manualmente, y cuál es la cadena real de acontecimientos para pasar de un commit de git a una carga de trabajo en ejecución.

    Una vez que eso encajó en mi cabeza, todo el sistema se volvió mucho más intuitivo.

    También explico cómo estructuro el repositorio de mi homelab, el arranque inicial con Flux Operator para que Flux pueda gestionarse y actualizarse a sí mismo, y una demostración en directo donde elimino un espacio de nombres y dejo que Flux lo reconstruya.

    Repo: https://github.com/mirceanton/home-ops

    Vídeo: https://youtu.be/hoi2GzvJUXM

    Tengo curiosidad por saber cómo enfocan otros su configuración de Flux. Especialmente en torno al arranque del operador y la gestión limpia de las dependencias de CRDs. He visto algunos repositorios que intentan empaquetar todos los CRDs en el momento de crear el clúster, pero eso me parece un poco desordenado.

    Lo más destacado de los comentarios

    Punto de debate 1

    Como usuario y entusiasta de Flux desde los tiempos de la v1 y Weaveworks: Flux es probablemente el proyecto más infravalorado bajo el paraguas de la CNCF, ha sentado las bases de los flujos de trabajo de Kubernetes y GitOps tal como los conocemos hoy (hace 8 años más o menos esto era un concepto desconocido) y, en mi opinión, la única razón por la que ArgoCD lo ha superado en popularidad fue la interfaz de usuario más amigable que prepararon. Gracias a Stefan y al equipo por la tenacidad y el servicio a la comunidad.

    Punto de debate 2

    ¿Sabes en qué se diferencia el modelo mental entre ArgoCD y Flux? Al principio empecé a usar ArgoCD porque tenía interfaz gráfica, pero ahora veo que de todos modos hago todo de forma declarativa, así que Flux podría ser mejor.

    Punto de debate 3

    La arquitectura de referencia FluxCD D2 de ControlPlane, centrada principalmente en un enfoque gitless, es el camino a seguir. Ahora, con esta arquitectura toda la responsabilidad recae en la generación de plantillas y en la canalización. Una mejora sustancial. Muchas gracias a Stefan y al equipo de Control Plane. Sobre el tema de los CRDs, tengo una configuración basada en el fantástico Flux de Brian Fair (head, crd, infra) pero en un monorrepo con generación de plantillas para gitless. A mí me funciona de maravilla.

    Punto de debate 4

    Existe un plugin de flux para k9s

    Punto de debate 5

    Hacemos algo parecido en el trabajo con la arquitectura D2 pero con el enfoque multinquilino de un repositorio por inquilino. Lo que no me gustó de la arquitectura D2 es el uso intensivo de overlays de kustomize para diferenciar entre entornos, y me resultó más difícil gestionar las promociones entre entornos, sobre todo de forma automatizada, por ejemplo mediante Renovate. Todavía no usamos OCI como origen, así que no es gitless, más o menos por la misma razón. He visto que esto se critica en algunos debates, pero comprobamos que sincronizar el entorno de staging con la rama principal del repositorio del inquilino y producción con una rama prod nos funcionaba bastante bien, combinado con sustitución posterior a la compilación y configuraciones por entorno. Todo se registra mediante PRs y la promoción se realiza ejecutando una canalización específica, ya que usamos protecciones de rama de forma bastante estricta. Supongo que tendré que profundizar un poco más en el enfoque gitless, pero me pareció algo más enrevesado de lo necesario.

    Resumen del hilo

    Recursos relacionados