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