В этом разделе описывается, как распределять место Диска с данными между узлами, чтобы вы могли соответствующим образом настроить место Диска с данными.
При создании узла вы можете указать Распределение места Диска с данными в расширенной области Диск с данными.
Если сумма места среды выполнения контейнеров и образов контейнеров и места kubelet и emptyDir меньше 100%, оставшееся место будет выделено для пользовательских данных. Вы можете подключить том хранилища к сервисному пути. Не оставляйте путь пустым и не указывайте ключевой путь ОС, например корневой каталог.
Для узлов, использующих общий Диск с данными между средой выполнения контейнеров и компонентами kubelet, Rootfs хранилища контейнеров имеет тип OverlayFS тип. Подробную информацию о распределении места Диска с данными см. в Общий Диск с данными между средой выполнения контейнеров и компонентами kubelet.
Для узла, использующего незагруженный (незащищённый) Диск с данными (например, 100 ГБ), распределение места диска зависит от типа Rootfs хранилища контейнеров Device Mapper or OverlayFS. Подробную информацию о Rootfs хранилища контейнеров для различных ОС см. в Соответствие между ОС и Rootfs хранилища контейнеров.
По умолчанию место среды выполнения контейнеров и образов, занимающее 90% Диска с данными, может быть разделено на две части:
Тонкий пул монтируется динамически. Вы можете просмотреть его, запустив lsblk команду на узле, но не df -h команду.
Рисунок 1 Распределение места для сред выполнения контейнеров Device Mapper

Отдельного тонкого пула нет. Всё место среды выполнения контейнеров и образов (по умолчанию 90% Диска с данными) находится в /var/lib/docker каталоге.
Рисунок 2 Распределение места для сред выполнения контейнеров OverlayFS

Настраиваемое место контейнера pod (basesize) связано с ОС узла и Rootfs хранилища контейнеров. Подробную информацию о Rootfs хранилища контейнеров см. в Соответствие между ОС и Rootfs хранилища контейнеров.
При настройке basesize, учитывайте максимальное количество pod'ов, разрешённое на одном узле. Место среды выполнения контейнеров должно быть больше общего места диска, используемого контейнерами (формула: Место среды выполнения контейнеров и место образов контейнеров (по умолчанию 90%) > Количество контейнеров × basesize). В противном случае выделенное узлу место среды выполнения контейнеров может быть недостаточным, и контейнер не может быть запущен.
Для узлов, поддерживающих basesize, при использовании Device Mapper, хотя вы можете ограничить размер /home каталога отдельного контейнера (по умолчанию до 10 GiB), все контейнеры на узле всё равно совместно используют тонкий пул узла для хранения. Они не полностью изолированы. Когда сумма места тонкого пула, используемого некоторыми контейнерами, достигает верхнего предела, другие контейнеры не могут работать должным образом.
Кроме того, после удаления файла в /home каталоге контейнера, место тонкого пула, занятое файлом, не освобождается сразу. Поэтому, даже если basesize установлено в 10 GiB, место тонкого пула, занимаемое файлами, продолжает расти до 10 GiB, когда в контейнере создаются файлы. Освобождающееся после удаления файлов место в конечном итоге будет использовано повторно. Если количество контейнеров на узле, умноженное на basesize превышает размер тонкого пула узла, существует вероятность, что место тонкого пула исчерпано.
ОС | Rootfs хранилища контейнеров | Пользовательский basesize |
|---|---|---|
CentOS 7.x | Кластеры v1.19.16 и более ранние используют Device Mapper. Кластеры v1.19.16 и более новые используют OverlayFS. ПРИМЕЧАНИЕ: При обновлении кластеров более ранних версий узлы Device Mapper не будут автоматически переключаться на OverlayFS. Необходимо вручную сбросить эти узлы. | Поддерживается, когда Rootfs установлен в Device Mapper и среда выполнения — Docker. Значение по умолчанию — 10 GiB. Если Rootfs установлен в OverlayFS, basesize указать нельзя. |
EulerOS 2.5 | Device Mapper | Поддерживается только при среде выполнения Docker. Значение по умолчанию — 10 GiB. |
Ubuntu 18.04 | OverlayFS | Не поддерживается |
Ubuntu 22.04 | OverlayFS | Не поддерживается |
HCE OS 2.0 | OverlayFS | Поддерживается только кластерами Docker более ранних версий, чем v1.23.14-r0, v1.25.9-r0, v1.27.6-r0 или v1.28.4-r0. По умолчанию ограничений нет. Поддерживается как кластерами Docker, так и containerd v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 и более новыми версиями. По умолчанию ограничений нет. |
ОС | Rootfs хранилища контейнеров | Пользовательский basesize |
|---|---|---|
CentOS 7.x | OverlayFS | Не поддерживается |
Ubuntu 18.04 | OverlayFS | Не поддерживается |
Ubuntu 22.04 | OverlayFS | Не поддерживается |
HCE OS 2.0 | OverlayFS | Поддерживается только кластерами Docker более ранних версий, чем v1.23.14-r0, v1.25.9-r0, v1.27.6-r0 или v1.28.4-r0. По умолчанию ограничений нет. Поддерживается как кластерами Docker, так и containerd v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 и более новыми версиями. По умолчанию ограничений нет. |
Когда места среды выполнения контейнеров недостаточно, инициируется сборка мусора образов.
Политика сборки мусора образов учитывает два фактора: HighThresholdPercent and LowThresholdPercent. Использование диска, превышающее высокий порог (по умолчанию: 80%), инициирует сборку мусора, которая удалит наименее недавно использованные образы до достижения низкого порога (по умолчанию: 70%).
Компоненты Docker/containerd и kubelet совместно используют место Диска с данными.
Для узлов, использующих совместный Диск с данными, Rootfs хранилища контейнеров имеет тип OverlayFS тип. После создания такого узла место Диска с данными (например, 100 ГБ) не будет разделено между средами выполнения контейнеров, образами контейнеров и компонентами kubelet. Диск монтируется в /mnt/paas, и пространство хранилища делится с использованием двух файловых систем.
Рисунок 3 Выделение пространства хранилища совместного Диска с данными
