Kubernetes를 운영하면서, docker에 저장된 이미지들로 인해 디스크가 풀로 차려고 할 때가 있다.
K8s에선 default 디스크 크기를 80%로 한정하기 때문에 이미지 저장 용량을 줄여야 Pod Evicted가 발생하지 않는다. 만약 발생한다면... 조치가 귀찮아진다...
문제가 발생한 노드의 디스크 용량을 줄이고 Evicted상태의 Pod들을 삭제를 해주어야 한다. 됴륵..
사전에 위의 문제가 발생하지 않도록 새로운 경로로 데이터를 옮기는 것을 설명한다.
1. Docker Root 디렉터리 경로 조회
$ docker info | grep Root Docker Root Dir: /var/lib/docker |
기본적으로 /var/lib/docker 경로에 데이터를 저장한다.
2. 데이터가 저장될 경로 변경
$ vi /lib/systemd/system/docker.service --- 변경 전 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 변경 후 ExecStart=/usr/bin/dockerd -H fd:// --data-root=path_to_directory --containerd=/run/containerd/containerd.sock |
일반적으로 새로운 디스크를 추가하고, 디렉터리에 마운트 하여 지정하는 방법이 많은 것 같다.
3. 기존 데이터 이동
$ mv /var/lib/docker/* /path_to_directory |
이미 띄어둔 레지스트리의 데이터를 새로운 경로에 옮겨 준다.
4. 도커 재시작
$ systemctl daemon-reload $ systemctl restart docker |
도커 재시작 후, 1번 과정을 통해 Root 경로가 바뀌어져 있는지 확인이 필요하다.
docker ps 명령어도 확인이 필요하다.
참고
글쓴이는 docker에서 registry pod만 띄어놓았어서 다시 띄어 주면서 데이터가 보였다.
'Cloud > Docker' 카테고리의 다른 글
[Docker for Windows] WSL 2 installation incomplete (0) | 2021.05.07 |
---|---|
[Docker] 도커 런타임 삭제하기 (0) | 2020.08.04 |