VM으로 ubuntu를 사용하고 있는 나로써는, kubernetes를 cluster로 이용하기 위해서 매일 3개의 노드를 켰다, 껏다 하는
것이 귀찮아서 그냥 사소한 이슈는 master node에서만 실행하고 있었다.
그래서 항상 kube-system namespace에서 pod를 보면 항상 proxy와 coredns 2개는 항상 꺼져있었다. 그런데 cni인
weave-net은 왜 3개가 다 켜져있는거지? master node만 ready상태인데? 이건 또 따로 알아봐야할 것 같다.
일단, 오늘도 master node를 켜고 swapoff를 한 뒤, 아래와 같이 master node의 taint를 확인하고 삭제한다.
어라? 그런데 좀 이상한게 있다. 맨 마지막에 원래는 <none>이라고 나와야하는데 taint가 안사라지고 그대로 있는 것이
다. 이럴땐 구글링. 그런데 어딜 찾아봐도 나타나질 않는다.
여기서도 같은 걸 다루고 있었지만, 내가 원하는 해답은 나오질 않았다.
한번 생각해보자. 분명 untainted가 떴었고.... 아! kubectl edit node을 이용해 taints를 지워서 저장해보자.
하~참. 하지만 이걸로 확실해 진 것이 있다. 분명히 taint는 지워졌다. 하지만 다시 생겨난 것이다. 그렇다면 왜 다시 생겨
난 것일까? taint value 값을 자세히 보면, disk-pressure라고 되어있다. disk-pressure는 디스크 용량을 너무 많이 사용하
고 있다는 신호라고 한다. 그리고 찾아보니, kubelet이 여러 값들을 비교해서 디스크 용량이 많다고 느껴지면 알아서
taint를 해준다고 한다.
그래서 df -h 명령어를 통해 현재 용량을 보았고 보시다시피 거의 90%가까이 쓰고있었다.
vm에 정말 100G 정도면 넉넉하게 줬다고 생각했고, 별 다른거 설치하지도 않았는데, 왜 저렇게 많이 사용됬는지 모르겠다.
일단 아래 명령어로 가장 많이 쓰고있는 범인이 누구인지 알아봐야겠다.
du -sh * | sort -hr
흠.... root 폴더에 가서 찾고 찾고 찾아보니, 바로 docker의 저장소인 overlay2 폴더가 범인이였다.
62G면 그렇게 말이 안되는건 아닌데, VM이고, 또 하루에 몇시간 사용하지도 않으면서, docker로 띄우는 건 고작
kubernetes static pod 정도일 뿐인데, 왜 이렇게 많이 쌓여있는지 모르겠다. 우리 회사 하루 종일 docker로 학습돌리고,
취소하고, kubernetes로 inference 돌리고, 취소하고를 몇백번 반복해도 확인해보니 158G였다. 일단 내 생각에는 자꾸
VM를 껐다 키는 작업으로 kubernetes관련 docker들도 재시작을 계속하니, 여러 garbage들이 쌓여있었던 것 같다.
이제 overlay2안에서 쓸모없는 쓰레기는 치우고 다시 용량을 회복해 untaint를 해보자.
일단 master node를 깨끗하게 비워주고,
kubectl drain this_node --ignore-daemonsets --delete-local-data
kubelet도 잠시 멈추고, (멈추지 않고 그냥 지우면 taint가 안 없어지는 현상이 발생한다. 이건 왜 그런지 모르겠다.)
service kubelet stop
docker도 재시작해준다음, 쓰레기를 전부 비워보자.
service docker restart
docker system prune --all --volumes --force
없어진 쓰레기의 용량이다. 하 개운해.
그리고 다시 kubelet을 실행해주고, node도 uncordon시켜준다.
service kubelet start
kubectl uncordon this_node
다음과 같이 용량이 많이 비워졌으며, taint도 none으로 바뀌었음을 알 수 있었다.
'kubernetes, helm, rancher' 카테고리의 다른 글
pod내의 Serviceaccount token 값과 secret token값이 다른 이유. (0) | 2022.03.15 |
---|---|
kubernetes config, Role, Rolebinding (0) | 2022.02.07 |
kubernetes etcdctl backup (0) | 2022.02.07 |
kubernetes networks, ingress, ingress controller (0) | 2022.01.09 |
kubernetes cluster upgrade (0) | 2022.01.02 |