쿠버네티스가 AI 모델의 배포 및 확장을 자동화하는 방식을 살펴보세요. 고성능 컴퓨터 비전을 위해 K8s에서 Ultralytics 오케스트레이션하는 방법을 배워보세요.
쿠버네티스(Kubernetes, 흔히 K8s로 불림)는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위해 설계된 오픈소스 플랫폼입니다. 원래 Google 개발되었으며 현재는 클라우드 네이티브 컴퓨팅 재단(CNCF)에서 유지 관리하는 쿠버네티스는 클라우드 환경에서 소프트웨어 오케스트레이션을 위한 표준으로 자리 잡았습니다. 인공지능(AI) 및 머신러닝(ML) 분야에서 쿠버네티스는 엔지니어링 팀이 분산 훈련부터 고가용성 프로덕션 추론에 이르는 복잡한 워크플로를 관리할 수 있도록 하는 핵심 인프라 계층 역할을 합니다. 기반 하드웨어를 추상화함으로써 쿠버네티스는 애플리케이션이 온프레미스 환경이든 퍼블릭 클라우드 제공업체를 통해서든 호스팅되든 관계없이 안정적이고 효율적으로 실행되도록 보장합니다.
쿠버네티스는 CUDA 적으로 클러스터 아키텍처로 운영되며, 이는 노드라고 불리는 일련의 작업자 머신으로 구성됩니다. 이 노드들은 컨테이너화 워크로드를 실행하는 반면, 제어 평면은 클러스터의 전체 상태를 관리합니다. 쿠버네티스에서 배포 가능한 최소 단위는 "포드(Pod)"로, 저장소 및 네트워크 리소스를 공유하는 하나 이상의 컨테이너를 캡슐화합니다. 이 추상화는 컴퓨터 비전 애플리케이션에 매우 중요합니다. 개발자가 일관된 환경으로 패키징할 수 있게 합니다. Amazon Elastic Kubernetes Service(EKS), Azure Kubernetes Service(AKS), Google Engine(GKE) 와 같은 주요 클라우드 서비스는 이 아키텍처의 관리형 버전을 제공하여 데이터 사이언스 팀의 유지 관리 부담을 단순화합니다.
머신 러닝 운영(MLOps)에서 쿠버네티스의 주요 가치는 동적 워크로드를 처리하는 능력에 있습니다. AI 모델은 훈련 시에는 막대한 연산 능력이 필요하고 배포 시에는 낮은 추론 지연 시간이 요구되는 경우가 많습니다.
쿠버네티스는 다양한 산업 분야의 대규모 AI 구현을 위한 핵심 기반입니다:
혼란스러운 점 중 하나는 쿠버네티스와 도커의 관계입니다. 이들은 경쟁 관계가 아니라 상호 보완적인 기술입니다. 도커는 개별 컨테이너를 생성하고 실행하는 도구(애플리케이션 패키징)인 반면, 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.")
쿠버네티스 생태계에는 데이터 과학에 특화된 다양한 도구가 포함되어 있습니다. Kubeflow는 쿠버네티스에서 머신러닝 워크플로우 배포를 간편하고 이동 가능하며 확장 가능하게 만드는 데 특화된 인기 있는 툴킷입니다. 클러스터 상태와 애플리케이션 메트릭 모니터링을 위해 엔지니어들은 종종 Prometheus에 의존합니다. 이러한 환경에서 모델 훈련 및 배포의 복잡성을 더욱 단순화하기 위해 Ultralytics 데이터셋 관리와 모델 훈련을 자동화하는 통합 인터페이스를 제공하여 사용자가 클라우드 컴퓨팅 클러스터에 바로 적용 가능한 모델을 내보낼 수 있게 합니다. 또한 Helm과 같은 패키지 관리자는 재사용 가능한 차트를 통해 복잡한 Kubernetes 애플리케이션 관리를 지원합니다.