Дело в том, что все пространство (/
) виден вам, не означает, что пространство доступно/распределяемо.
Кубелет
будет контролировать использование временного хранилища вашего Стручок
и действовать соответственно (выселив Стручок
превысил лимит):
Управление потреблением эфемерной памяти
Если kubelet управляет локальным эфемерным хранилищем как ресурсом, то kubelet измеряет использование хранилища в:
пустой каталог
объемы, кроме tmpfs пустой каталог
тома
- каталоги, содержащие журналы на уровне узла
- записываемые слои контейнера
Если Pod использует больше эфемерного хранилища, чем вы ему позволяете, kubelet устанавливает сигнал вытеснения, который запускает вытеснение Pod.
-- Kubernetes.io: Документы: Основные понятия: Конфигурация: Управление контейнерами ресурсов: Использование эфемерного хранилища ресурсов
Пожалуйста, взгляните на приведенный ниже пример:
Предполагая, что у вас есть следующие Стручок
манифест:
апиВерсия: v1
вид: стручок
метаданные:
имя: нгинкс
спецификация:
контейнеры:
- имя: nginx
изображение: nginx
Ресурсы:
Запросы:
эфемерное хранилище: "2Gi"
пределы:
эфемерное хранилище: "4Gi"
Ограничение, настроенное для эфемерного хранилища, составляет 4Gi
. Чтобы проверить, что произойдет, вы можете запустить:
kubectl exec -it nginx -- fallocate -l 10GB /evict.img
Дополнительное замечание!
ошибаться
используется для управления дисковым пространством, выделенным для файла, либо для его освобождения, либо для предварительного выделения.
-- Man7.org: Linux: справочные страницы: Fallocate
Через некоторое время вы должны увидеть:
$ kubectl описать модуль nginx
Имя: nginx
Пространство имен: по умолчанию
Приоритет: 0
Узел: XYZ
Время начала: Пн, 05 июля 2021 г., 09:47:08 +0200
Ярлыки: <нет>
Аннотации: <нет>
Статус: Ошибка # <-- ВАЖНО!
Причина: Выселен # <-- ВАЖНО!
Сообщение: Использование эфемерного локального хранилища Pod превышает общий лимит контейнеров 4Gi. # <-- ВАЖНО!
<-- УДАЛЕНО -->
Ограничения:
ephemeral-storage: 4Gi # <-- ВАЖНО!
Запросы:
эфемерное хранилище: 2Gi
<-- УДАЛЕНО -->
События:
Тип Причина Возраст от сообщения
---- ------ ---- ---- -------
Обычный Запланировано 32s default-scheduler Успешно назначено default/nginx для XYZ
Обычный Вытягивание 31s kubelet Вытягивание образа "nginx"
Обычный Получено 31s kubelet Успешно получено изображение «nginx» за 360.098619 мс
Обычный Создан 31s kubelet Создан контейнер nginx
Обычный Запущен 31s kubelet Запущен контейнер nginx
Предупреждение Evicted 3s kubelet Pod Использование эфемерного локального хранилища превышает общий лимит контейнеров 4Gi. # <-- ВАЖНО!
Обычный Killing 3s kubelet Stopping container nginx # <-- ВАЖНО!
$ kubectl получить стручки
ИМЯ ГОТОВ СТАТУС ПЕРЕЗАПУСКА ВОЗРАСТ
nginx 0/1 Выселено 0 9m7s
Дополнительные ресурсы: