Kubernetes에서 인공지능(AI) 및 머신러닝(ML) 모델의 학습과 추론을 실행할 때는 동적으로 확장하고 축소하는 기능이 매우 중요합니다. AI 모델 학습에는 데이터 수집을 위한 고대역폭 스토리지와 네트워크뿐만 아니라, 주로 GPU나 기타 특수 프로세서가 제공하는 상당한 규모의 고비용 컴퓨팅 리소스도 필요합니다. 사전 학습된 모델을 활용하더라도 프로덕션 환경에서의 모델 서빙 및 미세 조정과 같은 작업은 여전히 대부분의 엔터프라이즈 워크로드보다 더 많은 컴퓨팅 리소스를 요구합니다.
클라우드 네이티브 Kubernetes는 신속하게 확장 및 축소할 수 있도록 설계되었습니다. 또한 하이브리드 멀티클라우드 환경 전반에서 민첩성을 높이고 동적 워크로드를 위한 비용 효율적인 리소스 활용을 지원하도록 설계되었습니다.
이 블로그에서는 다양한 환경에서 동적으로 확장할 때 최적의 성능과 비용 절감, 적응성을 확보할 수 있도록 Kubernetes에서 AI/ML 워크로드를 확장하는 가장 일반적인 세 가지 방법을 살펴봅니다.
Kubernetes에서 AI/ML 워크로드를 확장하는 세 가지 방식
Kubernetes에서 워크로드를 확장하는 일반적인 세 가지 방법은 수평형 Pod 자동 확장기(HPA), 수직형 Pod 자동 확장기(VPA), 클러스터 자동 확장기를 사용하는 것입니다.
이 세 가지 방법을 자세히 살펴보겠습니다:
- HPA – 애플리케이션에 인스턴스나 파드 복제본을 추가하는 것과 같으며, 확장성, 용량 및 처리량을 높여 줍니다.
- VPA – Pod의 크기를 조정하여 컴퓨팅 및 메모리 리소스를 늘리고 더 높은 용량을 제공하는 것과 같습니다.
- 클러스터 오토스케일러 – 현재 Pod의 리소스 수요에 따라 Kubernetes 클러스터의 노드 수를 자동으로 늘리거나 줄입니다.
각 모달리티는 모델 학습과 추론에 저마다의 이점이 있으며, 아래 사용 사례에서 자세히 살펴볼 수 있습니다.
HPA 사용 사례
대부분의 경우 분산 AI 모델 학습 및 추론 워크로드는 수평으로 확장할 수 있습니다(즉, 더 많은 Pod를 추가하여 학습 프로세스나 요청 처리 속도를 높일 수 있습니다). 따라서 이러한 워크로드는 CPU 및 메모리 사용량과 같은 메트릭은 물론, 워크로드와 관련된 사용자 지정 및 외부 메트릭을 기반으로 Pod 수를 늘릴 수 있는 HPA의 이점을 활용할 수 있습니다. 시간에 따라 워크로드가 달라지는 경우 HPA는 최적의 리소스 활용을 보장하도록 Pod 수를 동적으로 조정할 수 있습니다.
Kubernetes에서 AI 워크로드를 수평 확장할 때 고려해야 할 또 다른 측면은 부하 분산입니다. 최적의 성능을 보장하고 요청을 적시에 처리하려면 들어오는 요청을 여러 인스턴스 또는 파드에 분산해야 합니다. 따라서 HPA와 함께 사용하기에 적합한 도구 중 하나가 바로 Ingress 컨트롤러입니다.
VPA 사용 사례
AI 모델 학습 작업은 리소스 집약적인 경우가 많아 상당한 CPU, GPU 및 메모리 리소스가 필요합니다. VPA는 이러한 리소스 할당을 동적으로 조정할 수 있습니다. 이를 통해 각 파드가 학습 워크로드를 효율적으로 처리하는 데 충분한 리소스를 확보하고, 할당된 모든 파드가 계산을 수행하는 데 필요한 컴퓨팅 용량을 갖추도록 할 수 있습니다. 또한 대규모 모델을 학습하는 동안 메모리 요구량이 크게 변동할 수 있습니다. VPA는 필요에 따라 메모리 할당량을 늘려 메모리 부족 오류를 방지하는 데 도움이 됩니다.
기술적으로 HPA와 VPA를 함께 사용할 수는 있지만, 동일한 워크로드를 서로 다른 방식(즉, 수평 확장과 수직 확장)으로 조정하려 할 수 있으므로 충돌을 방지하려면 신중하게 구성해야 합니다. 각 오토스케일러의 적용 범위를 명확히 정의하여 서로 충돌하지 않고 상호 보완하도록 하는 것이 중요합니다. 최근에는 두 오토스케일러의 적용 범위를 달리하여 함께 사용하는 방식이 주목받고 있습니다. 예를 들어 HPA는 워크로드에 따라 여러 파드로 확장하는 데 사용하고, VPA는 HPA가 설정한 한도 내에서 각 파드의 리소스 할당을 세밀하게 조정하는 데 사용할 수 있습니다.
클러스터 오토스케일러 사용 사례
Cluster Autoscaler는 AI/ML 워크로드의 요구 사항을 충족할 수 있도록 클러스터 전체에서 사용 가능한 컴퓨팅, 스토리지 및 네트워킹 인프라 리소스 풀을 동적으로 조정하는 데 도움이 됩니다. 조직은 현재 수요에 따라 클러스터의 노드 수를 조정하여 거시적 수준에서 부하를 분산할 수 있습니다. AI/ML 워크로드에는 예측하기 어려운 방식으로 상당한 컴퓨팅 리소스가 필요할 수 있으므로, 최적의 성능을 보장하려면 이러한 조정이 필요합니다.
HPA, VPA 및 Cluster Autoscaler는 각각 고유한 역할을 수행합니다
요약하면, Kubernetes 자동 확장이 AI 워크로드에 적용되어 이점을 제공하는 세 가지 방식은 다음과 같습니다:
- HPA는 변동하는 요청 속도를 처리해야 하는 AI 모델 서빙 엔드포인트를 확장하거나 축소합니다.
- VPA는 AI/ML 워크로드의 리소스 할당을 최적화하고, 과도한 프로비저닝 없이 효율적으로 처리할 수 있도록 각 파드에 충분한 리소스를 보장합니다.
- Cluster Autoscaler는 리소스 집약적인 AI 작업을 수용할 수 있도록 클러스터에 노드를 추가하고, 컴퓨팅 수요가 낮을 때는 노드를 제거합니다.
HPA, VPA 및 Cluster Autoscaler는 Kubernetes에서 AI/ML 워크로드를 관리할 때 상호 보완적으로 작동합니다. Cluster Autoscaler는 워크로드 수요를 충족할 수 있도록 충분한 노드를 확보하고, HPA는 여러 파드에 워크로드를 효율적으로 분산하며, VPA는 이러한 파드의 리소스 할당을 최적화합니다. 이들을 함께 사용하면 Kubernetes 환경의 AI/ML 애플리케이션을 위한 포괄적인 확장 및 리소스 관리 솔루션을 구현할 수 있습니다.
F5와 NGINX가 AI/ML 워크로드를 제공하고 보호하며 최적화하는 데 어떻게 도움이 되는지 자세히 알아보려면 AI 여정의 역량 강화 및 보호 페이지를 방문하세요.
작성자 소개

관련 블로그 게시물
시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.
F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.
Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.
진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.
NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.
Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.