Instala Flux y haz bootstrap de un clúster
Instala la CLI de Flux, ejecuta comprobaciones previas y haz bootstrap de Flux para que se gestione a sí mismo desde Git.
Esta guía instala la CLI de Flux, hace bootstrap de Flux en un clúster y muestra lo que hizo commit en tu repositorio de Git. Necesitas kubectl configurado para un clúster con el que puedas experimentar libremente. Un clúster local con kind o minikube es ideal, y una cuenta de GitHub para alojar el repositorio.
Crea un clúster e instala la CLI
Para un clúster local desechable:
kind create cluster --name flux-demo
kubectl get nodes
Instala la CLI de Flux con Homebrew, o con el script de instalación en Linux:
brew install fluxcd/tap/flux
# o
curl -s https://fluxcd.io/install.sh | sudo bash
Comprueba que funciona:
flux --version
También puedes descargar un binario desde la página de releases. Flux soporta las últimas tres versiones menores de Kubernetes, así que usa un clúster razonablemente reciente.
Ejecuta las comprobaciones previas
Con kubectl apuntando a tu clúster, pregunta a Flux si el clúster es compatible:
flux check --pre
Deberías ver la versión de Kubernetes y una línea final que dice que se cumplen los requisitos previos.
Crea un personal access token
Bootstrap necesita un token para poder crear el repositorio, hacer push de commits y registrar una deploy key. En GitHub, crea un personal access token classic con el scope repo, o un token de grano fino con acceso de lectura y escritura a Contents y Administration en el repositorio de destino. Expórtalo en el shell actual:
export GITHUB_TOKEN=<your-token>
El token solo lo usa la CLI durante el bootstrap. Por defecto Flux crea una deploy key SSH para su acceso a largo plazo, y el token no se guarda en el clúster, así que una caducidad corta (días, no meses) está bien.
Haz bootstrap de Flux
Ejecuta bootstrap contra una cuenta personal. El repositorio se crea si no existe:
flux bootstrap github \
--owner=<your-github-user> \
--repository=fleet-infra \
--branch=main \
--path=clusters/dev \
--personal
Para una organización, omite --personal. Los flags que importan:
--repositoryes donde Flux guarda sus propios manifiestos y, más adelante, la configuración de tus aplicaciones.--pathes la carpeta del repositorio desde la que se sincroniza este clúster. Usa una ruta por clúster, comoclusters/devyclusters/production, para que un repositorio pueda servir a muchos clústeres.--branches la rama en la que Flux hace commit y que sigue.
El comando se conecta a GitHub, clona el repositorio, genera los manifiestos de Flux, hace commit y push, instala Flux en el clúster y espera a que los controladores estén listos. Dos variantes que encontrarás más adelante:
--token-authusa el propio personal access token por HTTPS en lugar de generar una deploy key SSH.--read-write-keyda a la deploy key acceso de escritura. Lo necesitas cuando el propio Flux hace push de commits, como en la automatización de imágenes.
Bootstrap es seguro de volver a ejecutar. Ejecutarlo con una CLI más nueva actualiza los controladores, y recogerá cualquier opción extra que pases.
Verifica la instalación
flux check
kubectl get pods -n flux-system
flux check informa de cada controlador como sano. Deberías ver ejecutándose los controladores source, kustomize, helm y notification. Luego mira qué hizo commit Flux:
git clone https://github.com/<your-github-user>/fleet-infra.git
cd fleet-infra
tree clusters
clusters/
└── dev/
└── flux-system/
├── gotk-components.yaml # los controladores y CRD de Flux
├── gotk-sync.yaml # un GitRepository y una Kustomization que apuntan de vuelta a este repositorio
└── kustomization.yaml
gotk significa GitOps Toolkit. Los dos objetos de gotk-sync.yaml son el corazón de la configuración:
flux get sources git
flux get kustomizations
El GitRepository flux-system le dice a source-controller dónde está tu repositorio y qué rama seguir. La Kustomization flux-system le dice a kustomize-controller que aplique todo lo que hay bajo ./clusters/dev de ese repositorio. Todo lo que añadas bajo esa ruta se recoge automáticamente, que es como la siguiente guía despliega una aplicación.
Limpia
Para eliminar Flux del clúster:
flux uninstall
Esto elimina los controladores y los CRD y los recursos que Flux gestiona en el clúster. No elimina tu repositorio de Git. Para un experimento local, kind delete cluster --name flux-demo elimina todo.
Guías populares
-
Push vs Pull: cómo entrega Flux en Kubernetes Por qué la entrega basada en pull y dirigida por Git cambia cómo despliegas, proteges y recuperas clústeres. -
Despliega tu primera aplicación con un GitRepository y una Kustomization Apunta Flux a manifiestos en Git usando un recurso Kustomization y observa cómo se sincroniza. -
Controla el comportamiento de sincronización: intervalos, prune, corrección de desviaciones y rollback Decide cuándo Flux aplica los cambios, qué elimina, cómo pausarlo y cómo deshacer un mal despliegue. -
Automatiza las actualizaciones de imágenes con Flux Image Automation Deja que Flux detecte nuevas etiquetas de imágenes de contenedor y las confirme en Git. -
Configura multiclúster con Flux Gestiona varios clústeres desde un solo repositorio, con infraestructura compartida y diferencias por clúster. -
Flux CD vs Argo CD: cómo elegir una herramienta GitOps Compara arquitectura, interfaz, Helm, secretos, multi-tenancy y automatización de imágenes para elegir la herramienta adecuada.