LabHub

GPU Operator 와 타임슬라이싱 · 사고를 처음부터 다시 밟는다 · 이론

무엇이 실물이고 무엇이 흉내인가

LabHub 에서 이어서 보기

한 줄 요약

이 실습 파드에는 진짜 GPU 도, 진짜 containerd 도, GPU Operator 도 없다. 대신 TOML 파서와 진짜 쿠버네티스 컨트롤 플레인이 있고, 이번 사고에서 사람을 잡은 것들은 거의 전부 그 둘로 재현된다.

왜 가짜 환경에서 이걸 하나

GPU 사고에서 실제로 배워야 하는 것을 하나씩 세어 보면 이렇다.

이 목록에 nvidia-smi 는 없다. GPU 장치를 실제로 만져야만 배울 수 있는 것은 드라이버 빌드와 실제 커널 실행 성능인데, 그 둘은 이번 사고의 원인이 아니었다. 원인은 전부 설정과 오브젝트에 있었다.

무엇이 진짜로 검증되고 무엇이 흉내인가

| 실습에서 하는 것 | 이 환경에서의 지위 |
| --- | --- |
| containerd 설정을 TOML 로 쓰고 파싱 | 실물. 진짜 파서가 읽는다 |
| 주 설정과 드롭인의 테이블 충돌 판정 | 실물. 계산이 그대로 맞다 |
| 점검 스크립트 동작 검증 | 실물. 가짜 containerd 를 세워 두 번 실제로 돌린다 |
| RuntimeClass 등록 | 실물. 진짜 API 서버가 저장한다 |
| GPU 자원 광고와 스케줄링 | 실물. 진짜 스케줄러가 판정한다 |
| 데몬셋 롤링 업데이트 정지 | 실물. 진짜 컨트롤러가 멈춘다 |
| 노드에 GPU 가 실제로 꽂혀 있는 것 | 흉내. 노드 status 에 숫자만 적는다 |
| 컨테이너 안에서 GPU 를 쓰는 것 | 없음. 컨테이너가 실행되지 않는다 |
| containerd 를 재시작해 핸들러가 등록되는 것 | 없음. 개념과 점검 스크립트로만 다룬다 |

특히 마지막 줄을 분명히 해 두자. SIGHUP 으로는 안 되고 재시작해야 한다는 사실은 이 파드에서 실증할 수 없다. 그래서 실습은 그 대신 "재시작 여부와 무관하게 진실을 알려 주는 점검 스크립트" 를 만들게 한다. 현장에서 그 지식이 손으로 나오는 자리가 바로 그 스크립트다.

현장에서 그대로 쓰이는 것

실습에서 만드는 산출물 중 셋은 그대로 회사에 가져갈 수 있다.

다음 실습에서 할 것

여덟 단계로 사고를 처음부터 다시 밟는다. 앞의 네 단계는 노드의 설정 파일을 다루고, 뒤의 네 단계는 클러스터 오브젝트를 다룬다. 마지막 두 단계는 앞에서 만든 것을 모아 계산과 보고로 끝낸다.