安装 Kubeflow 插件
本页介绍如何在 Alauda AI 2.0 及更高版本中部署 Kubeflow 相关插件。
支持的插件:
kfbase:Kubeflow 基础组件,包括认证和授权、中央监控面板、Notebooks、PVC Viewer、TensorBoards、Volumes、Model Registry UI、KServe Endpoints UI,以及 Model Catalog API 服务。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 插件,即 Alauda Build of LeaderWorkerSet。 - 按如下所述配置
oauth2-proxy插件。
配置 Dex 重定向
注意: 在安装
kfbase插件之前,请先为 Dex 重定向配置平台访问 URL。此步骤可能会更新平台 CA 证书。如果在配置oauth2-proxy后证书发生变化,oauth2-proxy配置可能会失败。
在 Administrator > System Settings > Platform Parameters 中,单击 Platform Access URLs 旁边的 Edit,并添加一个格式为 https://<your-kubeflow-domain> 的重定向 URL,例如 https://kubeflow.example.com。
<your-kubeflow-domain>必须与为kfbase插件配置的kubeflowDomain值一致。
配置 oauth2-proxy 插件
获取平台 Dex CA 证书,以便稍后在 Global 集群中使用:
配置 ASM v1(已弃用)
在 global 集群中,或在 ACP Platform Management > Resource Management 中,更新 ServiceMesh 资源,并在 spec 下添加以下内容:
注意: 如果已配置
spec.values.pilot.jwksResolverExtraRootCA,则只更新spec.meshConfig.extensionProviders。添加新条目时不要删除现有条目。
配置 ASM v2
注意: 如果仍存在任何 ASM v1 webhook,请先删除它们。否则 Kubeflow 认证可能会失败。
在 ACP 中,进入 Administrator > MarketPlace > OperatorHub,找到 Alauda Service Mesh v2,打开 All Instances 选项卡,定位类型为 Istio 的实例,例如 default,单击 Update,并在 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 调度器支持,请在安装kftraining之前先部署 Volcano。
部署步骤
1. 部署 kfbase(Kubeflow Base)
在 Cluster Plugins 中找到 kfbase 插件,完成页面上的配置,然后等待部署完成。
部署后:
- 在 Administrator > System Settings > Platform Parameters 中,确认 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是一个后台控制器,不会作为菜单项显示在 Kubeflow UI 中。
5. 部署 Kubeflow Model Registry
在 Administrator > MarketPlace > OperatorHub 中找到 Model Registry Operator,然后单击 Install。
安装 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 插件,因为 LWS 是kubeflow-trainer的依赖项。注意: Kubeflow Trainer v2 需要 Kubernetes
1.32.3或更高版本。较旧的 Kubernetes 版本可能会导致非预期行为。
在 Cluster Plugins 中找到 kubeflow-trainer,单击 Install,选择是否启用 JobSet,然后完成安装。