升级 Kubeflow Operators

本页面描述在升级 Kubeflow operators 之后可能需要执行的手动操作。

有关安装步骤,请参阅 安装 Kubeflow Operators

v1.x(Cluster Plugin)迁移到 v26.3.0(OLM Operator)

v26.3.0(Alauda AI v2.3)开始,Kubeflow 组件以 OLM Helm Operators(kfbase-operatorkfp-operatorkubeflow-trainer-operator)的形式发布,而不再使用 Cluster Plugins(kfbasekfpkftrainingkubeflow-trainer)。这两种形态之间不支持就地升级路径——Cluster Plugin 安装描述符(ModuleInfo)与 OLM Subscription 彼此不兼容。

推荐的迁移操作步骤

  1. 备份用户数据:

    • 在每个用户命名空间中快照 Notebook PVC。
    • 导出 Profile CR,以及你为 Kubeflow 用户创建的任何自定义 RoleBinding / AuthorizationPolicy
    • 通过 kfp CLI 导出你的 KFP pipelines、experiments 和 scheduled runs。
    • 导出任何 TrainingRuntime 和处于活动状态的 TrainJob CR。
  2. 从 AC UI(Cluster Plugins)中卸载 v1.x Cluster Plugin 安装:按顺序移除 kubeflow-trainerkfpkftraining(如果存在)以及 kfbase。匹配的 ModuleInfo / ModuleConfig 资源会自动移除。

    警告: 在确认步骤 1 中的备份完成之前,请勿继续。如果卸载会移除 kubeflow.org CRD,则所有 Profile CR(以及它们所属的用户命名空间 / Notebook PVC)都可能被级联删除。在依赖下面的恢复步骤之前,请先验证你的用户命名空间和 PVC 在卸载后是否仍然保留。

  3. 管理员 > MarketPlace > OperatorHub 安装 v26.3.0 operator 集合:

    • 先安装 kfbase-operator(其他 operator 依赖基础组件)。
    • 如果你需要 Kubeflow Pipelines,则安装 kfp-operator(仅限 amd64 集群)。
    • 如果你需要 Trainer v2,则安装 kubeflow-trainer-operator
  4. 创建对应的 CR 实例KubeflowBaseKubeflowPipelinesKubeflowTrainer),并复用你在 v1.x 安装中的配置。之前在 Cluster Plugin 安装表单中设置的 chart values 现在通过 operator 的 CSV specDescriptors 暴露出来——大多数字段名称保持不变。

  5. 恢复用户数据: 如果 Profile CR 及其 PVC 在卸载过程中被保留,它们会通过 Notebook controller reconcile 自动重新关联。如果它们已被移除,请先重新应用你在步骤 1 中导出的 Profile CR,并从快照中恢复 PVC。无论哪种情况,都要重新导入 KFP pipelines 和 TrainingRuntimes。

v1.xv26.3.0 之间的变化

  • 形态: Cluster Plugin → OLM Helm Operator。
  • 安装描述符: ModuleInfo → OLM Subscription + ClusterServiceVersion + operator 自有 CR。
  • Trainer: 移除了 kftraining(Training Operator v1,已弃用);替换为 kubeflow-trainer-operator(Trainer v2)。
  • 上游对齐: 所有 chart 重新固定到 kubeflow/manifests 26.03。
  • 架构: kfp-operator 现在仅支持 amd64;kfbase-operatorkubeflow-trainer-operator 仍支持 amd64 + arm64。

kfbase 的升级说明(v1.x 历史版本)

v1.10.13 或更早版本升级

直到 v1.10.13 的版本都通过 NodePort 暴露 Kubeflow dashboard。升级后,推荐改为通过 gateway endpoint 访问。

升级后:

  • 检查 kfbase plugin 配置中的 kubeflowDomain 字段,以获取 <your-kubeflow-domain>
  • 运行 kubectl -n istio-system get gateway kubeflow-external-gateway 以获取 gateway IP 地址。
  • 更新 DNS 解析,或者更新本地 hosts 文件,使 <your-kubeflow-domain> 解析到该 gateway IP 地址。

如果你仍然需要使用 NodePort,请手动将 istio-system/kubeflow-istio-ingressgateway service 修改为 NodePort 类型,然后运行以下命令获取分配给 443 的端口:

kubectl -n istio-system get service kubeflow-istio-ingressgateway

随后,你可以通过以下地址访问 dashboard:

https://<ip-of-master-node-of-the-cluster>:<NodePort>/

v1.10.9 或更早版本升级

在升级之前,请在集群中设置一个默认 storage class,它将用于 kfbase plugin 配置中的 pgStorageClass 参数。如果未设置默认 storage class,升级可能会因缺少必需参数而失败。这些参数是在 v1.10.10 中引入的。