清理 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
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
7
8$ crictl images
9$ #crictl images|grep application | awk '{print $1":"$2}' |xargs -n 1 crictl rmi
10$ crictl rmi name
11$ crictl rmi --prune # 要小心使用,重拉 pull image 可能會有權限問題