피드로 돌아가기
Kubernetes BlogDevOps
원문 읽기
Kubernetes v1.34가 DRA 드라이버의 gRPC 기반 헬스 리포팅으로 Pod 상태에 GPU/TPU 장애 가시성 추가
Kubernetes v1.34: Pods Report DRA Resource Health
AI 요약
Context
전문화된 하드웨어(GPU, TPU, FPGA)가 실패할 때 Kubernetes 클러스터에서 진단이 어려워 상당한 다운타임이 발생했다. 기존에는 Pod이 CrashLoopBackOff 상태일 때 그 원인이 애플리케이션 코드 문제인지 하드웨어 문제인지 구분하기 위해 오랜 시간이 소요되었다.
Technical Solution
- DRAResourceHealth gRPC 서비스 정의: dra-health/v1alpha1 API 그룹에 NodeWatchResources 서버 스트리밍 RPC를 추가해 DRA 드라이버가 Healthy, Unhealthy, Unknown 상태를 Kubelet으로 전송
- Kubelet의 DRAPluginManager 통합: 각 호환 드라이버별로 장시간 NodeWatchResources 스트림을 시작하고 healthInfoCache에 업데이트 저장해 Kubelet 재시작 시 데이터 유지
- Pod 상태 필드 확장: v1.ContainerStatus API 객체에 allocatedResourcesStatus 필드 추가로 컨테이너에 할당된 각 장치의 현재 헬스 상태 기록
- ResourceHealthStatus 기능 게이트 제어: alpha 기능으로 kube-apiserver와 kubelets에서 명시적 활성화 필요
- 장치 변경 감지 및 Pod 업데이트: DRA 매니저가 장치 헬스 변경 시 영향받는 모든 Pod을 식별해 상태 업데이트 트리거
Key Takeaway
하드웨어 기반 워크로드가 증가하는 환경에서 장치 헬스를 Pod 상태에 노출함으로써 운영자가 애플리케이션 버그 대신 인프라 문제를 즉각 진단할 수 있게 되었다. 향후 버전에서는 상세 메시지, 타임아웃 설정, 종료된 Pod의 이력 추적 등이 추가될 예정이다.
실천 포인트
Kubernetes 클러스터에서 GPU/TPU 기반 AI/ML 워크로드를 운영하는 팀은 v
1.34의 ResourceHealthStatus 기능 게이트를 활성화하고 DRA 드라이버가 DRAResourceHealth gRPC 서비스를 구현하도록 하면, kubectl describe pod 명령으로 allocatedResourcesStatus 필드를 조회해 장치 장애 여부를 즉시 확인할 수 있어 평균 디버깅 시간을 단축할 수 있다.