Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Kubernets 이론
- kubectl #
- GPU
- kubernetes자동완성
- k8s-driver-plugin
- Kotlin
- 얼굴검출
- #Kuberspawner
- mac m1
- 얼굴분류
- nvidia-docker
- kotin
- worker node
- kubectl completion bash
- RunContainerError
- ₩
- 코틀린
- k8s고장나면
- k8s
- macm1
- 삶이란...
- nvidia-driver-plugin
- 넘무무서웡...
- k8s-device-plugin
- nvidia-container-cli
- BigSur
- #kubernetes
- Pods Evicted
- kubernetes
- face verification
Archives
- Today
- Total
더듬이
[kubernetes] k8s 클러스터에 gpu worker node 붙이기 본문
일단 기본적으로 docker와 nvidia-driver가 설치되었다는 전제하에 설정을 진행하겠다.
1. worker-node에 nvidia-docker2를 설치
공식 사이트에 따라 아래 명령어들을 실행해보자
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
docker 가 정상 재시작 되었다면 아래 명령어를 통해 nvidia-docker가 2버전 이상으로 잘 잡혀있는지 확인하자!
nvidia-docker version
NVIDIA Docker: 2.2.2
Client:
Version: 18.09.3
API version: 1.39
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 06:40:58 2019
OS/Arch: linux/amd64
Experimental: fals
2. docker 설정
아래 명령어로 데몬파일을 읽은뒤
vi /etc/docker/daemon.json
아래 내용을 추가해준다!
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
그리고 도커 재시작
systemctl daemon-reload
systemctl restart docker
3.master-node에서 k8s-device-plugin 을 추가해준다!
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
4. gpu pods 실행!
아래 yaml과같이 limits에 nvidia.com/gpu: {gpu갯수} 옵션을 추가해 주면 된다!
https://github.com/NVIDIA/k8s-device-plugin
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: cuda-container
image: nvcr.io/nvidia/cuda:9.0-devel
resources:
limits:
nvidia.com/gpu: 2 # requesting 2 GPUs
- name: digits-container
image: nvcr.io/nvidia/digits:20.12-tensorflow-py3
resources:
limits:
nvidia.com/gpu: 2 # requesting 2 GPUs
사실 위 단계는 아주쉽다...
윗단계 이전에 nvidia-smi 설치랑 cuda 설치가 눈물나서그러지....
다만 주의할 점은 nvidia.com/gpu 를 설정하지 않는 pods들에 경우 워커 노드에 있는 모든 gpu 카드가 잡히게 된다....
위 같은 경우는 여러 파훼법이 있다고 하는데 그 내용은 다른 포스팅에서 다루도록 하겠다.
'Kubernetes' 카테고리의 다른 글
mac m1에서 kubectl 자동완성 설정하기 (feat. m1은 bash path가 달라요~ ) (0) | 2022.04.18 |
---|---|
[Kubernetes] Core Concepts 1 ( ETCD,Kube-API Server) (0) | 2022.01.18 |
[kubernetes] gpu 노드에 gpu 없이 없이 pods 생성하기 (0) | 2021.07.01 |
[Kubernetes] gpu 장비 에러 nvidia-container-cli Error nvidia-device-plugin RunContinerError (0) | 2021.07.01 |
[Kubernetes] Pods Evicted error The node was low on resource 해결 방법 (0) | 2021.05.25 |