kubernetes-sigs/lws

LeaderWorkerSet: An API for deploying a group of pods as a unit of replication

무엇인가요

LeaderWorkerSet (LWS) 및 DisaggregatedSet (DS) 는 대규모 AI/ML 추론 워크로드를 더 쉽게 실행할 수 있도록 설계된 새로운 Kubernetes API입니다. 특히 여러 GPU 또는 다른 가속기에서 여러 노드에 걸쳐 분할(샤딩)되어야 하는 워크로드에 특화되어 있습니다.

  • LeaderWorkerSet 는 그룹 의 포드를 단일 논리적 복제본으로 취급할 수 있게 해줍니다. 각 그룹은 하나의 리더 포드와 동일한 라이프사이클을 공유하는 워커 포드 집합을 포함합니다. 그룹은 고유한 인덱스(0–n)를 가지며, 전체 그룹이 동일한 토폴로지(예: 동일한 랙 또는 노드 풀)에 배치되도록 함께 스케줄링(갱스케줄링)될 수 있습니다.
  • DisaggregatedSet 는 LWS를 기반으로 하여 더 복잡한 다단계 추론 파이프라인(예: 한 집합의 머신에서 프리필, 다른 집합에서 디코드)을 처리합니다. 여러 LWS 그룹을 조율하여 롤아웃 중에도 용량 비율을 일정하게 유지하고, 모든 역할에 걸쳐 장애를 처리합니다.

이 두 API는 llm-d 프로젝트( CNCF 사ند박스 분산 추론 서빙 스택)와 공동 설계되어 있으며, 실제 워크로드 프레임워크와 밀접하게 매핑됩니다.


AI/ML에 왜 중요한가

실제 환경에서 대규모 언어 모델(LLM)을 실행할 때는 일반적으로 다음과 같은 작업이 필요합니다:

  1. 모델을 여러 GPU나 TPU에 샤딩합니다.
  2. 서로 다른 하드웨어에서 실행되는 여러 단계(프리필, 디코드, 포스트프로세싱)를 조정합니다.
  3. 전체 파이프라인을 유지합니다 — 어떤 포드라도 실패하면 추론 요청이 실패할 수 있습니다.

기존의 Kubernetes Deployments는 각 포드를 독립적으로 다루기 때문에, 샤딩된 모델의 모든 부분이 동시에 시작, 중지, 스케일링되도록 보장하기 어렵습니다. LWS는 슈퍼포드 를 제공하여 단일 단위로 동작하게 하며, DS는 여러 개의 이러한 슈퍼포드를 동기화하여 오케스트레이션할 수 있게 해줍니다. 이는 고처리량, 저지연 추론 서비스의 운영 복잡성을 줄이고 신뢰성을 높입니다.


핵심 기능 (LeaderWorkerSet)

기능 설명
포드 그룹을 단위로 레플리카는 리더 + 워커로 구성되며, 라이프사이클을 공유합니다. 병렬로 생성되며, 함께 롤아웃할 수 있습니다.
고유한 포드 식별자 각 포드는 인덱스(0–n)를 가지며, 모델 샤딩 로직에 유용합니다.
갱스케줄링 (alpha) 그룹 내 모든 포드가 함께 스케줄링되거나 전혀 스케줄링되지 않습니다. 공존을 보장합니다.
이중 템플릿 리더와 워커용 별도의 포드 템플릿을 제공하여 서로 다른 리소스 사양을 설정할 수 있습니다.
다수의 그룹 동일한 레플리카를 여러 개 생성할 수 있으며, 각 그룹은 스케일링 및 업데이트의 단위입니다.
스케일 서브리소스 /scale 엔드포인트를 노출하여 Horizontal Pod Autoscaler (HPA)가 그룹 수를 조정할 수 있습니다.
그룹 단위 로우링 업데이트 업데이트는 그룹 단위로 이루어지며, 롤아웃 중 전체 집합의 일관성을 유지합니다.
토포로지 인식 배치 선택적으로 그룹 내 포드가 동일한 노드, 존 또는 기타 토폴로지에 배치되도록 강제할 수 있습니다.
모든 또는 없음 재시작 그룹 내 어느 포드라도 실패하면 전체 그룹이 재생성되며, 장애 처리를 단순화합니다.

고급 기능 (DisaggregatedSet)

기능 설명
비통합 아키텍처 서로 다른 역할(예: 프리필, 디코드)이 별도의 하드웨어 클러스터에서 실행되는 파이프라인을 지원합니다.
협조적 N차원 롤아웃 2~10개의 역할을 동시에 업데이트하면서 원하는 용량 비율을 유지합니다.
통합 라이프사이클 여러 LWS 객체를 하나의 논리적 단위로 취급하여 스케일링, 업데이트, 삭제를 통합합니다.
자동 서비스 오케스트레이션 각 역할에 대해 헤드리스 서비스를 자동 생성하여 포드 간 상호 발견에 추가 설정이 필요 없습니다.
고급 장애 처리 모든 역할에 걸쳐 드레인 및 재시작을 조율하여 전체 파이프라인의 건강을 유지합니다.

누구에게 적합한가

  • ML 플랫폼 팀: 여러 GPU에 걸쳐 샤딩되어야 하는 대규모 LLM의 프로덕션 추론 서비스를 구축하는 팀.
  • 클라우드 제공업체: Kubernetes와 더 긴밀하게 통합된 관리형 추론 스택을 제공하고자 하는 업체.
  • 연구 그룹: 다중 노드 모델 서빙 실험을 수행하고 재현 가능하며 버전 관리된 배포가 필요한 팀.

시작하기

  1. 설치 – 설치 가이드를 따르세요 (Kubernetes 1.34+ 필요). 프로젝트는 CRD 매니페스트와 클러스터 내부에서 실행되는 컨트롤러를 제공합니다.
  2. LeaderWorkerSet 정의 – 리더 포드 템플릿, 워커 포드 템플릿, 원하는 레플리카 수를 지정하는 YAML을 작성합니다.
  3. (옵션) DisaggregatedSet 사용 – 워크로드에 명확한 역할이 있다면, 여러 LWS 객체를 참조하는 DS 객체를 생성합니다.
  4. 스케일링 및 모니터링 – 표준 kubectl scale 또는 HPA를 /scale 서브리소스에 적용하세요. 컨트롤러가 갱스케줄링과 조율된 롤아웃을 처리합니다.

커뮤니티 및 지원

  • Slack: Kubernetes Slack 워크스페이스의 #sig-apps 채널.
  • 메일링 리스트: kubernetes-sig-apps Google 그룹.
  • 문서 및 발표: https://lws.sigs.k8s.io/docs/ (예제, 채택 사례, 발표 영상 포함).
  • 기여 방법: 일반적인 Kubernetes SIG 프로세스를 따르세요 — PR 제출, CI 실행(단위, 통합, E2E 테스트, K8s 1.34–1.37 대응), Kubernetes Code of Conduct 준수.

TL;DR

LWS + DS는 Kubernetes에서 다중 포드, 다중 노드 추론 워크로드(예: 샤딩된 LLM 서빙)를 배포하고 관리할 수 있는 첫 번째 클래스의 방법을 제공합니다. 그룹 단위 라이프사이클, 갱스케줄링, 스케일링, 조율된 롤아웃을 제공하여 대규모 AI 추론을 Kubernetes에서 더 신뢰성 있게, 더 쉽게 운영할 수 있게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트