폐쇄망 GPU 드라이버 반입 설치 · nvidia-container-toolkit 설치와 런타임 등록 · 퀴즈
퀴즈: 툴킷과 런타임 등록
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
호스트에서 `nvidia-smi` 는 되는데 컨테이너 안에서 GPU 가 안 보입니다. 가장 유력한 원인은?
- 호스트 드라이버 버전이 낮아 지원되지 않는다
- 컨테이너 런타임에 nvidia 런타임이 등록되지 않았거나 CDI 스펙이 없다
- GPU 를 다른 프로세스가 점유하고 있다
- GPU 커널 모듈이 로드되지 않은 상태다
인터넷에서 가져온 containerd 설정 스니펫이 아무 효과가 없습니다. 가장 유력한 원인은?
- 따옴표를 잘못 썼다
- 권한이 부족하다
- config version 이 달라 섹션 헤더 경로가 통째로 바뀌었다
- containerd 를 재기동하지 않았다
`default_runtime_name` 을 nvidia 로 바꾸면 안 되는 이유는?
- NVIDIA 런타임이 일반 파드에서 더 느리기 때문
- 런타임 설정 자체가 복잡해 관리가 어려워서
- GPU 를 안 쓰는 파드까지 그 런타임에 의존하게 되어 장애 반경이 넓어져서
- CDI 주입 방식과 본질적으로 충돌하기 때문
`SystemdCgroup = true` 를 systemd 호스트에서 권장하는 이유는?
- systemd 드라이버 쪽이 성능이 더 좋기 때문
- kubelet 과 containerd 가 다른 cgroup 드라이버를 쓰면 관점이 어긋나기 때문
- containerd 의 기본값이 원래 그 값이기 때문
- GPU 워크로드를 돌리려면 필요한 값이기 때문
RuntimeClass 의 `handler` 값이 config.toml 의 런타임 이름과 다르면?
- 파드가 RunContainerError 로 뜨고 런타임이 없다는 메시지가 나온다
- 경고 없이 기본 런타임으로 폴백해 동작한다
- 이벤트에 경고만 남고 파드는 정상 기동한다
- kubelet 이 오류를 내고 노드가 NotReady 가 된다
관리형 노드 그룹에서 노드에 들어가 `config.toml` 을 직접 고치면?
- 노드가 살아 있는 한 그 변경이 영구히 유지된다
- 노드가 교체되면 사라지고, 더 나쁘게는 일부 노드에만 남아 재현되지 않는 차이를 만든다
- 노드 그룹의 다른 노드에도 자동으로 복제된다
- kubelet 이 변경을 감지해 원래대로 되돌린다