探索Kubernetes如何自动化AI模型的部署和扩展。学习如何在K8s上编排Ultralytics YOLO26,实现高性能计算机视觉。
Kubernetes,常被称为 K8s,是一个开源平台,旨在自动化容器化应用程序的部署、扩展和 管理。最初由 Google 开发,现在由 Cloud Native Computing Foundation (CNCF) 维护,Kubernetes 已成为云中软件编排的标准。在 人工智能 (AI) 和 机器学习 (ML) 的背景下,它作为 关键的基础设施层,允许工程团队管理复杂的工作流,从 分布式训练到高可用性 生产推理。通过抽象底层硬件,Kubernetes 确保应用程序可靠高效地运行, 无论它们是部署在本地还是通过公共云提供商。
Kubernetes 的核心是基于集群架构运行,该架构由一组称为节点的 worker 机器组成。 这些节点运行 容器化 工作负载,而 控制平面管理集群的整体状态。Kubernetes 中最小的可部署单元是 “Pod”,它封装了一个或多个共享存储和网络资源的容器。这种抽象对于 计算机视觉应用程序至关重要,因为它 允许开发人员将依赖项——例如用于 图形处理单元 (GPU) 的特定 CUDA 库——打包到 一致的环境中。主要的云服务,如 Amazon Elastic Kubernetes Service (EKS)、 Azure Kubernetes Service (AKS) 和 Google Kubernetes Engine (GKE),都提供了这种架构的托管版本, 从而简化了数据科学团队的维护负担。
Kubernetes 在 机器学习运维 (MLOps) 中的主要价值 在于其处理动态工作负载的能力。AI 模型在训练期间通常需要大量的计算能力, 并在部署期间需要低 推理延迟。
Kubernetes 是许多跨行业大规模 AI 实现的支柱:
一个常见的困惑点是 Kubernetes 与 Docker 之间的关系。它们并非竞争对手,而是互补技术。Docker 是一种用于创建和运行独立容器(封装应用程序)的工具,而 Kubernetes 是一种用于管理跨多台机器的容器集群的工具。您可以使用 Docker 将您的 模型权重 和代码构建成镜像,然后使用 Kubernetes 来确定该镜像在生产环境中运行的位置、时间以及副本数量。
要在 Kubernetes 上部署模型,开发者通常会从一个作为容器入口点的 python 脚本开始。以下代码演示了使用 Ultralytics YOLO26 模型执行的简单推理任务。这个脚本将在一个 pod 内部运行,处理传入的请求。
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")
Kubernetes 生态系统包含了大量专为数据科学定制的工具。Kubeflow 是一个流行的工具包,致力于使 Kubernetes 上的 ML 工作流部署变得简单、可移植和可扩展。为了监控集群健康状况和应用程序指标,工程师通常依赖 Prometheus。为了进一步简化在这些环境中训练和部署模型的复杂性,Ultralytics Platform 提供了一个统一的界面,自动化数据集管理和模型训练,允许用户导出可用于 云计算 集群的模型。此外,像 Helm 这样的包管理器通过可重用的 chart 帮助管理复杂的 Kubernetes 应用程序。

开启您的机器学习未来之旅