mlflow

bitnamicharts/mlflow Docker 镜像

Bitnami MLflow Helm Chart用于在Kubernetes集群上部署MLflow,这是一个开源平台,用于管理机器学习全生命周期,包括实验跟踪、代码打包为可复现运行以及模型共享与部署。

4 次收藏下载次数: 0状态:社区镜像维护者:bitnamicharts仓库类型:镜像最近更新:
下载命令
点击查看

Bitnami MLflow 软件包

MLflow 是一个开源平台,旨在管理端到端机器学习生命周期。它允许您跟踪实验、将代码打包为可复现的运行,并共享和部署模型。

https://mlflow.org/

商标声明:本软件列表由 Bitnami 打包。产品中提及的 respective 商标归各自公司所有,使用这些商标并不意味着任何关联或认可。

简明使用指南

console
helm install my-release oci://registry-1.docker.io/bitnamicharts/mlflow

希望在生产环境中使用 MLflow?请尝试 https://bitnami.com/enterprise,这是 Bitnami 目录的商业版。

⚠️ 重要通知:Bitnami 目录即将变更

自 2025 年 8 月 28 日起,Bitnami 将改进其公共目录,在新的 https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications 下提供精选的强化、安全聚焦镜像集。作为此过渡的一部分:

  • 首次向社区用户提供热门容器镜像的安全优化版本访问权限。
  • Bitnami 将开始在其免费层级中弃用对非强化、基于 Debian 的软件镜像的支持,并将逐步从公共目录中移除非最新标签。因此,社区用户将只能访问数量减少的强化镜像。这些镜像仅以“latest”标签发布,适用于开发目的。
  • 从 8 月 28 日开始,在两周内,所有现有容器镜像(包括旧版本或特定版本标签,例如 2.50.0、10.6)将从公共目录(docker.io/bitnami)迁移到“Bitnami Legacy”仓库(docker.io/bitnamilegacy),迁移后将不再接收更新。
  • 对于生产工作负载和长期支持,建议用户采用 Bitnami Secure Images,其中包括强化容器、更小的***面、CVE 透明度(通过 VEX/KEV)、SBOM 以及企业支持。

这些变更旨在通过推广软件供应链完整性和最新部署的最佳实践,提高所有 Bitnami 用户的安全态势。有关更多详情,请访问 https://github.com/bitnami/containers/issues/83267。

介绍

此 Chart 使用 https://helm.sh 包管理器在 https://kubernetes.io 集群上引导 https://github.com/bitnami/containers/tree/main/bitnami/mlflow 部署。

Python 专为与 Python 全面集成而构建,使您能够将其与其库和主要包一起使用。

前提条件

  • Kubernetes 1.19+
  • Helm 3.2.0+
  • 底层基础设施支持 PV 供应器
  • 用于部署扩展的 ReadWriteMany 卷

安装 Chart

要使用发布名称 my-release 安装 Chart:

console
helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/mlflow

注意:您需要将占位符 REGISTRY_NAME 和 REPOSITORY_NAME 替换为 Helm Chart 仓库和存储库的引用。例如,对于 Bitnami,需使用 REGISTRY_NAME=registry-1.docker.io 和 REPOSITORY_NAME=bitnamicharts。

该命令以默认配置在 Kubernetes 集群上部署 mlflow。参数 部分列出了可在安装期间配置的参数。

提示:使用 helm list 列出所有发布

配置和安装详情

资源请求和限制

Bitnami Charts 允许为 Chart 部署内的所有容器设置资源请求和限制。这些设置位于 resources 值中(参见参数表)。设置请求对于生产工作负载至关重要,应根据您的具体用例进行调整。

为简化此过程,Chart 包含 resourcesPreset 值,可根据不同预设自动设置 resources 部分。有关这些预设,请查看 https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15。但是,在生产工作负载中不建议使用 resourcesPreset,因为它可能无法完全适应您的特定需求。有关容器资源管理的更多信息,请参阅 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/。

Prometheus 指标

通过将 tracking.metrics.enabled 设置为 true,此 Chart 可与 Prometheus 集成。这将在服务中公开 MLFlow 原生 Prometheus 端点,并包含必要的注解以被 Prometheus 自动抓取。

Prometheus 要求

要使集成正常工作,需要安装 Prometheus 或 Prometheus Operator。安装 https://github.com/bitnami/charts/tree/main/bitnami/prometheus 或 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus,可轻松在集群中部署可用的 Prometheus。

与 Prometheus Operator 集成

该 Chart 可以部署 ServiceMonitor 对象,以与 Prometheus Operator 安装集成。为此,设置值 tracking.metrics.serviceMonitor.enabled=true。确保集群中已安装 Prometheus Operator CustomResourceDefinitions,否则将失败并显示以下错误:

text
no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

安装 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus 以获取必要的 CRD 和 Prometheus Operator。

使用 TLS 保护流量

通过设置 tracking.tls.enabled=true,MLflow 可以加密通信。Chart 允许两种配置选项:

  • 使用 tracking.tls.certificatesSecret 值提供您自己的密钥。同时使用 tracking.tls.certFilename、tracking.tls.certKeyFilename 和 tracking.tls.certCAFilename 值设置证书文件的正确名称。
  • 通过 tracking.tls.autoGenerated=true 让 Chart 自动生成证书。

备份和恢复

要在 Kubernetes 上备份和恢复 Helm Chart 部署,需要使用 https://velero.io/(Kubernetes 备份/恢复工具)备份源部署的持久卷,并将其附加到新部署。有关使用 Velero 的说明,请参阅 https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-backup-restore-deployments-velero-index.html。

参数

全局参数

