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

MLflow:在 Kubernetes 上部署与运行的完整路径

MLflow在 Kubernetes 上部署与运行的完整路径【免费下载链接】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想让 MLflow tracking server 从本地笔记本挪进 Kubernetes 时通常会卡在两头一边是实验元数据和模型 artifact 的持久化——SQLite 加本地磁盘在 Pod 重启后直接归零另一边是训练好的模型怎么变成能扩缩容的在线服务。MLflow 的解法是同一条链路tracking API 负责记录标准模型格式加 Helm chart 负责落地整条 K8s 部署链路不用手写胶水代码。训练、评测、注册、服务各环节通过同一模型格式衔接项目定位一套平台两个落点MLflow 是开源的 AI 工程平台覆盖实验跟踪、模型注册与评估、LLM 应用调试与网关这些环节。放到部署到 K8s这个场景里它的生态位比较特殊它既是被部署的对象tracking server 作为团队共享服务跑在集群里又是部署工具本身——mlflow models build-docker把模型连同依赖打成推理镜像Helm chart 把服务端一键铺进集群。同类方案里很多平台只占一头要么只管跟踪要么只管服务MLflow 两头都提供官方支持。核心机制为什么 K8s 部署不需要胶水层MLflow 做部署的设计逻辑说白了是把模型在哪和模型怎么跑解耦环节机制换来什么模型打包MLflow Model 标准格式固化模型 依赖 推理 schema镜像里不缺包跨环境行为一致服务端形态Helm chart 渲染 Deployment、PVC、Ingress、NetworkPolicy、GC CronJob声明式部署升级只改 values存储分离元数据走后端 storeartifact 走独立仓库换存储后端不动业务代码设计意图很直接模型格式是契约。训练侧用 tracking API 产出模型部署侧读同一格式出镜像中间不经过任何私有容器规范。想从本地换到 K8s、或从 K8s 换到云厂商换的是目标不是模型本身。落地路径先把训练跑通本地验证 tracking 链路这一步要达成不碰 K8s 就把参数、指标、artifact 全记录下来确认实验链路本身没问题。最小片段参考 examples/quickstart/mlflow_tracking.pypython -m mlflow server --backend-store-uri sqlite:///mlflow.db --serve-artifacts import mlflow mlflow.start_run() mlflow.log_param(alpha, 0.5) mlflow.log_metric(rmse, 0.87) # 训练与模型记录如 mlflow.sklearn.log_model(model, model) mlflow.end_run()跑完打开本地 5000 端口的 UI参数和指标曲线都在模型出现在 run 的 Artifacts 里说明链路通了。把 tracking server 搬进集群这一步要达成一个团队共享、数据可持久化的 MLflow 服务。仓库自带生产级 Helm chartcharts/charts/README.md要求 Kubernetes 1.23、Helm 3.8一次安装包含 Deployment、PVC、Ingress、NetworkPolicy、Prometheus 指标和mlflow gc的 GC CronJobhelm install mlflow ./charts \ --namespace mlflow \ --create-namespace \ -f my-values.yamlmy-values.yaml三个关键项storage: enabled: true # 开启 PVC开发环境用 SQLite PVC 即可 server: value_options: backend-store-uri: mysqlpymysql://user:passhost/db # 生产改外部数据库 artifacts-destination: s3://bucket/mlflow # artifact 放对象存储验证点客户端执行MLFLOW_TRACKING_URIhttp://mlflow.mlflow.svc.cluster.local后再 log 一条参数能写入即说明集群内链路通了。注意 PVC 默认 ReadWriteOnce此时副本数保持 1切到外部数据库后可放开多副本。让模型变成可扩缩的推理服务这一步要达成训练产出的模型变成 K8s 上带副本和 Service 的在线端点。先构建镜像mlflow models build-docker -m runs:/run_id/model -n mlflow-model:v1命令会解析模型格式里的依赖声明生成一个自带 FastAPI 推理服务、暴露/invocations端点的镜像。然后在 K8s 里起 Deployment 加 Servicespec: replicas: 2 template: spec: imagePullSecrets: [{name: my-registry}] # 私有仓库时必填 containers: - name: model image: mlflow-model:v1 resources: {limits: {cpu: 1, memory: 2Gi}}kubectl apply后对 Service 的/invocations发一条 JSON 请求返回预测结果且两个副本都在接流量这一步就闭环了。训练侧想复用同样的容器化套路examples/docker/ 给了docker_env项目的完整示例。进阶与取舍先说清楚适用边界。Helm chart 默认形态是 SQLite 加 PVC适合单团队共用一个实例多人高频并发、多团队隔离时直接上外部数据库加对象存储否则升级和扩容都会打架。反过来如果你的模型只在自己机器或单个云函数里跑mlflow models serve本地起服务就够了搬上 K8s 属于过度设计。两个落地调优点其一chart 内置 NetworkPolicy 和 Prometheus 指标开关上生产建议都打开网络面收窄、可观测性跟上来其二GPU 模型在推理 Pod 的 resources 里声明nvidia.com/gpu即可chart 的 values 支持透传 CLI 参数不用改模板。排障速查现象Pod 卡在 ImagePullBackOff。→ 原因私有仓库缺拉取凭据。→ 处理values 里配置imagePullSecrets推理镜像的 Deployment 同样带上。现象重启后实验数据消失。→ 原因SQLite 或 artifact 落在容器本地盘。→ 处理开启storage.enabled挂 PVC或切外部数据库加对象存储。现象训练容器内 log 全部超时。→ 原因tracking URI 用了 localhost 或宿主机 IP。→ 处理改指集群内 Service 的 FQDN并确认 NetworkPolicy 放通 5000 端口。现象多副本部署时偶发 5xx 或数据错乱。→ 原因SQLite 单写者模型被多 Pod 并发踩。→ 处理换外部数据库PVC 改多副本可挂载的访问模式或走对象存储。写在最后MLflow 在 K8s 场景的价值在于两端一个格式训练侧的 tracking API 和部署侧的推理镜像读的是同一份模型契约中间没有私有容器规范挡路Helm chart 又把服务端运维收敛成改 values 文件。部署文档入口在 docs/docs/classic-ml/deployment/index.mdxchart 的完整参数看 charts/README.md 和 charts/values.yaml容器化训练示例在 examples/docker/。如果还想往下挖K8s 上 serving 的本地验证方式可以看 docs/docs/classic-ml/deployment/deploy-model-locally/模型注册与版本管理的相关文档在 docs/docs/classic-ml/model-registry/。【免费下载链接】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 小时内出具建站方案 · 河南本地可上门