TGViewer
ZVLB. Tech ZVLB. Tech @zvlbtech · 181 subscribers
Post #123 822
main.go3.3 KB
А вы это... Скорее всего... Неправильно считаете утилизацию ресурсов в ваших кластерах Kuberentes и даже не подозреваете об этом. (Ну я не подозревал, хотя, скорее всего, просто не задумывался)

В чём проблема?
Когда у init-контейнеров указаны requests больше, чем у основных контейнеров в поде:
1️⃣ Распределение ресурсов в кластере работает некорректно.
2️⃣ Grafana врёт на графиках утилизации, игнорируя «прожорливые» init-контейнеры.

Представьте, что вас есть pod, у которого для initContainer'a в requests указано:
    resources:
requests:
cpu: 100m
memory: 500Mi


А для обычного Container'a что-то типа:
    resources:
requests:
cpu: 20m
memory: 50Mi


Получается для планирования контейнеров pod'a на ноды будут учитываться максимальные реквесты (реквесты initContainer'a) и эти же ресурсы будут "зажаты" pod'ом и Kubernetes Shceduler будет считать, что эти ресурсы недоступны для планирования) Хотя по факту основной контейнер не использует столько ресурсов)

Так же Metrics Server при сборе информации о потреблении, лимитов и реквестов ресурсов не учитывает, что указано в initContainer. То есть для такого pod'а kubelet "зажал" 100m и 500Mi, однако в метриках эти ресурсы будут считаться свободными)))

(Почитать про это можно тут)

Вы можете объективно заявить: "Какой дурак будет делать такие ресурсы для InitContainer'a". А я отвечу: "Да кто угодно, бл*ть". Вот например RabbitMQ оператор этим грешит. (Хотя ребята норм уже одобрили MR, чтобы пофиксить проблему)

P.S. В приложенных файлах небольшой Go-скриптец, который пробежится по всему Kubernetes кластеру, который у вас подключен в Kube Context, и подсветит все pod'ы, у которых initContainer реквестит больше, чем основной контейнер. У меня в самом жирном кластере нашлось 2462 таких pod'ов
  • 🔥 8
  • 👍 4
More from @zvlbtech
  1. Jul 9, 2026Если у вас в кластере много объектов - дефолтные --kube-api-qps/--kube-api-burst у kube-co…
  2. Jun 26, 2026Наткнулся на очередную статью: «Zero-Downtime Deployments with Docker Compose — No Kuberne…
  3. Jun 23, 2026Четыре безобидные по отдельности вещи: - reload nginx, - долгоживущие websocket'ы, - aio-t…
  4. Jun 16, 2026Cвежий опрос Checkmarx: - 70% разработчиков считают, что AI-код дырявее написанного руками…
  5. Dec 16, 2025https://github.com/minio/minio/issues/21714 А минио все. А минио больше не опенсорс
  6. Jul 2, 2025Kubernetes Gateway API - новый стандарт обработки трафика в Kubernetes. (Замена Ingress в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →