일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kubectl completion bash
- 얼굴분류
- nvidia-driver-plugin
- macm1
- kubernetes
- BigSur
- k8s
- kubernetes자동완성
- k8s-device-plugin
- #kubernetes
- kotin
- face verification
- 코틀린
- k8s-driver-plugin
- k8s고장나면
- Pods Evicted
- mac m1
- 얼굴검출
- GPU
- Kubernets 이론
- 삶이란...
- 넘무무서웡...
- nvidia-container-cli
- ₩
- #Kuberspawner
- nvidia-docker
- Kotlin
- worker node
- RunContainerError
- kubectl #
- Today
- Total
더듬이
[Kubernets] kubelet실행시 왜 swap 메모리를 꺼야하나요? (부제 : Swap 메모리란? ) 본문
가끔 vm 이나 장비 리부트 이후에 kubelet 이 start안되는 경우가 있다. (K8s 1.8X 기준)
이런경우에 로그를 보면
running with swap on is not supported 라는 문구를 자주 확인 할 수 있다.
Kubelet 을 켜려는데 Swap메모리가 활성화 되어있어서 킬수 없다는 뜻이다.
그럼 swapoff -a. 이후에 실행 하면 잘 실행됨을 확인 할 수 있다.
여기서 swap 메모리가 무엇인지 먼저 짚고 넘어가려한다.
메모리는 이름을 번역하면 기억장치이며 실제로도 정보를 기억하는 역할을 한다 .
우리가 보통 메모리라고생각하는 것은 주기억장치 중 하나인 RAM이다 모든 정보를 전기신호로 담아두기때문에 빠른 연산이 가능하다는 장점이 있는 휘발성 메모리이다 .
그럼 swap memory 는 뭐일까?
일단 RAM은 비싸고 모든 리소스가 그렇듯 제한이 있다. 만약 연산에 필요한 데이터는 17기가이고 우리의 RAM은 16기가 짜리라고 보면
물리적으로 사용할수 있는 메모리가 부족해 진다.
이때 hdd 메모리 를 이용하여 일부를 hdd에 저장해놓고 ram에 메모리 블럭이 자리가 나면 다시 이동시키는 식으로 데이터의 저장위치를 교환해가며 16기가램으로 17기가의 메모리가 필요한 연산을 진행할 수 있다. 이따 사용하는 메모리 공간을 swap memory 공간이라고한다.
이렇게 swap memroy 를 사용하는 방법은 원래 가진 memory 보다 더 많은 메모리를 사용할수 있게 하는 유용한 방법이지만 kubernetes에서는 현재 지원하고 있지는 않다.
그 이유는
- 컨테이너의 속도가 변동적이다. (swap메모리를 어떤 컨테이너가 쓰면서 느려지는지 예측할 수없다 . )
- swap을 지원하게 개발하려면 고려사항이 많다.
- 개발 우선순위가 낮다.
등등을 언급했다.
자세한 내용은 아래 issues 에서 토론 내용을 보면 된다
https://github.com/kubernetes/kubernetes/issues/7294#issuecomment-240608755
결론: kubernetes 에서 swap메모리를 지원하지 않는 이유는 kubernetes 개발팀의 swap 메모리를 지원에 대한 우선순위가 낮기 때문으로 보인다 .
내 생각에도 api container를 kubernetes에 띄웠는데 갑자기 스왑메모리 사용을 위해서 api 응답 속도가 느려진다면 별로 일 것 같긴하다.
하지만!! 나는 사용자이기때문에! node 몇개에만 swap을 켜놓고 node-label로 관리하면서 처리속도 중요하지 않은 애들만 모아놓을 수 있으면 좋을것 같은데 ㅠㅠ
나처럼 원하는 사람이 많으니 언젠가 지원해 줄 것 처럼 보이니 기다려야겠다. ><
Kubernetes v1.22 부터 swap memory 지원에 대한 내용이 나왔다 !! (존버는 승리한다)
https://kubernetes.io/blog/2021/08/09/run-nodes-with-swap-alpha/