ContainerD в качестве CRI¶
Подсчет общего размера всех образов¶
Чтобы подсчитать общий размер всех образов в namespace k8s.io, используйте следующие команды:
sudo ctr --address "/run/containerd/containerd.sock" -n k8s.io image ls
sudo ctr --namespace k8s.io i ls | awk '{print $4}' | awk '{sum+=$1} END {print sum}'
Удаление образов¶
Для удаления образов, соответствующих определенному фильтру, используйте команду:
ctr -n k8s.io i rm $(ctr -n k8s.io i ls -q | grep your_filter)
Удаление контейнеров¶
Для удаления контейнеров, соответствующих определенному фильтру, используйте команду:
ctr -n k8s.io c rm $(ctr -n k8s.io c ls -q | grep your_filter)
Удаление неиспользуемых образов¶
для containerd¶
for containerd remove unused images (that's because crictl is compatible with containerd).
sudo crictl rmi --prune
для docker¶
docker system prune -af --filter until=720h
if you install docker before containerd- you should do next
echo "===================================" &&\
echo "Config BEFORE change:" &&\
sudo cat /etc/crictl.yaml \
sudo crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock --set image-endpoint=unix:///run/containerd/containerd.sock &&\
echo "===================================" &&\
echo "Config AFTER change:" &&\
sudo cat /etc/crictl.yaml
Анализ образов и контейнеров в Kubernetes¶
Список образов containerd $ sudo crictl -r /run/containerd/containerd.sock images
Для получения информации о всех используемых образах в кластере Kubernetes и их размерах, используйте следующие команды.
Получение списка образов¶
Получение списка всех образов, используемых в подах:
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c
Получение размеров образов на нодах¶
Получение информации о размерах образов на всех нодах:
Спулить образ: sudo crictl -r /run/containerd/containerd.sock pull <private-ip>:5000/nginx:1.0
Создать под с образом из приватного registry: kubectl run private-pod --image=172.16.4.93:5000/nginx:1.0 --restart=Always
Verify containerd configuration: sudo containerd config dump
Если вы используете microk8s, команду для работы с контейнерами containerd нужно использовать как microk8s.ctr.
References:¶
- https://www.mankier.com/8/ctr#Examples_(TL;DR)
- https://github.com/kubernetes-sigs/cri-tools/blob/edf14e37007994d69f9b8cb3b1483a79b365b8eb/docs/crictl.md#install-crictl