EKS Bottlerocket AMI 환경에서 DCGM 라이브러리 누락으로 인해 GPU 노드가 반복적으로 교체되는 문제 발생
Karpenter Node Auto-Repair 기능이 AcceleratedHardwareReady=False 상태를 감지하여 노드 교체 시도
문제 해결을 위해 Node Auto-Repair 기능 비활성화를 선택, GPU 워크로드 안정화 도모
DCGM은 GPU 상태를 모니터링하는 라이브러리이며, libdcgm.so 누락은 AcceleratedHardwareReady 상태를 False로 만든다. 따라서 Karpenter는 해당 노드를 비정상으로 판단하고 교체한다. 구체적으로, Bottlerocket AMI 환경에서 이 문제가 발생했다.
Karpenter의 Node Auto-Repair는 Ready=False, AcceleratedHardwareReady=False 등 다양한 조건을 기준으로 노드 상태를 판단한다. 유예 시간을 두고 노드를 교체하며, 로 인해 GPU 노드가 지속적으로 교체되는 상황을 초래했다. 는 클러스터 안정성을 위해 설계되었다.
문제 해결을 위해 Node Auto-Repair 기능을 비활성화하여 GPU 노드 교체 문제를 해결했다. DCGM 라이브러리를 수동 설치하는 방법도 있었지만, Bottlerocket의 불변성 때문에 어려움이 있었다. 따라서, 현재 상황에서는 Node Auto-Repair 비활성화가 최적의 선택이었다.