深圳Yolo 视觉
深圳
立即加入
词汇表

Kubernetes

探索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为何对人工智能至关重要

Kubernetes 在 机器学习运维 (MLOps) 中的主要价值 在于其处理动态工作负载的能力。AI 模型在训练期间通常需要大量的计算能力, 并在部署期间需要低 推理延迟

  • 可扩展性: Kubernetes 采用自动扩缩来自动调整资源。如果流量突然激增,Horizontal Pod Autoscaler 可以增加推理 Pod 的数量,以在无需人工干预的情况下保持 可扩展性
  • 资源优化: 高效分配昂贵的硬件至关重要。Kubernetes 支持 GPU 碎片化共享和节点亲和性,确保深度学习模型仅在活动作业需要时才消耗资源。
  • 弹性部署:模型部署 期间确保高可用性至关重要。如果节点发生故障,Kubernetes 会自动在健康节点上重启受影响的 Pod,从而防止关键 API 服务停机。

实际应用

Kubernetes 是许多跨行业大规模 AI 实现的支柱:

  1. 智慧城市交通管理: 市政部门可以部署 Ultralytics YOLO26 模型来分析来自数千个交叉路口的视频流。利用 Kubernetes,系统可以在高峰时段动态扩展资源,以处理增加的 object detection 负载,并在夜间缩减资源以节省成本。这种方法是现代 交通管理系统 的基础。
  2. 电子商务个性化:在线零售商利用基于微服务的复杂 推荐系统。一个服务可能处理候选生成,而另一个服务管理重新排序。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 是一个流行的工具包,致力于使 Kubernetes 上的 ML 工作流部署变得简单、可移植和可扩展。为了监控集群健康状况和应用程序指标,工程师通常依赖 Prometheus。为了进一步简化在这些环境中训练和部署模型的复杂性,Ultralytics Platform 提供了一个统一的界面,自动化数据集管理和模型训练,允许用户导出可用于 云计算 集群的模型。此外,像 Helm 这样的包管理器通过可重用的 chart 帮助管理复杂的 Kubernetes 应用程序。

让我们一起共建AI的未来!

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