清理 Kubernetes node 上的映像檔
Kubernetes 自有 Garbage Collection 機制,也可以手動提前清理,步驟如下。
創建節點除錯器 alpine
建立一個 alpine 容器,並且裝上 crictl 命令。
1kubectl debug node/ip-10-2-1-49.ec2.internal -it --image=alpine -- sh
2$ VERSION="v1.26.0"
3$ wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
4$ tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
刪除節點內的 images
1$ cat > /etc/crictl.yaml <<EOF
2runtime-endpoint: unix:///host/run/containerd/containerd.sock
3image-endpoint: unix:///host/run/containerd/containerd.sock
4timeout: 2
5debug: false
6pull-image-on-create: false
7EOF
8
9$ crictl images
10$ #crictl images|grep application | awk '{print $1":"$2}' |xargs -n 1 crictl rmi
11$ crictl rmi name
12$ crictl rmi --prune # 要小心使用,重拉 pull image 可能會有權限問題