Kubernetes는 전통적으로 스케줄러가 기존 노드에 파드를 배치하고, 자동 확장기가 파드가 배치될 공간이 없을 때 노드를 추가하는 역할을 분리해 운영해왔다. 그러나 AI 워크로드와 이를 위한 가속기 사용이 증가하면서 이 분리된 구조가 한계에 봉착했다.
AI 가속기는 단순한 자원 수량이 아닌, 장치 간 토폴로지와 예약된 용량, 자원 공유 등 복잡한 특성을 지니고 있다. 예를 들어, 예약된 용량을 고려하지 않으면 이미 예약된 자원을 낭비할 수 있고, 토폴로지 정보를 반영하지 않으면 비효율적인 노드가 추가될 수 있다.
이러한 문제를 해결하기 위해 Kubernetes 커뮤니티는 Dynamic Resource Allocation(DRA)와 워크로드 인지 스케줄링(Workload-aware scheduling) 같은 기술을 도입하고 있다. DRA는 하드웨어 자원의 관계와 세분화된 자원 할당을 표현할 수 있게 하며, 워크로드 인지 스케줄링은 여러 파드를 하나의 단위로 묶어 일괄 배치하는 기능을 제공한다.
하지만 자동 확장기는 아직 파드 단위로만 판단해 그룹 단위의 스케줄링과 완전히 연동되지 못하는 한계가 있다. 이를 보완하기 위해 프로비저닝 요청(provisioning request) 같은 메커니즘이 도입되고 있으며, 스케줄러와 자동 확장기가 직접 소통할 수 있는 API 설계도 진행 중이다.
결국 AI 워크로드에 적합한 자동 확장기는 스케줄러와 더 긴밀히 협력해 하드웨어 모델을 공유하고, 노드 추가 결정 시 스케줄링 결과를 예측하는 등 더 통합된 접근이 필요하다. 이 과정은 오픈 커뮤니티에서 활발히 논의되고 있어, 관련 기술 발전에 관심 있는 운영자와 개발자에게 중요한 변화다.
출처: CNCF


