
У меня есть кластер Kubernetes с одним узлом, и я получил уведомление о том, что использование диска превысило 70%. Когда я получаю оболочку на узле и запускаю, df
я вижу, что /
используется 75% доступных блоков. Я также вижу ряд записей, подобных этой:
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/47d405a81214ec9b81ccdffae3674260fa2946d30bdd3b398aa1c2d283c8577e/rootfs
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/569d1fe262f6bf1a59ca99163f231a426d2251ac1beabc47a0393066f48b3e0e/rootfs
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/32d14863f46e922b7e0b2bbee8a5321c5fabb5811352449d90e486b94161a8cb/rootfs
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/8c3fa2f9467e792036782e9587f748f846d61fdc23d9afaecc7e7835e6db4f2b/rootfs
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/626b21093218edcda466ce6d4f31e7b975a0c0473d233fc062ed657499541fc9/rootfs
overlay 51432064 36953456 12350764 75% /run/containerd/io.containerd.runtime.v2.task/k8s.io/c1a7484e1beca4ec1299fc5017002d6fecc9890c86e3246a8bdf53fcc45cf576/rootfs
У меня есть две службы, которые используют постоянные тома (не тома хоста), и я не могу придумать ничего, кроме образов Docker, которые могли бы использовать все это хранилище.
Как мне выяснить, что использует столько места в моем кластере Kubernetes?
решение1
Чтобы узнать, что использует диск вашего узла в Kubernetes, вы можете выполнить следующие действия:
Подключитесь к вашему Node через SSH.
Установите
ncdu
пакет на свой узел с помощью следующей команды:sudo apt-get install ncdu
Запустите
ncdu
в корневом каталоге вашего узла команду:sudo ncdu /
Дождитесь
ncdu
завершения сканирования диска вашего узла. Он отобразит список каталогов и их соответствующие размеры.Используйте клавиши со стрелками для перемещения по каталогам и подкаталогам, чтобы выяснить, какой из них занимает больше всего места на диске.
После того, как вы определили каталог, занимающий больше всего места, вы можете
kubectl
узнать, какой модуль его использует, выполнив следующую команду:kubectl describe pod <pod-name>
Замените
<pod-name>
на имя модуля, который вы хотите проверить.Найдите
Volume
раздел в выводе командыkubectl describe pod
. Он покажет вам PVC (Persistent Volume Claim), который смонтирован на pod.kubectl
Для описания PVC используйте следующую команду :kubectl describe pvc <pvc-name>
Замените
<pvc-name>
на название ПВХ, который был установлен на модуле.Найдите разделы
StorageClass
иAccess Modes
в выводе командыkubectl describe pvc
. Они сообщат вам, какой StorageClass использует PVC и как к нему осуществляется доступ.Проверьте конфигурацию StorageClass, чтобы узнать, установлены ли для него какие-либо ограничения или квоты хранилища, которые могут вызывать проблемы с использованием диска.
Выполнив эти шаги, вы сможете определить, какой модуль использует больше всего дискового пространства на вашем узле в Kubernetes.