(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo hacer GitOps para AKS con Flux CD en Infraestructura como Código y DevOps

João Barros 31 de October de 2026 4 min de lectura

Se explica cómo configurar un flujo GitOps para un cluster AKS usando Flux CD: útil para automatizar despliegues, tener historial en Git y permitir rollback seguro en Infraestructura como Código y DevOps.

Prerequisitos

  • Cuenta Azure con permisos para crear recursos.
  • kubectl, az, flux CLI instalados localmente.
  • Cluster AKS creado y contexto kubectl configurado.
  • Repositorio Git (GitHub, Azure Repos) donde guardar manifests YAML.

Paso 1: Preparar el repositorio Git para GitOps

El repositorio debe contener una estructura clara con manifests Kubernetes (deployments, services, kustomize o Helm charts). Aquí usamos una carpeta "clusters/production" con Kustomize para gestionar superposiciones.

# Estrutura mínima
clusters/
  production/
    kustomization.yaml
    app-deployment.yaml
    app-service.yaml

Ejemplo simple de kustomization.yaml:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app-deployment.yaml
- app-service.yaml

Paso 2: Instalar Flux CD en el cluster AKS

Flux CD actúa como operador que sincroniza el estado del cluster con el repositorio Git. Se instala con la CLI flux y se crea un GitRepository y un Kustomization que apuntan al repositorio.

# Autenticar en el AKS
az aks get-credentials --resource-group rg-aks --name myAKS

# Instalar CRDs y controllers de Flux
flux install

Paso 3: Enlazar el repositorio Git con Flux

Se crea una fuente Git en el cluster que indica el repositorio y la rama. Flux leerá esa fuente y aplicará los recursos descritos.

# Crear GitRepository (ejemplo para GitHub)
flux create source git my-app-repo \
  --url=https://github.com/MEU_USER/meu-repo.git \
  --branch=main \
  --interval=1m

# Crear Kustomization apuntando a la carpeta en el repositorio
flux create kustomization my-app \
  --source=my-app-repo \
  --path="./clusters/production" \
  --prune=true \
  --interval=5m

Paso 4: Gestionar secretos y credenciales de forma segura

No poner secretos en texto plano en Git. Usa Flux con SOPS o integración con Azure Key Vault para proteger secretos.

# Ejemplo rápido con SOPS (local):
# 1. Generar clave GPG, 2. encriptar archivo secret.yaml
sops --encrypt secret.yaml > secret.enc.yaml
# Commit de secret.enc.yaml en el repositorio

Paso 5: Automatizar CI para actualizar manifests

Configura un workflow (GitHub Actions, Azure Pipelines) que valide YAML y actualice la imagen del Deployment (image tag) en el repositorio — Flux detecta el cambio y hace el deploy automático.

# Ejemplo mínimo de paso en GitHub Actions (yaml simplificado)
- name: Update image tag
  run: |
    yq e '.spec.template.spec.containers[0].image="myregistry/myapp:$GITHUB_SHA"' -i clusters/production/app-deployment.yaml
    git add clusters/production/app-deployment.yaml && git commit -m "ci: update image" && git push

Paso 6: Monitorizar y hacer rollback

Flux mantiene historial de las sincronizaciones. Para monitorizar usas los controllers y kubectl. El rollback sencillo es revertir en Git (revertir commit) y Flux aplica la versión anterior.

# Verificar Kustomization status
flux get kustomizations

# Revertir el cambio en Git (ejemplo)
git revert 
git push
# Flux detecta y aplica el rollback automáticamente

Verificar el resultado

Confirma que Flux sincronizó y que los recursos están en el cluster:

# Verificar fuentes y sincronización
flux get sources git
flux get kustomizations

# Verificar recursos Kubernetes
kubectl get deployments,svc -n default
kubectl describe deployment meu-app

Comprueba también en el repositorio Git que los commits del CI aparecen y que no existen secretos en texto plano.

Conclusión

Con GitOps y Flux CD para AKS obtienes despliegues declarativos, auditables y rollbacks sencillos, integrando Infraestructura como Código y DevOps. Próximos pasos: integrar Azure Key Vault para secretos, automatizar pruebas de integración antes del push y usar políticas para seguridad. Consejo: empieza por entornos de staging para validar el flujo antes de production — ¿qué parte quieres automatizar a continuación?