TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
CORTEL

26 Aug, 10:32

Открыть в Telegram Поделиться Пожаловаться

💻 QoS-классы в Kubernetes: как определяется приоритет подов

Каждый под в кластере получает класс качества обслуживания — QoS class.
kubelet вычисляет его сам, исходя из того, как в поде описаны requests и limits.

QoS-класс влияет на приоритет вытеснения подов при нехватке памяти на ноде.

👑 Guaranteed

Самый высокий приоритет.

— У каждого контейнера в поде заданы requests и limits для CPU и памяти
— Для каждого ресурса requests равны limits
— Правило распространяется и на init-контейнеры


resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "1"
memory: "1Gi"

Такие поды вытесняются последними и получают oom_score_adj: -997 — ядро убивает их процессы в самую последнюю очередь.

Подходит для БД, брокеров очередей и всего, что нельзя терять при скачке нагрузки на соседей.

🥈 Burstable

Промежуточный класс.

Хотя бы у одного контейнера должен быть задан request или limit по CPU или памяти, но до критериев Guaranteed под не дотягивает.


resources:
requests:
cpu: "200m"
memory: "256Mi"
limits:
memory: "1Gi"

Под может забирать ресурсы сверх requests, пока они свободны на ноде. Но при нехватке памяти он попадает под вытеснение раньше Guaranteed. Внутри класса порядок тоже не случайный: первыми уходят поды, которые потребляют больше, чем запросили.

Самый частый класс в реальных кластерах и разумный выбор по умолчанию для stateless-приложений.

🎭 BestEffort

Ни у одного контейнера в поде не указано ни одного request или limit.


# resources не задан вовсе

Такой под планируется куда угодно и потребляет всё, до чего дотянется. При нехватке памяти на ноде он уходит первым, а его oom_score_adj равен 1000 — максимальный приоритет для OOM Killer.

Годится для разовых задач, где потеря пода ничего не стоит, и категорически не годится для продакшн-сервисов.

➡️ Важные нюансы

— QoS-класс вычисляется один раз при создании пода и меняется только вместе с пересозданием
— Классы влияют на вытеснение по памяти; CPU при превышении лимита не убивает под, а троттлит его
— Guaranteed не защищает от аппаратного сбоя ноды и от вытеснения по нехватке места на диске
— Один контейнер без resources внутри многоконтейнерного пода опускает весь под до Burstable

#заметкиИнженера

1.1k 0 15 12
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot