일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nvidia-container-cli
- mac m1
- k8s
- 얼굴분류
- BigSur
- 얼굴검출
- 삶이란...
- Pods Evicted
- GPU
- 코틀린
- macm1
- kubernetes자동완성
- #Kuberspawner
- k8s-device-plugin
- RunContainerError
- Kotlin
- kubectl completion bash
- Kubernets 이론
- nvidia-driver-plugin
- k8s-driver-plugin
- nvidia-docker
- 넘무무서웡...
- face verification
- #kubernetes
- ₩
- kubectl #
- kubernetes
- k8s고장나면
- kotin
- worker node
- Today
- Total
더듬이
[Kubernetes] gpu 장비 에러 nvidia-container-cli Error nvidia-device-plugin RunContinerError 본문
[Kubernetes] gpu 장비 에러 nvidia-container-cli Error nvidia-device-plugin RunContinerError
dbhang 2021. 7. 1. 20:33상황 설명
master node는 얌전한데 gpu카드가 있는 worker node가 고장난 상황이였다.
reaboot 한 이후에 gpu pods에 대한 생성,삭제 기능이 pending 걸리는 현상이 발생되었다.
자세히 확인해보니 nvidia-device-plugin pods에 RunContainerError 가 발생하였고 아래와 같은 로그를 확인할 수 있었다.
Error: failed to start container "nvidia-device-plugin-ctr":
Error response from daemon: OCI runtime create failed:
container_linux.go:349: starting container process caused
"process_linux.go:449: container init caused \"process_linux.go:432:
running prestart hook 0 caused
\\\"error running hook: exit status 1,
stdout: , stderr: nvidia-container-cli: initialization error: cuda error: initialization error\\\\n\\\"\"": unknown
nvidia-container-cli: initialization error: cuda error: initialization error
nvidia-container-cli 관련 에러같았다.
해당 이슈발생한 worker node에 docker status는 정상이였고 아래 명령어를 통해 nvidia-container-cli 의 상태를 확인해보니
nvidia-container-cli -k -d /dev/tty info
맨 아랫줄에 pod 로그에 적힌 에러와 똑같은 에러가 나고 있었다.
얘가 비정상이여서 container 시작시에 nvidia runtime을 사용하는 모든 도커가 아래와 같은 에러가 발생중이였다...후...
nvidia-container-cli: initialization error: cuda error: initialization error
해결방법 (nvidia-plugin pods 삭제 후 docker 재시작)
먼저 nvidia-device-plugin 을 master에서 잠시 지워준다. (제일 중요)
kubectl delete -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
dockcer 설정 파일이 정상인지 확인해야한다.
vi /etc/docker/daemon.json
아래 와 같이 런카임이 지정되어있어야한다.
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
그 후에 데몬 바뀐거 적용하고 도커 재시작
systemctl daemon-reload
systemctl restart docker
아까와 같이 아래 명령어로 nvidia-container-cli 확인 했을때
nvidia-container-cli -k -d /dev/tty info
아래와 같이 나오면 성공!
I0701 02:40:04.191976 45826 nvc.c:318] shutting down library context
I0701 02:40:04.197404 45828 driver.c:192] terminating driver service
I0701 02:40:04.237991 45826 driver.c:233] driver service terminated successfully
다시 nvidia-plugin 을 master에서 배포해준다.
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
원인
이게... k8s-device-plugin 정책에 때문이라는데...
docker가 잘못 실행된게 큰것 같다.
혹시 같은 에러 해결한 경험 있으신 분은 제발 댓글좀 ㅜㅜㅜ
자세한 내용은 추후에 알게되면 추가하겠습니다. 아래는 참고한 사이트!
'Kubernetes' 카테고리의 다른 글
[kubernetes] k8s 클러스터에 gpu worker node 붙이기 (0) | 2021.07.01 |
---|---|
[kubernetes] gpu 노드에 gpu 없이 없이 pods 생성하기 (0) | 2021.07.01 |
[Kubernetes] Pods Evicted error The node was low on resource 해결 방법 (0) | 2021.05.25 |
[Kubernetes] kubectx 설치 후 사용하기 (0) | 2021.05.07 |
[Kubespawner] kubernetes pkl 인증서 갱신 (1) | 2021.03.31 |