Kubernetes
探索 Kubernetes 如何自动化 AI 模型的部署和扩展。学习在 K8s 上编排 Ultralytics YOLO26 以实现高性能计算机视觉。
Kubernetes,通常被称为 K8s,是一个旨在实现容器化应用部署、扩展和管理自动化的开源平台。Kubernetes 最初由 Google 开发,现在由 Cloud Native Computing Foundation (CNCF) 维护,已成为云端软件编排的标准。在 人工智能 (AI) 和 机器学习 (ML) 的背景下,它作为关键的基础设施层,允许工程团队管理从 分布式训练 到高可用性生产推理的复杂工作流程。通过对底层硬件进行抽象,Kubernetes 确保了应用能够可靠且高效地运行,无论它们是托管在本地还是公有云提供商上。
Link to this section核心架构与概念#
Kubernetes 的核心在于其集群架构,该架构由一组称为节点的机器组成。这些节点运行 容器化 工作负载,而控制平面则管理集群的整体状态。Kubernetes 中最小的可部署单位是“Pod”,它封装了一个或多个共享存储和网络资源的容器。这种抽象对于 计算机视觉 应用至关重要,因为它允许开发者将依赖项(例如用于 图形处理单元 (GPUs) 的特定 CUDA 库)打包到一个一致的环境中。诸如 Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS) 和 Google Kubernetes Engine (GKE) 等主要云服务提供了该架构的托管版本,从而减轻了数据科学团队的维护负担。
Link to this section为什么 Kubernetes 对 AI 很重要#
Kubernetes 在 机器学习运维 (MLOps) 中的主要价值在于其处理动态工作负载的能力。AI 模型在训练期间通常需要巨大的计算能力,而在部署期间需要较低的 推理延迟。
- 可扩展性: Kubernetes 采用自动缩放来自动调整资源。如果流量突然激增,Horizontal Pod Autoscaler 可以增加推理 Pod 的数量,从而在无需人工干预的情况下保持 可扩展性。
- 资源优化: 高效分配昂贵的硬件至关重要。Kubernetes 支持部分 GPU 共享和节点亲和性,确保深度学习模型仅在活跃任务需要时才占用资源。
- 弹性部署: 在 模型部署 期间确保高可用性至关重要。如果某个节点发生故障,Kubernetes 会自动在健康的节点上重启受影响的 Pod,从而防止关键 API 服务中断。
Link to this section实际应用#
Kubernetes 是各行各业许多大规模 AI 实现的支柱:
-
智慧城市交通管理: 市政部门可以部署 Ultralytics YOLO26 模型来分析来自数千个交叉口的视频流。利用 Kubernetes,系统可以在高峰时段动态扩展资源以处理增加的 目标检测 负载,并在夜间缩减以节省成本。这种方法是现代 交通管理系统 的基础。
-
电子商务个性化: 在线零售商利用基于微服务构建的复杂 推荐系统。一个服务可能处理候选生成,而另一个服务管理重新排序。Kubernetes 编排这些不同的服务,允许团队独立更新排名 神经网络 而不会中断整个购物体验,从而促进持续集成。
Link to this section区分 Kubernetes 和 Docker#
一个常见的困惑点是 Kubernetes 和 Docker 之间的关系。它们不是竞争对手,而是互补的技术。Docker 是用于创建和运行单个容器(打包应用)的工具,而 Kubernetes 是用于在多台机器上管理这些容器集群的工具。你使用 Docker 将 模型权重 和代码构建成镜像,然后使用 Kubernetes 来确定该镜像在生产环境中的运行位置、时间和副本数量。
Link to this section示例:用于容器化的推理脚本#
为了在 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.")Link to this section工具和生态系统#
Kubernetes 生态系统包含大量为数据科学量身定制的工具。Kubeflow 是一个流行的工具包,致力于使在 Kubernetes 上部署 ML 工作流变得简单、可移植且可扩展。为了监控集群健康状况和应用指标,工程师通常依赖 Prometheus。为了进一步简化在这些环境中训练和部署模型的复杂性,Ultralytics Platform 提供了一个统一的界面,可以自动化数据集管理和模型训练,允许用户导出适用于 云计算 集群的模型。此外,像 Helm 这样的包管理器有助于通过可重用的 Chart 管理复杂的 Kubernetes 应用。






