搭建 Flux GitOps 持续交付

适用场景

希望集群状态由 Git 持续对账,支持 Kustomize、Helm、镜像自动更新和多集群。Flux 比 Argo CD 更偏“控制器组合”,适合平台团队做 GitOps 基础设施。

前置条件

步骤

  1. 安装 Flux CLI 并检查:
flux --version
flux check --pre
  1. Bootstrap 仓库:
export GITHUB_TOKEN=***
flux bootstrap github \
  --owner=example \
  --repository=gitops \
  --branch=main \
  --path=clusters/prod \
  --personal
  1. 创建 GitRepository 和 Kustomization:
flux create source git apps \
  --url=https://github.com/example/apps.git \
  --branch=main \
  --interval=1m

flux create kustomization apps \
  --source=GitRepository/apps \
  --path=./apps/prod \
  --prune=true \
  --interval=5m
  1. 部署 HelmRelease:
flux create helmrelease nginx \
  --source=HelmRepository/bitnami \
  --chart=nginx \
  --chart-version=18.0.0 \
  --namespace=demo \
  --interval=10m
  1. 配置镜像自动更新:
flux create image repository app \
  --image=registry.example.com/app \
  --interval=5m

flux create image policy app \
  --image-ref=app \
  --select-semver='>=1.0.0'

flux create image update flux-system \
  --git-repo-ref=flux-system \
  --checkout-branch=main \
  --push-branch=main \
  --author-name=flux \
  --author-email=flux@example.com \
  --interval=10m

验证

回滚

常见坑

相关命令