Yolo 비전 선전
선전
지금 참여하기
용어집

Kubernetes

Kubernetes가 확장 가능한 모델 배포, 분산 학습 및 효율적인 리소스 관리를 통해 AI/ML 워크로드를 어떻게 간소화하는지 알아보세요.

흔히 K8로 약칭되는 Kubernetes는 오픈소스 컨테이너 오케스트레이션 시스템으로, 컨테이너 애플리케이션의 배포와 확장, 관리를 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 오케스트레이션 시스템입니다. 원래는 Google 엔지니어가 설계했으며 현재는 클라우드 네이티브 컴퓨팅 재단(CNCF)에서 유지 관리하는 Kubernetes는 진화하여 탄력적인 분산형 소프트웨어 시스템 운영을 위한 업계 표준으로 발전했습니다. 빠르게 발전하는 다음과 같은 분야에서 인공 지능(AI)머신 러닝(ML) 분야에서 쿠버네티스는 기본 인프라 계층의 역할을 하며, 엔지니어링 팀이 실험 개발부터 대규모 모델에 이르는 복잡한 복잡한 모델의 전체 라이프사이클을 효율적으로 관리할 수 있도록 지원합니다.

핵심 개념 및 아키텍처

Kubernetes는 컨테이너화된 워크로드를 실행하는 노드라고 하는 컴퓨팅 머신 클러스터를 관리하는 것이 핵심입니다. It 컨테이너화에크게 의존합니다. 종속성과 함께 코드를 패키징하여 애플리케이션이 다양한 환경에서 일관되게 실행되도록 보장하는 기술인 컨테이너화에 크게 의존합니다. 일관되게 실행되도록 보장합니다. 배포 가능한 가장 작은 단위인 "파드"와 같은 추상화를 도입한 것이 바로 Kubernetes입니다, 그리고 애플리케이션의 원하는 상태를 유지하는 "디플로이먼트"와 같은 추상화를 도입합니다. 소프트웨어를 기본 하드웨어에서 분리함으로써 소프트웨어를 분리함으로써 컴퓨터 비전 엔지니어가 모델에 집중할 수 있도록 서버 유지 관리보다는 모델 성능에 집중할 수 있습니다. Amazon EKS 또는 Google 쿠버네티스 엔진(GKE).

AI 및 머신 러닝의 Kubernetes

대상 머신 러닝 운영(MLOps)의 경우, 쿠버네티스는 다음과 같은 중요한 문제를 해결하기 때문에 필수 불가결합니다. 확장성. 최신 AI 워크로드, 특히 딥 러닝을 포함하는 최신 AI 워크로드에는 상당한 컴퓨팅 리소스를 필요로 합니다. Kubernetes는 다음을 지원합니다. 지능적인 분산 교육 다음을 갖춘 여러 노드에서 교육 작업을 지능적으로 예약하여 분산 교육을 용이하게 합니다. 그래픽 처리 장치(GPU). 모델 배포 단계에서 K8은 다음을 보장합니다. 추론 API를 위한 고가용성, 실시간에 따라 실행 중인 포드 수를 자동으로 확장 또는 축소합니다. 성능과 비용을 모두 최적화합니다.

실제 애플리케이션

  1. 스마트 시티 교통 모니터링: 시 당국이 Ultralytics YOLO11 모델을 배포하여 교통 흐름을 분석하고 실시간으로 혼잡을 detect . 이 애플리케이션은 컨테이너화되어 Kubernetes 클러스터에서 오케스트레이션됩니다. 활용 수평 파드 오토스케일러 수평 포드 오토스케일러, 시스템은 러시아워에 비디오 스트림 데이터의 급증을 감지하고 추가 추론 파드를 자동으로 프로비저닝합니다. 파드를 자동으로 프로비저닝합니다. 이를 통해 중단 없는 중단 없는 객체 감지 서비스를 보장합니다. 서버 프로비저닝을 수동으로 수행할 필요가 없습니다.
  2. 전자 상거래 시각적 검색: 한 온라인 소매업체가 추천 시스템을 구현하여 사용자가 이미지를 사용해 제품을 검색할 수 있는 추천 시스템을 구현합니다. 파이프라인은 이미지 전처리, 특징 추출, 벡터 데이터베이스 검색을 위한 별도의 마이크로서비스로 구성됩니다. 추출, 벡터 데이터베이스 검색을 위한 별도의 마이크로서비스로 구성됩니다. Kubernetes는 이러한 구성 요소를 오케스트레이션하여 기능 엔지니어링 팀이 검색과 독립적으로 검색 인덱스와 독립적으로 추출 모델을 업데이트하여 민첩성과 시스템 안정성을 보장합니다. 민첩성과 시스템 안정성을 보장합니다.

관련 기술 구별하기

쿠버네티스가 다른 일반적인 인프라 도구와 어떻게 다른지 이해하는 것이 도움이 됩니다:

  • 쿠버네티스 대 도커: Docker는 개별 컨테이너를 생성하고 실행하는 데 컨테이너를 생성하고 실행하는 데 사용되는 도구인 반면, Kubernetes는 여러 머신에서 이러한 컨테이너를 관리하는 오케스트레이터입니다. 관리하는 오케스트레이터입니다. 일반적으로 개발자는 Docker를 사용하여 신경망 애플리케이션 이미지를 구축한 다음 신경망 애플리케이션 이미지를 구축한 다음 대규모로 실행하기 위해 Kubernetes를 사용합니다.
  • 쿠버네티스 대 서버리스 컴퓨팅: AWS Lambda와 같은 서버리스 플랫폼은 모든 인프라를 추상화하여 관리를 추상화하여 이벤트 중심 기능에 이상적입니다. 이와는 대조적으로, Kubernetes는 네트워킹, 스토리지, 리소스 할당에 대한 네트워킹, 스토리지 및 리소스 할당을 세밀하게 제어할 수 있으며, 이는 종종 장기 실행 상태 저장 애플리케이션이나 복잡한 모델 서비스 아키텍처에 필요한 경우가 많습니다.

도구 및 생태계

패키지 관리를 위한 Helm과 클러스터 상태 모니터링을 위한 클러스터 상태 모니터링을 위한 Prometheus와 같은 도구를 포함합니다. 전문화된 머신 러닝 워크플로우의 경우, Kubeflow와 같은 플랫폼 같은 플랫폼은 엔드투엔드 파이프라인을 간소화하기 위해 Kubernetes 위에서 실행됩니다. 미래를 내다보며, 곧 출시될 Ultralytics 플랫폼은 다음과 같이 설계되었습니다. 이러한 프로세스를 더욱 간소화하여 데이터 관리 및 모델 학습을 위한 포괄적인 환경을 제공하도록 설계되었습니다. 기본 인프라 복잡성을 추상화합니다.

예시: 컨테이너화를 위한 추론 스크립트

Kubernetes에 모델을 배포하려면 먼저 추론을 수행하는 스크립트가 필요합니다. 이 Python 스니펫은 YOLO11 모델을 로드한 다음 Docker 컨테이너로 래핑하고 K8로 스케줄링할 수 있습니다.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")

# Print the detected class names
for result in results:
    for cls_id in result.boxes.cls:
        print(f"Detected: {result.names[int(cls_id)]}")

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기