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









