Kubernetes/crio
crio container root 경로 수정 방법
babbeolicoding
2025. 3. 28. 15:31
container root 저장 경로를 변경하는 방법은 간단하다.
최초 kubernetes를 설치할 때 /etc/containers/storage.conf 파일
graphroot = "/var/lib/containers/storage" -> 해당 경로를 바꾸면 된다.
하지만 이미 kubernetes가 구축된 상태에서 경로를 변경하기 위해선 사전 작업이 필요하다.
1. 노드에 있는 모든 pod들 제거
##master node
#node drain
kubectl drain node1 --force --ignore-daemonsets --delete-local-data
#daemonset 0개로 수정
kubectl patch daemonset kube-flannel-ds -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}' -n kube-flannel
kubectl patch daemonset kube-proxy -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}' -n kube-system
나머지 pod들이 있다면 모두 제거해야 한다.
2. kubelet pod 캐시 삭제
#worker node
systemctl stop crio
systemctl stop kubelet
mkdir -p {바꿀 경로}
vi /etc/containers/storage.conf
graphroot = "/var/lib/containers/storage" -> graphroot = {바꿀 경로}
#kubelet pod 캐시 삭제
rm -rf /var/lib/kubelet/pods/*
semanage fcontext -a -e /var/lib/containers/storage {바꿀 경로}
restorecon -R -v {바꿀 경로}
reboot -n
3. node uncordon, daemonset 재기동
#master node
uncordon node
daemonset 살리기
kubectl patch daemonset kube-flannel-ds --type json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/non-existing"}]' -n kube-flannel
kubectl patch daemonset kube-proxy --type json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/non-existing"}]' -n kube-system