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