용어집

Kubernetes

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

흔히 K8s로 약칭되는 Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다. 원래 Google에서 개발하여 현재 CNCF(Cloud Native Computing Foundation)에서 유지 관리하는 Kubernetes는 탄력적인 분산 시스템을 실행하기 위한 강력한 프레임워크를 제공합니다. 인공 지능(AI)머신 러닝(ML)의 맥락에서, 교육부터 프로덕션 환경에서의 배포에 이르기까지 ML 모델의 전체 수명 주기를 관리하는 데 필수적인 도구가 되었습니다.

쿠버네티스 작동 방식

Kubernetes는 온프레미스 또는 클라우드의 물리적 서버 또는 가상 머신이 될 수 있는 머신 클러스터에서 작동합니다. 주요 구성 요소는 다음과 같습니다:

  • 클러스터: 컨테이너화된 애플리케이션을 실행하는 노드(워커 머신)의 집합입니다.
  • 노드: Kubernetes 클러스터의 워커 머신. 각 노드는 노드를 관리하고 컨트롤 플레인과 통신하기 위한 에이전트인 Kubelet을 실행합니다.
  • 파드: 쿠버네티스 오브젝트 모델에서 가장 작고 간단한 단위. 파드는 클러스터에서 실행 중인 프로세스의 단일 인스턴스를 나타내며, Docker 컨테이너와 같은 하나 이상의 컨테이너를 포함할 수 있습니다.
  • 디플로이먼트: 복제본 파드 세트를 관리하여 지정된 수의 파드가 항상 실행되도록 합니다. 업데이트와 롤백을 자동으로 처리합니다.

기본 하드웨어를 추상화하여 개발자와 MLOps 엔지니어가 애플리케이션의 원하는 상태를 정의할 수 있도록 하는 Kubernetes는 해당 상태를 유지하면서 장애를 처리하고 필요를 자동으로 확장합니다. 자세한 내용은 공식 Kubernetes 문서에서 확인할 수 있습니다.

AI와 머신 러닝의 Kubernetes

Kubernetes는 대규모 AI 시스템 구축 및 배포와 관련된 많은 문제를 해결하기 때문에 머신 러닝 운영(MLOps) 에 특히 강력합니다. 리소스를 효율적으로 관리할 수 있기 때문에 모델 학습과 같이 리소스 집약적인 작업에 이상적입니다. Kubernetes는 여러 GPU와 노드에서 트레이닝 작업을 확장할 수 있어 트레이닝 시간을 크게 단축할 수 있습니다.

추론의 경우, Kubernetes는 고가용성과 확장성을 보장합니다. 다음은 몇 가지 실제 사례입니다:

  1. 확장 가능한 객체 감지 서비스: 한 회사에서 실시간 개체 감지를 위해 웹 서비스로서 Ultralytics YOLO11 모델을 배포합니다. 이 모델은 컨테이너에 패키징되어 있습니다. Kubernetes를 사용하여 들어오는 트래픽에 따라 추론 포드 수를 자동으로 늘리거나 줄일 수 있습니다. 노드에 장애가 발생하면 Kubernetes는 자동으로 정상 노드로 파드의 일정을 재조정하여 수동 개입 없이도 서비스를 계속 사용할 수 있도록 보장합니다. 이것은 스마트 감시 시스템에서 모델을 배포하는 일반적인 패턴입니다.
  2. 마이크로서비스로서의 복잡한 NLP 파이프라인: 한 팀이 텍스트 전처리, 감성 분석, 명명된 엔티티 인식 등 여러 단계가 포함된 자연어 처리(NLP) 애플리케이션을 구축합니다. 각 구성 요소는 독립적으로 컨테이너화된 별도의 마이크로서비스입니다. Kubernetes는 이러한 서비스를 오케스트레이션하여 네트워킹을 관리하고 각 부분을 독립적으로 업데이트 및 확장할 수 있도록 합니다. 이 아키텍처는 복잡한 AI 기반 애플리케이션을 위한 유연성과 복원력을 제공합니다.

쿠버네티스 대 관련 기술

  • 쿠버네티스 대 도커: Docker는 개별 컨테이너를 빌드하고 실행하기 위한 도구입니다. Kubernetes는 컨테이너를 위한 오케스트레이터로, 여러 머신에서 수천 개의 컨테이너를 관리합니다. 두 도구는 경쟁자가 아니라 협력자이며, Docker로 컨테이너 이미지를 빌드한 다음 Kubernetes로 컨테이너를 관리합니다. Docker 빠른 시작 가이드를 따라 기본 사항을 시작할 수 있습니다.
  • 쿠버네티스 대 서버리스 컴퓨팅: AWS Lambda와 같은 서버리스 플랫폼은 모든 서버 관리를 추상화합니다. 반면, Kubernetes는 인프라에 대한 더 많은 제어를 제공하므로 장기 실행 또는 상태 저장 애플리케이션에 더 적합합니다. 서버리스는 이벤트 중심 기능에 더 간단하지만, 서버리스 프레임워크는 Knative와 같은 도구를 사용하여 Kubernetes에서 실행할 수 있습니다.

도구 및 에코시스템

Kubernetes 에코시스템은 방대하며 기능을 확장하기 위한 많은 도구가 포함되어 있습니다:

  • 헬름: 흔히 Kubernetes의 패키지 관리자라고 불리는 Helm은 Kubernetes 애플리케이션을 관리하는 데 도움을 줍니다.
  • Prometheus & Grafana: Kubernetes 클러스터 및 애플리케이션 모니터링에 널리 사용되는 조합입니다.
  • 클라우드 제공자 통합: 주요 클라우드 제공업체는 클러스터 설정 및 유지 관리를 간소화하는 Google Kubernetes Engine(GKE), Amazon Elastic Kubernetes Service(EKS), Azure Kubernetes Service(AKS)와 같은 관리형 Kubernetes 서비스를 제공합니다.
  • ML 플랫폼: Kubeflow와 같은 도구는 파이프라인, 교육 및 배포를 위한 ML 전용 워크플로우를 제공하기 위해 Kubernetes를 기반으로 구축됩니다. Ultralytics HUB와 같은 플랫폼은 MLOps 파이프라인을 간소화하며, 종종 더 쉬운 모델 배포를 위해 Kubernetes의 복잡성을 추상화합니다.

울트라 애널리틱스 커뮤니티 가입

AI의 미래와 함께하세요. 글로벌 혁신가들과 연결, 협업, 성장하기

지금 가입하기
링크가 클립보드에 복사됨