安装 Kubeflow 插件
本页介绍如何在 Alauda AI 2.0 及更高版本中部署与 Kubeflow 相关的插件。
支持的插件:
kfbase:Kubeflow 基础组件,包括身份验证和授权、中心监控面板、Notebooks、PVC Viewer、TensorBoards、Volumes、Model Registry UI、KServe Endpoints UI 以及 Model Catalog API service。model-registry-operator:Kubeflow Model Registry operator。kfp:Kubeflow Pipelines。kftraining:Kubeflow Training operator。此插件已弃用。kubeflow-trainer:用于训练作业管理的 Kubeflow Trainer v2。此插件替代kftraining。
目录
环境准备配置 Dex 重定向配置oauth2-proxy 插件配置 ASM v1(已弃用)配置 ASM v2组件接入部署步骤1. 部署 kfbase(Kubeflow Base)2. 创建 Kubeflow 用户命名空间并绑定用户3. 将用户绑定到已有命名空间4. 部署 kfp 和 kftraining(已弃用)5. 部署 Kubeflow Model Registry6. 部署 kubeflow-trainer(Kubeflow Trainer v2)环境准备
在开始之前,请确保满足以下前提条件:
- 已有可用且正在运行的 ACP 环境。
- 已部署 Alauda AI。需要 Alauda AI 2.0 或更高版本。
- 已安装 Alauda Build of KServe。
- Kubeflow 将运行的业务集群中已部署 ASM。如果尚未安装 ASM,请先部署后再继续。ASM v1 已弃用。请尽可能使用 ASM v2。
- 如果计划部署
kubeflow-trainer,请先安装 LWS plugin,即 Alauda Build of LeaderWorkerSet。 - 已按如下所述配置
oauth2-proxy插件。
配置 Dex 重定向
注意: 在安装
kfbase插件之前,请先为 Dex 重定向配置平台访问 URL。此步骤可能会更新平台 CA 证书。如果在配置oauth2-proxy后证书发生变化,则oauth2-proxy配置可能会失败。
在 管理员 > 系统设置 > 平台参数 中,点击 Platform Access URLs 旁边的 编辑,并添加格式为 https://<your-kubeflow-domain> 的重定向 URL,例如 https://kubeflow.example.com。
<your-kubeflow-domain>必须与kfbase插件中配置的kubeflowDomain值一致。
配置 oauth2-proxy 插件
获取平台 Dex CA 证书,以便后续在 global 集群 中使用:
配置 ASM v1(已弃用)
在 global 集群中,或者在 ACP 的 平台管理 > 资源管理 中,更新 ServiceMesh 资源,并在 spec 下添加以下内容。
注意: 如果已配置
spec.values.pilot.jwksResolverExtraRootCA,则只更新spec.meshConfig.extensionProviders。添加新条目时不要删除现有条目。
配置 ASM v2
注意: 如果仍然存在任何 ASM v1 webhook,请先将其删除。否则 Kubeflow 身份验证可能会失败。
在 ACP 中,进入 管理员 > MarketPlace > OperatorHub,找到 Alauda Service Mesh v2,打开 All Instances 选项卡,找到类型为 Istio 的实例,例如 default,点击 更新,并在 spec 下添加以下内容:
组件接入
下载以下插件的安装包,并使用 violet 上传:
kfbase:Kubeflow 基础功能。model-registry-operator:Kubeflow Model Registry operator。kfp:Kubeflow Pipelines。kftraining:Kubeflow Training operator。此插件已弃用。kubeflow-trainer:Kubeflow Trainer v2。此插件替代kftraining。
注意: 如果要为
kftraining启用 Volcano scheduler 支持,请在安装kftraining之前先部署 Volcano。
部署步骤
1. 部署 kfbase(Kubeflow Base)
在 Cluster Plugins 中找到 kfbase 插件,完成页面上的配置,并等待部署完成。
部署完成后:
- 在 管理员 > 系统设置 > 平台参数 中,确认 Platform Access URLs 包含格式为
https://<your-kubeflow-domain>的地址,其中<your-kubeflow-domain>是为kfbase插件配置的kubeflowDomain。 - 配置 DNS 解析,或添加本地 hosts 记录,使
<your-kubeflow-domain>解析到kubectl -n istio-system get gateway kubeflow-external-gateway分配的 IP 地址。
部署完成后,Kubeflow 入口会显示在 Alauda AI 的 Tools 下。
如需执行升级相关操作,请参见 升级 Kubeflow 插件。
2. 创建 Kubeflow 用户命名空间并绑定用户
在用户首次登录 Kubeflow 之前,请先将 ACP 用户绑定到某个命名空间。以下示例创建命名空间 kubeflow-admin-cpaas-io,并将 admin@cpaas.io 指定为所有者。
注意: 如果在 Alauda AI 部署期间已经创建了此
Profile资源,则可以跳过此步骤。注意: 在创建 Notebook 实例和类似工作负载之前,您可能需要降低用户命名空间的 Pod Security Admission 级别。
3. 将用户绑定到已有命名空间
如果 Alauda AI 已经部署,且命名空间 kubeflow-admin-cpaas-io 已存在,则 Profile 也可能已经存在。如果该命名空间在 Kubeflow 中仍未显示,请创建以下资源以将账户绑定到该命名空间:
4. 部署 kfp 和 kftraining(已弃用)
在 Cluster Plugins 中找到 kfp 和 kftraining,并按需部署。
注意: 部署
kfp后,Kubeflow UI 中将可使用与 pipeline 相关的功能。注意:
kftraining是一个后台 controller。它不会作为菜单项显示在 Kubeflow UI 中。
5. 部署 Kubeflow Model Registry
在 管理员 > MarketPlace > OperatorHub 中,找到 Model Registry Operator 并点击 安装。
operator 安装完成后,打开 All Instances 选项卡,并在用户命名空间中创建一个 ModelRegistry 实例。
注意: 请在已经绑定到 Kubeflow
Profile的命名空间中创建该实例。否则不会显示 Model Registry UI。
创建实例时,请根据需要配置以下字段:
- Name:Model Registry 实例名称。
- Namespace:实例运行所在的命名空间。该命名空间必须已经绑定到 Kubeflow
Profile。 - MySQL Storage Class:用于 Model Registry 元数据的存储类,例如
standard。 - MySQL Storage Size:元数据数据库的存储大小。默认值为
10Gi。 - DisplayName:Model Registry 实例的显示名称。
- Description:实例的简短描述。
注意: 实例启动后,请刷新 Kubeflow 左侧导航中的 Model Registry 条目以查看新实例。在创建第一个实例之前,Model Registry 页面为空。
注意: Model Registry 实例会限制来自其他命名空间的网络请求。若要允许更多命名空间,请编辑该实例的
authorizationpolicy,例如执行kubectl -n <your-namespace> edit authorizationpolicy <model-registry-name>,并根据 Istio 文档更新策略。注意: 您可以在不同的命名空间中部署多个 Model Registry 实例。每个实例都是独立的。
6. 部署 kubeflow-trainer(Kubeflow Trainer v2)
注意: 如果
kftraining已经部署,请先卸载它,再部署kubeflow-trainer。注意: 在部署
kubeflow-trainer之前请先安装 LWS plugin,因为 LWS 是kubeflow-trainer的依赖项。注意: Kubeflow Trainer v2 需要 Kubernetes
1.32.3或更高版本。较旧的 Kubernetes 版本可能导致意外行为。
在 Cluster Plugins 中找到 kubeflow-trainer,点击 安装,选择是否启用 JobSet,然后完成安装。