清理 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 可能會有權限問題
comments powered by Disqus