Kubeflow Chart 插件
在 Alauda AI >= 2.0 中部署 Kubeflow 插件。包括:
- kfbase:Kubeflow 基础组件,包括认证与授权、中央监控面板、notebook、pvc-viewer、tensorboards、volumes、模型注册 UI、kserve endpoints UI、模型目录 API 服务等。
- model-registry-operator:Kubeflow Model Registry Operator
- kfp:Kubeflow Pipeline
- kftraining:Kubeflow Training Operator(已弃用)
- kubeflow-trainer:Kubeflow 训练作业管理插件,即 Kubeflow Trainer v2(替代 kftraining)
目录
环境准备配置 oauth2-proxy 插件组件接入部署步骤1. 部署 kfbase(Kubeflow Base)2. 创建 Kubeflow 用户并绑定命名空间3. 若绑定用户到已创建的命名空间,还需完成以下配置:4. 部署 kfp(Kubeflow Pipeline)和 kftrainer(Kubeflow Training Operator)5. 部署 Kubeflow Model Registry6. 部署 kubeflow-trainer(Kubeflow Trainer v2)环境准备
- 一个运行中的 ACP 环境
- 确保已部署 Alauda AI(要求 Alauda AI 版本 >= 2.0)
- 在要部署 Kubeflow 的业务集群中部署 ASM(如果前一步未部署 ASM)(目前支持 ASM v1,未来预计支持 ASM v2)
- 部署 LWS(Alauda Build of LeaderWorkerSet)插件,kubeflow-trainer 的依赖插件。
- 按照下述说明配置 oauth2-proxy 插件
配置 oauth2-proxy 插件
获取平台 dex CA 证书,供后续在 Global 集群中使用:
然后进入 global 集群或在 acp 平台管理 -> 资源管理 中更新 ServiceMesh 资源,在 spec 字段下添加以下内容:
注意:如果已配置 spec.values.pilot.jwksResolverExtraRootCA,则只能配置 spec.meshConfig.extensionProviders,且只能新增,不能删除原有的 spec.meshConfig.extensionProviders
组件接入
获取以下插件的安装包,使用 violet 工具完成接入。
- kfbase:Kubeflow 基础功能
- model-registry-operator:Kubeflow Model Registry Operator
- kfp:Kubeflow Pipeline 功能
- kftraining:Kubeflow Training Operator(已弃用)
- kubeflow-trainer:Kubeflow 训练作业管理插件(替代 kftraining)
注意:对于 kftraining 插件,如需启用 volcano 调度器支持,需先部署 volcano,再部署 kftraining。
部署步骤
1. 部署 kfbase(Kubeflow Base)
在 Cluster Plugins 中找到 kfbase(Kubeflow Base)插件,按页面提示填写配置,等待组件部署完成。
部署完成后,需要进行以下操作配置 dex 重定向:
在 管理员 - 系统设置 - 平台参数 中,点击 平台访问 URL 右侧的“编辑”按钮,添加重定向 URL,格式为 https://<your-kubeflow-domain>:<port>/,例如 https://192.168.139.133:30443/。注意 host 与 kfbase 插件部署页面配置的 oidcRedirectURL 相同,端口与 istioGatewayNodeportHTTPS 相同。
部署完成后,可在 Alauda AI 的 工具 导航下找到 Kubeflow 菜单项,点击进入 Kubeflow 界面。
2. 创建 Kubeflow 用户并绑定命名空间
首次登录 Kubeflow 前,需要将 ACP 用户绑定到命名空间。用户可参考以下示例,创建命名空间 kubeflow-admin-cpaas-io 并将用户 admin@cpaas.io 绑定为其所有者。
注意:如果该 Profile 资源已在 Alauda AI 部署时创建,可跳过此步骤
注意:可能需要降低用户命名空间的 Pod Security Admission 级别,以便创建 Notebook 实例等
3. 若绑定用户到已创建的命名空间,还需完成以下配置:
如果前一步中 Alauda AI 已部署,且已创建 kubeflow-admin-cpaas-io 命名空间和对应的 Profile 资源,但仍无法选择该命名空间,可参考以下资源创建账户的角色绑定。
4. 部署 kfp(Kubeflow Pipeline)和 kftrainer(Kubeflow Training Operator)
同上,在 Cluster Plugins 中找到 kfp(Kubeflow Pipeline)和 kftrainer(Kubeflow Training Operator)。
注意:Kubeflow Pipeline 部署完成后,Kubeflow 界面中可使用 Pipeline 相关功能。
注意:Kubeflow Training Operator 是后台任务调度器,不会出现在 UI 菜单和功能中。
5. 部署 Kubeflow Model Registry
在 管理员 - Marketplace - OperatorHub 中找到 Model Registry Operator,点击“安装”按钮完成 Operator 部署。
Operator 安装完成后,需要在用户命名空间中创建一个 ModelRegistry 实例,切换到 所有实例 标签页,点击“创建”按钮创建实例。
注意:必须在已绑定 Kubeflow 用户 Profile 的命名空间中创建实例,否则 Model Registry UI 不会显示
创建实例时,根据需要配置以下参数:
- Name:配置 Model Registry 实例名称。
- Namespace:配置 Model Registry 实例所在命名空间,必须是已绑定 Kubeflow 用户 Profile 的命名空间。
- MySQL Storage Class:配置 MySQL 存储类,用于存储 Model Registry 的元数据。根据集群中可用的存储类填写,例如
standard。 - MySQL Storage Size:配置 MySQL 存储大小,用于存储 Model Registry 的元数据。默认值为
10Gi,可根据需求调整。 - DisplayName:Model Registry 实例显示名称。
- Description:Model Registry 实例简要描述。
注意:Model Registry 实例启动后,刷新 Kubeflow 页面左侧导航的 Model Registry 菜单,即可看到上述步骤部署的实例。首次部署实例前,Kubeflow Model Registry 界面为空。
注意:Model Registry 实例会限制非当前命名空间的网络请求。如需允许更多命名空间访问,需要手动修改 kubectl -n <your-namespace> edit authorizationpolicy <model-registry-name>,并根据 istio 文档添加允许访问的命名空间。
注意:可在不同命名空间安装多个 Model Registry 实例,实例之间相互独立。
6. 部署 kubeflow-trainer(Kubeflow Trainer v2)
注意:如果已部署 kftraining(Kubeflow Training Operator),需先卸载 kftraining 后再部署 kubeflow-trainer。
注意:部署 kubeflow-trainer 前,请确保已安装 LWS(Alauda Build of LeaderWorkerSet)插件,因为 LWS 是 kubeflow-trainer 的依赖。
注意:Kubeflow Trainer v2 要求 Kubernetes 版本最低为
1.32.3,较旧版本可能导致异常问题。
在 Cluster Plugins 中找到 kubeflow-trainer(Kubeflow Trainer v2),点击“安装”按钮,选择是否启用 JobSet,然后点击“安装”按钮完成部署。