Мы используем кубернеты (в частности, openshift) для запуска нашей инфраструктуры в нашей команде.
Один из наборов демонов, fluentd, в настоящее время вызывает много проблем, часто останавливая полные узлы с огромными требованиями к процессору, памяти и дисковым операциям ввода-вывода (на самом деле, это абсолютно глупо!).
Мы установили следующие ограничения ресурсов и запросы для модуля в определении DaemonSet:
resources:
limits:
memory: 512Mi
requests:
cpu: 100m
memory: 512Mi
Я ожидал, что k8s убьет pod, когда потребление памяти превысит 512Mi. Тем не менее, этим модулям разрешено использовать более 1000% ЦП и всю доступную оперативную память на компьютере (намного больше 512 МБ).
Я провел некоторое исследование, и, похоже, мир полностью разделился по поводу того, что происходит при превышении пределов памяти.
Нам бы очень хотелось, чтобы второй вариант случился с этой надоедливой капсулой! Что нам не хватает?
Помимо установки вышеупомянутых ограничений, я бы порекомендовал вам в этой ситуации установить квоту ресурсов для пространства имен, а также ограничения по умолчанию для всех контейнеров в пространстве имен, которое описано Вот.
В дополнение к этому вы можете настроить Обработка нехватки ресурсов. Надеюсь, это вам поможет.
Вы управляли кубернетами / ограничениями кластера / запросом на уничтожение модулей, когда они чрезмерно потребляют ЦП / ОЗУ, вместо того, чтобы применять эти ограничения в вашей диаграмме Helm или файле конфигурации K8s?
Отличная ссылка на ваш вопрос: ВОТ
Хорошего дня, надеюсь помочь вам хоть немного