Flux CD Flux CD

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.

10 min Principiante

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:

  • --repository es donde Flux guarda sus propios manifiestos y, más adelante, la configuración de tus aplicaciones.
  • --path es la carpeta del repositorio desde la que se sincroniza este clúster. Usa una ruta por clúster, como clusters/dev y clusters/production, para que un repositorio pueda servir a muchos clústeres.
  • --branch es 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-auth usa el propio personal access token por HTTPS en lugar de generar una deploy key SSH.
  • --read-write-key da 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