
fluxcd/source-controllersource-controller是Flux CNCF项目的核心组件,专门用于管理和同步Kubernetes集群配置的各种来源(如Git仓库、Helm仓库、OCI制品等)。它通过持续监控这些源的变更,确保集群配置始终与定义的源保持一致,是实现GitOps工作流的关键组件。
interval参数配置)、手动触发同步(通过flux reconcile source命令)及事件驱动同步(如Git仓库webhook触发)。source-controller通常作为Flux的一部分部署,推荐通过官方安装命令部署:
bash# 安装Flux(包含source-controller及其他核心组件) flux install
部署后,source-controller运行在flux-system命名空间,通过Kubernetes自定义资源(CRD)进行配置管理。
创建GitRepository自定义资源,定义Git配置源:
yamlapiVersion: source.toolkit.fluxcd.io/v1 kind: GitRepository metadata: name: app-config namespace: flux-system spec: interval: 10m # 每10分钟同步一次 url: [***] # Git仓库URL ref: branch: main # 同步main分支 secretRef: name: git-creds # 访问私有仓库的凭证(可选,包含username/password或SSH密钥) timeout: 30s # 同步超时时间
创建后,source-controller将自动同步仓库内容,并通过kubectl get gitrepository app-config -o yaml查看同步状态。
创建HelmRepository自定义资源,定义Helm仓库源:
yamlapiVersion: source.toolkit.fluxcd.io/v1beta2 kind: HelmRepository metadata: name: stable-charts namespace: flux-system spec: interval: 1h # 每小时同步一次仓库索引 url: [***] # Helm仓库URL timeout: 60s
source-controller的行为主要通过自定义资源的spec字段配置,关键参数说明:
| 参数 | 描述 | 示例值 |
|---|---|---|
interval | 同步间隔,控制源的检查频率 | 5m(5分钟)、1h |
url | 配置源地址(Git/Helm/OCI仓库URL) | [***] |
ref | 版本引用(分支、标签、提交哈希等) | branch: main、tag: v1.0 |
secretRef | 访问私有源的凭证引用 | name: git-credentials |
timeout | 同步操作超时时间 | 60s(默认) |
secretRef凭证。interval以提高同步实时性;对于稳定源,可延长interval减少资源消耗。status字段查看,常见状态包括Ready(同步成功)、FetchFailed(拉取失败)等。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务