拓冰建站拓冰建站
首页 / 资讯中心 / 正文

MLflow + Kubeflow 搭建 K8s 机器学习平台指南:从实验留痕到模型一键上线

MLflow Kubeflow 搭建 K8s 机器学习平台指南从实验留痕到模型一键上线【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflowMLflow 与 Kubeflow 是搭建K8s 机器学习平台的两块互补拼图前者在集群里提供实验跟踪与模型注册能力后者把训练流程编排成可复用的 DAG。本文面向新手带你完整走一遍「连通 → 追溯 → 自动化」的落地路线。先从一个真实场景说起。你所在的小团队每两周交付一版模型但每次上线都像在拆炸弹训练脚本跑在个人机器上线上服务却部署在 K8s 集群里出了问题没人说得清线上那个模型对应哪次训练、用了哪些参数同一个最佳模型A 同事复现的指标和 B 同事的总是不一样。模型上线反复返工根子往往不在算法而在训练、实验、部署三套流程彼此脱节。下面这套方案里MLflow 的 Helm Chart 负责把 Tracking Server 和 Model Registry 装进 K8scharts/ 目录即官方 chartHelm 部署文档提供了生产级配置参考Kubeflow Pipelines下称 KFP负责把数据预处理 → 训练 → 评估编排成 DAG 并调度训练 Pod模型最后通过mlflow models build-docker一键打成推理镜像交给 KServe 之类的推理服务上线。先分好工MLflow 与 Kubeflow 在平台里各管什么选组件前先明确边界避免后期职责混乱职责承担组件常用入口实验跟踪参数/指标/artifact、模型注册、Tracking Server 托管MLflowmlflow/tracking/ 源码、Helm chart训练 DAG 编排、Pod 生命周期与资源配额、流水线重跑Kubeflow PipelinesKFP 组件component与pipeline装饰器模型推理镜像构建、KServe 部署MLflow 模型 KServemlflow models build-docker、部署文档一句话记忆实验的账本记在 MLflow训练流程的调度交给 KFP。两者都跑在同一个 K8s 集群里通过集群内 DNS 互通不需要额外的中间件。打通MLflow Tracking Server 的 Kubernetes Helm 部署配置方法 环境要求Kubernetes 1.23、Helm 3.8、已装好 KFP 的集群。先把 MLflow 装进集群。仓库自带官方 Helm chart一条命令即可安装默认 SQLite 存元数据 PVC 存 artifact适合团队共享开发环境helm install mlflow ./charts \ --namespace mlflow \ --create-namespace \ --set storage.enabledtrue \ --set mlflow.backendStoreUrisqlite:////mlflow/mlflow.db \ --set mlflow.artifactsDestination/mlflow/artifacts kubectl port-forward -n mlflow svc/mlflow-mlflow 5000:5000打开http://localhost:5000看到 UI 即成功。多用户生产环境请换成 PostgreSQL 存元数据、对象存储存 artifact并把凭证放进 K8s Secret 后通过 values 文件引用——charts/README.md 给出了完整的 values 写法TLS、Ingress、Prometheus 指标、垃圾回收 CronJob 也都能在这一个文件里配好。KFP 的安装走 Kubeflow 官方的 kustomize manifest属于集群级一次性操作这里不展开。追溯训练任务绑定 Tracking URI 与 Pipeline RunID 的配置方法MLflow 装好后实验页就能这样按 run 对比参数和指标关键是让训练代码指向集群里的 Tracking Server并把 KFP 的运行 ID 记进 MLflow实现双向追溯import os import mlflow mlflow.set_tracking_uri(http://mlflow-mlflow.mlflow.svc.cluster.local:5000) with mlflow.start_run(run_nameos.environ.get(PIPELINE_RUN_ID, local-run)): mlflow.set_tag(kubeflow_run_id, os.environ.get(PIPELINE_RUN_ID)) train_and_log()两个新手最容易踩的点集群内访问地址用 Service 的 DNS 名形如http://mlflow-mlflow.mlflow.svc.cluster.local:5000命名空间 Service 名拼出来不要写localhost——localhost指向的是 Pod 自己从 KFP 的训练容器里根本连不通 Tracking Server。run_name 直接取流水线 RunIDPIPELINE_RUN_IDMLflow 里的一条 run 就天然对应 KFP 的一次执行排障时双向都能找到源头。训练代码里照常用mlflow.log_param、mlflow.log_metric、mlflow.sklearn.log_model即可模型会以标准 MLflow Model 格式登记进 Registry版本号自动递增为后面打包部署打下基础。自动化模型一键构建容器镜像与 KServe 部署配置方法模型跑通之后部署环节也要声明式。用 MLflow 的 build-docker 从 Registry 直接取某个版本的模型构建推理镜像mlflow models build-docker \ --registry-uri runs:/RUN_ID/model \ -n my-model:$(MLFLOW_VERSION)镜像推到仓库后用 KServe 的 InferenceService 描述部署核心字段镜像 资源请求apiVersion: serving.kserve.io/v1beta1 kind: InferenceService metadata: name: my-model spec: predictor: containers: - image: my-model:MLFLOW_VERSION resources: requests: {cpu: 1, memory: 2Gi}kubectl apply -f之后 KServe 会处理副本滚动、探活与扩缩容。到这里KFP 流水线里新增一个构建 部署组件就能把训练、记录、上线串成一键式闭环团队不再需要手工维护 K8s 配置文件与 MLflow 实验之间的映射。排障避坑三类典型故障的症状、原因与解法 按症状 → 原因 → 解法对照检查镜像拉取失败Pod 处于 ImagePullBackOff原因是集群节点没有私有镜像仓库的凭证。解法在 namespace 里创建 DockerConfigJson 类型的 Secret在 Pod/InferenceService 模板中配置imagePullSecrets再确认节点能访问仓库地址。训练任务报 Tracking Server 连接超时通常是地址写错或网络不通。解法把 URI 改成 Service 的集群内 DNS 名在训练容器里kubectl exec进去做 DNS 解析和 HTTP 请求验证若 Tracking Server 前面挂了 Ingress 且配了主机名校验需把域名加进 chart 的allowed_hosts见 charts/values.yaml。训练 Pod 被 OOMKilled 或 GPU 任务互相抢占原因是资源请求没有设好。解法在 KFP 组件上设置 CPU/内存 request 与 limitGPU 任务声明nvidia.com/gpu配额并用 PodAntiAffinity 把重任务打散到不同节点。结语把实验、调度与部署收敛到一个集群里绕一圈你会发现这套MLflow Kubeflow K8s 机器学习平台方案的本质是各归其位MLflow 管好实验元数据、模型版本与推理镜像KFP 管好 DAG 编排与资源调度K8s 提供统一的运行底座。实验可复现、部署可追溯、资源可调度上线返工这类问题大多能在这条链路上被提前拦截。未来随着 MLflow 3 持续增强对 GenAI 场景的支持同一个集群里跑经典模型与大模型应用将越来越自然——这条路线值得尽早搭起来。【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门