返回市场
_flux操作器_

_flux操作器_

作者:controlplaneio-fluxcd385 星标更新:2025-11-24

项目介绍

flux-operator

release Artifact Hub Operator Hub e2e license SLSA 3

Flux Operator 是一个 Kubernetes CRD 控制器,用于管理 CNCF Flux CDControlPlane 企业发行版 的生命周期。该操作符通过自服务能力、部署窗口以及针对 GitHub、GitLab 和 Azure DevOps 拉取请求测试的预览环境扩展了 Flux。

功能

Flux CD 自动驾驶 - 操作符提供了一种替代 Flux 引导过程的方法,它通过完全自动化 Flux 控制器的安装、配置和升级来消除跨集群舰队管理 Flux 的运营负担,基于声明式 API。

高级配置 - 操作符简化了 Flux 多租户锁定、分片、水平和垂直扩展、持久存储的配置,并允许使用 Kustomize 补丁微调 Flux 控制器。操作符简化了从 Git 作为集群期望状态交付机制到 OCI 资产和 S3 兼容存储的过渡。

深入洞察 - 操作符提供了对 Flux 管理的交付管道的深入洞察,包括关于 Flux 控制器准备状态、协调器统计信息和集群状态同步的详细报告和 Prometheus 指标。

自服务环境 - 操作符的 ResourceSet API 允许平台团队定义自己的应用程序标准,作为一个可以模板化、参数化并作为单个单元部署在自服务环境中的 Flux 和 Kubernetes 资源组。ResourceSet API 与 Git 拉取请求集成,创建临时环境进行测试和验证。

AI 辅助 GitOps - Flux MCP Server 将 AI 助手连接到运行操作符的 Kubernetes 集群,通过自然语言实现无缝交互。它充当 AI 工具和 GitOps 管道之间的桥梁,允许您分析跨环境的部署、故障排除问题并使用对话提示执行操作。

企业支持 - 操作符是 ControlPlane 企业产品 的关键组件,旨在自动将新的 Flux 版本、CVE 补丁和热修复安全可靠地部署到生产环境中。操作符与 ControlPlane Flux 发行版一起,在 Red Hat OpenShift、Amazon EKS、Azure AKS 和 Google GKE 上进行了端到端测试。

快速入门指南

安装 Flux Operator

flux-system 命名空间中安装 Flux Operator,例如使用 Helm:

helm install flux-operator oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator \
  --namespace flux-system

[!NOTE] Flux Operator 可以使用 Helm、Terraform、OperatorHub、kubectl 等方法安装。 更多信息,请参阅 安装指南

安装 Flux 控制器

flux-system 命名空间中创建一个名为 fluxFluxInstance 资源,以安装最新稳定的 Flux 版本:

apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
  name: flux
  namespace: flux-system
  annotations:
    fluxcd.controlplane.io/reconcileEvery: "1h"
    fluxcd.controlplane.io/reconcileArtifactEvery: "10m"
    fluxcd.controlplane.io/reconcileTimeout: "5m"
spec:
  distribution:
    version: "2.x"
    registry: "ghcr.io/fluxcd"
    artifact: "oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests"
  components:
    - source-controller
    - kustomize-controller
    - helm-controller
    - notification-controller
    - image-reflector-controller
    - image-automation-controller
  cluster:
    type: kubernetes
    size: medium
    multitenant: false
    networkPolicy: true
    domain: "cluster.local"
  kustomize:
    patches:
      - target:
          kind: Deployment
        patch: |
          - op: replace
            path: /spec/template/spec/nodeSelector
            value:
              kubernetes.io/os: linux
          - op: add
            path: /spec/template/spec/tolerations
            value:
              - key: "CriticalAddonsOnly"
                operator: "Exists"

[!NOTE] Flux 实例可以通过多种方式进行定制。 更多信息,请参阅 配置指南

从 Git 仓库同步

要从 Git 仓库同步集群状态,请向 FluxInstance 添加以下配置:

apiVersion: fluxcd.controlplane.io/v1
kind: FluxInstance
metadata:
  name: flux
  namespace: flux-system
spec:
  sync:
    kind: GitRepository
    url: "https://github.com/my-org/my-fleet.git"
    ref: "refs/heads/main"
    path: "clusters/my-cluster"
    pullSecret: "flux-system"
  # distribution omitted for brevity

如果源仓库是私有的,则必须在 flux-system 命名空间中创建 Kubernetes 密钥,并应包含克隆仓库所需的凭据:

flux create secret git flux-system \
  --url=https://github.com/my-org/my-fleet.git \
  --username=git \
  --password=$GITHUB_TOKEN

[!NOTE] 更多关于如何配置从 Git 仓库、容器注册表和 S3 兼容存储同步的信息,请参阅 集群同步指南

监控 Flux 安装

要监控 Flux 部署状态,请检查 flux-system 命名空间中的 FluxReport 资源:

kubectl get fluxreport/flux -n flux-system -o yaml

报告定期更新,包含有关部署准备状态、发行详情、协调器统计信息、Flux CRD 版本、集群同步状态等信息。

ResourceSet API

Flux Operator 的 ResourceSet API 提供了一个高层次抽象,用于定义和管理 Flux 资源及相关 Kubernetes 对象作为单一单元。ResourceSet API 设计用于减少 GitOps 工作流的复杂性,并使开发者和平台团队能够自助服务。

指南:

文档

贡献

我们欢迎通过 GitHub 拉取请求对 Flux Operator 项目做出贡献。请参阅 CONTRIBUTING 指南,了解如何设置开发环境并开始为项目做贡献的详细信息。

许可证

Flux Operator 是一个开源项目,根据 AGPL-3.0 许可证发布。

该项目由 CNCF Flux 核心维护者团队的一部分 ControlPlane 开发。