名称描述值
global.imageRegistry全局 Docker 镜像仓库""
global.imagePullSecrets全局 Docker 仓库密钥名称数组[]
global.defaultStorageClass持久卷的全局默认 StorageClass""
global.security.allowInsecureImages允许跳过镜像验证false
global.compatibility.openshift.adaptSecurityContext调整部署的 securityContext 部分,使其与 Openshift restricted-v2 SCC 兼容:移除 runAsUser、runAsGroup 和 fsGroup,让平台使用其允许的默认 ID。可能值:auto(如果检测到运行的集群是 Openshift 则应用)、force(始终执行调整)、disabled(不执行调整)auto

通用参数

名称描述值
kubeVersion覆盖 Kubernetes 版本""
apiVersions覆盖 .Capabilities 报告的 Kubernetes API 版本[]
nameOverride部分覆盖 common.names.name 的字符串""
fullnameOverride完全覆盖 common.names.fullname 的字符串""
namespaceOverride完全覆盖 common.names.namespace 的字符串""
commonLabels添加到所有部署对象的标签{}
commonAnnotations添加到所有部署对象的注解{}
clusterDomainKubernetes 集群域名cluster.local
extraDeploy随发布一起部署的额外对象数组[]
diagnosticMode.enabled启用诊断模式(所有探针将被禁用,命令将被覆盖)false
diagnosticMode.command覆盖部署中所有容器的命令["sleep"]
diagnosticMode.args覆盖部署中所有容器的参数["infinity"]

MLflow 通用参数

名称描述值
image.registrymlflow 镜像仓库REGISTRY_NAME
image.repositorymlflow 镜像存储库REPOSITORY_NAME/mlflow
image.digestmlflow 镜像摘要(格式为 sha256:aa.... 注意:如果设置此参数,将覆盖镜像标签,建议使用不可变标签)""
image.pullPolicymlflow 镜像拉取策略IfNotPresent
image.pullSecretsmlflow 镜像拉取密钥[]
image.debug启用 mlflow 镜像调试模式false
gitImage.registryGit 镜像仓库REGISTRY_NAME
gitImage.repositoryGit 镜像存储库REPOSITORY_NAME/git
gitImage.digestGit 镜像摘要(格式为 sha256:aa.... 注意:如果设置此参数,将覆盖标签)""
gitImage.pullPolicyGit 镜像拉取策略IfNotPresent
gitImage.pullSecrets指定 docker-registry 密钥名称数组[]

MLflow Tracking 参数

名称描述值
tracking.enabled启用 Tracking 服务器true
tracking.replicaCount要部署的 mlflow 副本数1
tracking.hostmlflow tracking 监听主机。设置为 "[::]" 以使用 ipv6。0.0.0.0
tracking.containerPorts.httpmlflow HTTP 容器端口5000
tracking.livenessProbe.enabled在 mlflow 容器上启用 livenessProbetrue
tracking.livenessProbe.initialDelaySecondslivenessProbe 的初始延迟秒数5
tracking.livenessProbe.periodSecondslivenessProbe 的周期秒数10
tracking.livenessProbe.timeoutSecondslivenessProbe 的超时秒数5
tracking.livenessProbe.failureThresholdlivenessProbe 的失败阈值5
tracking.livenessProbe.successThresholdlivenessProbe 的成功阈值1
tracking.readinessProbe.enabled在 mlflow 容器上启用 readinessProbetrue
tracking.readinessProbe.initialDelaySecondsreadinessProbe 的初始延迟秒数5
tracking.readinessProbe.periodSecondsreadinessProbe 的周期秒数10
tracking.readinessProbe.timeoutSecondsreadinessProbe 的超时秒数5
tracking.readinessProbe.failureThresholdreadinessProbe 的失败阈值5
tracking.readinessProbe.successThresholdreadinessProbe 的成功阈值1
tracking.startupProbe.enabled在 mlflow 容器上启用 startupProbefalse
tracking.startupProbe.initialDelaySecondsstartupProbe 的初始延迟秒数5
tracking.startupProbe.periodSecondsstartupProbe 的周期秒数10
tracking.startupProbe.timeoutSecondsstartupProbe 的超时秒数5
tracking.startupProbe.failureThresholdstartupProbe 的失败阈值5
tracking.startupProbe.successThresholdstartupProbe 的成功阈值1
tracking.customLivenessProbe覆盖默认 livenessProbe 的自定义探针{}
tracking.customReadinessProbe覆盖默认 readinessProbe 的自定义探针{}
tracking.customStartupProbe覆盖默认 startupProbe 的自定义探针{}
tracking.resourcesPreset根据通用预设设置容器资源(允许值:none、nano、micro、small、medium、large、xlarge、2xlarge)。如果设置了 tracking.resources,则忽略此参数(生产环境建议使用 tracking.resources)。medium
tracking.resources设置容器对 CPU 或内存等不同资源的请求和限制(生产工作负载必不可少){}
tracking.podSecurityContext.enabled启用 mlflow pods 的安全上下文true
tracking.podSecurityContext.fsGroupChangePolicy设置文件系统组更改策略Always
tracking.podSecurityContext.sysctls使用 sysctl 接口设置内核参数[]
tracking.podSecurityContext.supplementalGroups设置文件系统额外组

注意:此 Chart 的 README 超过了 DockerHub 25000 字符的长度限制,因此已被截断。完整 README 可在 https://github.com/bitnami/charts/blob/main/bitnami/mlflow/README.md 查看。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 mlflow 镜像标签

docker pull docker.xuanyuan.run/bitnamicharts/mlflow:<标签>

DockerHub 原生拉取命令

docker pull bitnamicharts/mlflow:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告