You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从原生Helm Release迁移至FluxCD HelmRelease的实现方法

原生Helm Release迁移至FluxCD HelmRelease步骤

1. 备份现有Helm Release信息

先导出当前运行的Helm Release全量配置,防止迁移过程中丢失关键参数:

  • 导出Release完整配置:
    helm get all <release-name> -n <namespace> > helm-release-backup.yaml
    
  • 导出当前生效的values配置(后续迁移要复用):
    helm get values <release-name> -n <namespace> --output yaml > release-values.yaml
    
  • 记录Release使用的Chart版本和仓库地址:
    helm list -n <namespace> | grep <release-name>
    

2. 确保FluxCD已部署并配置

如果集群还没装Flux,先完成基础部署和Git仓库关联:

  • 安装Flux CLI并部署到集群:
    flux install
    
  • 关联你的Git仓库作为Flux的配置源:
    flux create source git <git-repo-alias> \
      --url=<你的Git仓库地址> \
      --branch=<主分支名> \
      --interval=1m \
      --namespace=flux-system
    

3. 创建Flux Helm仓库资源

对应原Helm Release使用的Chart仓库,创建Flux的HelmRepository(如果是OCI镜像仓库则用OCIRepository):

  • 示例HelmRepository配置(保存为helm-repo.yaml):
    apiVersion: source.toolkit.fluxcd.io/v1
    kind: HelmRepository
    metadata:
      name: <仓库别名>
      namespace: flux-system
    spec:
      url: <原Helm仓库地址>
      interval: 1h # 定期同步仓库索引
    
  • 将该文件提交到Git仓库,Flux会自动完成仓库同步。

4. 编写Flux HelmRelease资源

创建HelmRelease配置文件,完全匹配原Release的运行参数:

  • 示例配置(保存为helm-release.yaml):
    apiVersion: helm.toolkit.fluxcd.io/v2beta1
    kind: HelmRelease
    metadata:
      name: <release-name>
      namespace: <原命名空间>
    spec:
      releaseName: <release-name> # 和原Release名称保持一致,避免冲突
      chart:
        spec:
          chart: <原Chart名称>
          version: <原Chart版本> # 必须和原Release使用的版本一致
          sourceRef:
            kind: HelmRepository
            name: <仓库别名> # 对应上面创建的HelmRepository
            namespace: flux-system
      interval: 5m # Flux定期检查配置同步
      values:
        # 粘贴从release-values.yaml导出的所有配置
        # 若原Release使用了Secret存储敏感值,可改用existingSecret引用:
        # existingSecret:
        #   name: <原Secret名称>
    
  • 注意:必须保证这里的values和原Release完全一致,否则会触发不必要的配置变更。

5. 同步配置并验证迁移结果

  • 将helm-release.yaml提交到Git仓库,手动触发Flux同步(可选,默认自动同步):
    flux reconcile source git <git-repo-alias> -n flux-system
    
  • 检查HelmRelease状态,确认部署成功:
    flux get helmreleases -n <原命名空间>
    
  • 对比原Release和Flux管理的Release状态,确保Pod、服务等完全一致:
    helm list -n <原命名空间>
    kubectl get pods -n <原命名空间>
    

6. 移除原生Helm Release(可选)

确认Flux已完全接管应用后,可删除原生的Helm Release:

helm uninstall <release-name> -n <原命名空间>

提示:如果担心服务中断,可先保留原Release,观察一段时间后再删除。

内容的提问来源于stack exchange,提问作者Nikhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 05:38:25