Node Swap을 이용한 Kubernetes 워크로드 확장
쿠버네티스 클러스터는 종종 CPU 제약보다 메모리 제약에 먼저 직면하며, 이는 새로운 에이전트 AI 워크로드로 인해 악화되는 문제입니다. 이러한 AI 워크로드는 신뢰할 수 없는 코드를 시작하고 실행하는 데 상당한 메모리를 필요로 하며, 이후 유휴 상태로 유지됩니다. 이 유휴 메모리는 비용이 많이 들고 노드가 호스팅할 수 있는 파드의 수를 제한합니다. 스왑 메모리는 특히 빠른 NVMe SSD로 지원될 때, 비활성 메모리를 페이징 아웃함으로써 이를 해결할 수 있습니다. 이제 일반적으로 사용 가능한 쿠버네티스의 스왑 지원은 노드가 더 많은 파드를 호스팅할 수 있도록 합니다. CI/CD 빌드, 샌드박스 브라우저 및 Python 런타임 전반에 걸친 벤치마킹은 최소한의 지연 시간 영향으로 최대 3배의 밀도 증가를 보여주었습니다. 역사적으로 스왑은 메모리 계정 문제와 느린 디스크 지연 시간으로 인해 회피되었습니다. 그러나 cgroup v2와 빠른 NVMe SSD는 이러한 우려를 해결하여 스왑을 실행 가능한 솔루션으로 만듭니다. 스왑이 활성화되면 커널 빌드와 같은 전통적인 워크로드는 감소된 메모리 제약을 허용할 수 있습니다. 헤드리스 브라우저와 같은 고밀도 에이전트 워크로드는 스왑을 통해 상당한 파드 밀도 증가를 보입니다. 샌드박스 Python 런타임도 스왑의 이점을 누려 3배 더 많은 동시 세션을 가능하게 합니다. 노드 스왑을 활성화하려면 kubelet을 구성하고 클라우드 제공업체의 로컬 디스크를 사용해야 합니다. Burstable QoS를 가진 워크로드는 동적 메모리 균형을 위해 스왑을 활용할 수 있습니다. 궁극적으로 빠른 스왑은 유휴 메모리 상태를 오프로드하여 에이전트 워크로드의 파드 밀도와 노드 활용도를 높입니다.