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

Kubernetes

探索Kubernetes如何自动化部署和扩展AI模型。学习如何在K8s上Ultralytics 实现高性能计算机视觉。

Kubernetes(常简称为K8s)是一个开源平台,旨在自动化部署、扩展和管理容器化应用程序。该平台最初由Google 开发Google 现由云原生计算基金会(CNCF)维护,已成为云端软件编排的行业标准。 在人工智能(AI) 与机器学习(ML)领域,它作为关键基础设施层,使工程团队能够管理从分布式训练到高可用性生产推理的复杂工作流。通过抽象底层硬件,Kubernetes确保应用程序无论部署在本地环境还是公共云服务商处,都能可靠高效地运行。

核心架构与概念

在核心层面,Kubernetes基于集群架构运行,该架构由一组称为节点的工件机器组成。 这些节点运行容器化工作负载, 而控制平面则管理集群的整体状态。Kubernetes中最小的可部署单元是 "Pod",它封装了共享存储和网络资源的一个或多个容器。这种抽象对计算机视觉应用至关重要, 因为它允许开发者将依赖项(如特定的CUDA )打包为 图形处理单元(GPU)的特定CUDA库——打包到 一致的环境中。亚马逊弹性Kubernetes服务(EKS) Azure Kubernetes服务(AKS)Google (GKE)等主流云服务 提供了该架构的托管版本,减轻了数据科学团队的维护负担。

Kubernetes为何对人工智能至关重要

Kubernetes在机器学习运维(MLOps)中的核心价值 在于其处理动态工作负载的能力。人工智能模型在训练阶段通常需要海量计算资源, 而在部署阶段则要求极低的推理延迟

  • 可扩展性:Kubernetes通过自动缩放功能实现资源的自动调整。当流量突然激增时,水平Pod自动缩放器可增加推理Pod的数量,从而在无需人工干预的情况下维持系统扩展性
  • 资源优化:高效分配昂贵的硬件至关重要。Kubernetes支持 GPU 的分时GPU 和节点亲和性,确保深度学习模型仅在活跃任务需要时消耗资源。
  • 弹性部署:确保模型部署过程中的高可用性至关重要。当节点发生故障时,Kubernetes会自动在健康节点上重启受影响的Pod,从而避免关键API服务出现停机。

实际应用

Kubernetes是众多跨行业大规模人工智能部署的基石:

  1. 智能城市交通管理:市政部门可部署 Ultralytics 分析来自 数千个交叉路口的视频流。该系统通过Kubernetes技术,能在高峰时段动态扩展资源 以应对激增的物体检测负载, 并在夜间缩减规模以节约成本。这种方法是现代 交通管理系统的核心基础。
  2. 电子商务个性化:在线零售商利用基于微服务的复杂推荐系统。一个服务可能负责候选生成,另一个则管理重新排序。Kubernetes协调这些独立服务,使团队能够独立更新排序神经网络,同时不影响整个购物体验,从而实现持续集成。

区分Kubernetes与Docker

一个常见的困惑点在于Kubernetes与Docker之间的关系。它们并非竞争对手,而是互补技术。Docker是创建和运行独立容器(封装应用程序)的工具,而 Kubernetes则是管理跨多台机器的容器集群的工具。你使用Docker将模型权重和代码打包成镜像,再通过Kubernetes决定该镜像在生产环境中何时、何地运行以及运行多少副本。

示例:容器化推理脚本

要在Kubernetes上部署模型,开发人员通常从一个Python 开始,该脚本作为容器的入口点。以下代码演示了使用Ultralytics 模型进行简单推理任务的示例。该脚本将在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上的部署变得简单、可移植且可扩展。 为监控集群健康状况和应用指标,工程师通常依赖Prometheus。为进一步简化模型训练与部署流程Ultralytics 提供统一接口,实现数据集管理与模型训练自动化,支持用户导出适用于云计算集群的模型。此外,Helm等包管理器通过可复用图表,助力管理复杂的 Kubernetes 应用。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入