용어집

Kubernetes

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

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

흔히 K8로 약칭되는 Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하도록 설계된 오픈 소스 플랫폼입니다. 원래 개발자는 Google 에서 처음 개발하여 현재 CNCF(Cloud Native Computing Foundation)에서 유지 관리하는 Kubernetes는 분산 시스템을 탄력적으로 실행하기 위한 강력한 프레임워크를 제공합니다. 인공 지능(AI)머신 러닝(ML) 분야에서 일하는 사람들을 위해 Kubernetes는 교육부터 배포추론에 이르기까지 모델의 복잡한 수명 주기를 관리할 수 있는 강력한 도구를 제공합니다. 이는 ML 모델을 개발하는 것과 프로덕션 환경에서 안정적으로 실행하는 것 사이의 격차를 해소하는 데 도움이 됩니다.

핵심 개념 간소화

쿠버네티스는 소프트웨어와 그 종속성을 포함하는 경량 독립형 패키지인 컨테이너를 오케스트레이션합니다. 주요 개념은 다음과 같습니다:

  • 파드: 일반적으로 리소스와 네트워크를 공유하는 하나 이상의 컨테이너를 보관하는 Kubernetes에서 배포 가능한 가장 작은 단위입니다. 파드는 머신 러닝 애플리케이션 또는 추론 서버 컨테이너를 감싸는 래퍼라고 생각하면 됩니다.
  • 노드: 노드: 파드가 실행되는 워커 머신(가상 또는 물리적)이다. 쿠버네티스는 사용 가능한 노드에서 파드 배포를 관리한다.
  • 서비스: 파드의 논리적 집합과 이에 액세스하기 위한 정책을 정의하는 추상화이며, 종종 동적 파드에 안정적인 IP 주소 또는 DNS 이름을 제공합니다. ML 추론 엔드포인트를 노출하는 데 필수적입니다.
  • 디플로이먼트: 애플리케이션에 대해 원하는 상태를 설명하고, 가용성을 보장하고 업데이트를 처리하기 위해 레플리카셋(동일한 파드 그룹)을 관리한다. 다운타임 없이 새 모델 버전을 롤아웃하는 데 유용합니다.

이러한 빌딩 블록을 이해하면 확장 가능하고 탄력적인 ML 시스템을 설계하는 데 도움이 됩니다.

AI 및 머신 러닝의 관련성

Kubernetes는 여러 가지 장점으로 인해 최신 머신 러닝 운영(MLOps) 의 초석이 되었습니다:

  • 확장성: 대규모 모델 훈련이나 추론 요청 처리와 같은 ML 작업은 리소스 수요가 변동하는 경우가 많습니다. Kubernetes는 부하에 따라 컨테이너(파드) 수를 자동으로 확장 또는 축소할 수 있으므로 GPU와 같은 리소스를 효율적으로 사용할 수 있습니다.
  • 리소스 관리: 다음을 세밀하게 제어할 수 있습니다. CPU 및 메모리 할당을 세밀하게 제어하여 리소스 경합을 방지하고 성능을 보장하며, 특히 여러 실험 또는 서비스에서 고가의 GPU 리소스를 관리할 때 중요합니다.
  • 이식성 및 일관성: Kubernetes는 온프레미스 서버나 Amazon EKS, Google GKE 또는 Azure AKS와 같은 다양한 클라우드 컴퓨팅 플랫폼 등 다양한 인프라에 걸쳐 일관된 환경을 제공합니다. 따라서 개발, 테스트, 프로덕션 간에 ML 워크플로를 간편하게 이동할 수 있습니다. 보통 Docker 설정으로 시작하여 Kubernetes로 확장할 수 있습니다.
  • 자동화 및 오케스트레이션: 서비스 검색, 로드 밸런싱, 자체 복구(장애 컨테이너 재시작), 구성 관리와 같은 복잡한 작업을 자동화하여 ML 팀의 수동 오버헤드를 줄여줍니다.

실제 AI/ML 애플리케이션

  1. 분산 모델 훈련: 복잡한 대규모 딥 러닝(DL) 모델 학습: 복잡한 Ultralytics YOLO 변종과 같은 대규모 딥 러닝 모델을 학습하려면 종종 엄청난 연산 능력이 필요합니다. Kubernetes는 Kubeflow와 같은 프레임워크 또는 다음과의 기본 통합을 사용하여 분산 학습을 위한 머신 클러스터를 관리할 수 있습니다. PyTorch 또는 TensorFlow. 교육 작업 스케줄링, 데이터 액세스 관리, 노드 간 GPU 할당 등을 효율적으로 처리합니다.
  2. 확장 가능한 추론 서비스: 실시간 추론과 같은 ML 모델을 배포하려면 고가용성과 짧은 지연 시간이 필요합니다. Kubernetes는 로드 밸런서 뒤에 추론 서버를 호스팅할 수 있습니다(예: Ultralytics 모델과 통합되는 NVIDIA Triton 추론 서버 사용 - Triton 가이드 참조). 들어오는 트래픽에 따라 추론 서버 파드의 수를 자동으로 확장하여 이미지 분류 또는 자연어 처리(NLP)와 같은 작업의 부하가 최고조에 달할 때에도 응답성을 보장합니다.

쿠버네티스 대 관련 기술

  • 쿠버네티스 대 도커: Docker는 개별 컨테이너를 생성, 배포 및 실행(컨테이너화)하기 위한 도구입니다. Kubernetes는 컨테이너 오케스트레이터로, 여러 머신에서 잠재적으로 수천 개의 컨테이너를 관리합니다. 이 둘은 함께 작동합니다. 일반적으로 Docker로 컨테이너 이미지를 빌드한 다음 Kubernetes를 사용하여 배포하고 관리합니다. 컨테이너 기본 사항은 Docker 빠른 시작 가이드를 참조하세요.
  • 쿠버네티스 대 서버리스 컴퓨팅: 서버리스 플랫폼 (예: AWS Lambda 또는 Google Cloud Functions)은 서버 관리를 완전히 추상화하여 이벤트 중심 기능에 집중합니다. 서버리스 프레임워크(예: Knative)도 Kubernetes에서 실행될 있지만, Kubernetes는 기본 인프라에 대한 더 많은 제어 기능을 제공하며 장기 실행 애플리케이션이나 복잡한 상태 저장 서비스에 더 적합합니다.

도구 및 에코시스템

쿠버네티스 에코시스템에는 관리를 간소화하는 많은 도구가 포함되어 있습니다:

  • 헬름: 복잡한 애플리케이션을 정의, 설치 및 업그레이드하는 데 도움이 되는 Kubernetes용 패키지 관리자입니다.
  • Prometheus & Grafana: Kubernetes 클러스터 및 애플리케이션 모니터링을 위한 인기 있는 오픈 소스 도구.
  • 클라우드 공급자 통합: 관리형 Kubernetes 서비스(EKS, GKE, AKS)는 클러스터 설정 및 유지 관리를 간소화합니다.
  • ML 플랫폼: Kubeflow와 같은 도구는 머신 러닝에 특화된 워크플로우를 제공하기 위해 Kubernetes를 기반으로 구축됩니다. 배포 파이프라인을 간소화하는 것을 목표로 하는 Ultralytics HUB와 같은 플랫폼은 때때로 더 쉬운 모델 배포를 위해 Kubernetes의 복잡성을 추상화하기도 합니다.

Kubernetes는 다양한 환경에서 확장 가능하고 안정적인 AI/ML 애플리케이션을 구축, 배포 및 관리할 수 있는 강력한 기반을 제공하므로 MLOps 환경에서 매우 중요한 기술입니다.

모두 보기