NVIDIA/k8s-device-plugin
NVIDIA device plugin for Kubernetes
해결하는 문제
이 프로젝트는 Kubernetes 클러스터가 NVIDIA GPU를 인식하고 활용할 수 있도록 합니다. 기본적으로 Kubernetes는 GPU를 1차 리소스로 관리하는 방법을 모릅니다. 이 플러그인을 통해 클러스터는 각 노드에 있는 GPU 수를 자동으로 탐지하고, 상태를 모니터링하며, GPU를 요청하는 컨테이너에 할당할 수 있습니다.
작동 방식
DaemonSet으로 작동하여 클러스터의 모든 노드에서 실행됩니다. Kubernetes 디바이스 플러그인 프레임워크를 구현하여 nvidia.com/gpu 리소스 유형을 노출합니다. 파드가 GPU를 요청하면, 플러그인은 NVIDIA Container Toolkit과 협력하여 하드웨어가 컨테이너에 올바르게 주입되도록 합니다.
다음과 같은 고급 할당 전략을 지원합니다:
- MIG (Multi-Instance GPU): 하나의 GPU를 여러 개의 작은 인스턴스로 분할할 수 있습니다.
- 타임슬라이싱: 하나의 GPU에 여러 워크로드가 시간을 나누어 사용할 수 있도록 가상 리소스 복제를 생성합니다.
- MPS (Multi-Process Service): 각 워크로드에 대한 메모리와 컴퓨팅 리소스를 명시적으로 제한하기 위한 공간 분할을 제공합니다.
대상 사용자
NVIDIA 하드웨어를 사용하여 Kubernetes에서 AI, 머신러닝 또는 고성능 컴퓨팅(HPC) 워크로드를 배포하는 클러스터 관리자 및 DevOps 엔지니어.
주요 기능
- 자동 리소스 노출: GPU 수를 Kubernetes API에 자동으로 보고합니다.
- 유연한 공유: CUDA 타임슬라이싱과 MPS를 지원하여 GPU 과도 할당이 가능합니다.
- MIG 지원: 다중 인스턴스 GPU 사용을 가능하게 하여 하드웨어 활용도를 높입니다.
- 사용자 정의 할당: 장치 ID(유니크 식별자(UUID) vs 인덱스) 및 장치 목록(환경 변수, 볼륨 마운트, 또는 CDI 어노테이션)에 대한 다양한 전략을 제공합니다.
- GPU 기능 탐지: GPU 기능에 따라 노드 레이블을 자동으로 생성하는 기능을 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트