notes_devops_engineer
207 subscribers
17 photos
1 file
96 links
Записки DevOps инженера
Download Telegram
DevOps: GitLab 18 ломает Terraform пайплайны! Перед обновлением удалите из .gitlab-ci.yml старый шаблон - template: Terraform/Base.gitlab-ci.yml, иначе сборки упадут с ошибкой Included file... is empty or does not exist!. Пишите свой GitLab CI или переходите на OpenTofu, заменив строку на - template: OpenTofu/Base.latest.gitlab-ci.yml.
Исследователи из Codex обнаружили уязвимость «HTTP/2 Bomb» (CVE-2026-49975), позволяющую вывести из строя веб-серверы, такие как nginx, Apache и IIS, с помощью специально сформированных HPACK-заголовков. Эта атака комбинирует сжатие заголовков с удержанием соединения, что позволяет одному клиенту за секунды исчерпать десятки гигабайт оперативной памяти на сервере. Подробный технический разбор доступен здесь: https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb

Исходный код здесь: https://github.com/califio/publications/tree/main/MADBugs/http2-bomb
Forwarded from Angie
Друзья, всем привет!

Уведомляем о том, что уязвимость CVE-2026-49975, недавно найденная в веб-серверах nginx, Envoy, Apache httpd, Microsoft IIS не актуальна для продуктов Angie / Angie PRO.

Уязвимость позволяет удаленному злоумышленнику вызвать отказ в обслуживании веб-сервера за счет перерасхода памяти при распаковке сжатых заголовков из специально подготовленного запроса в HTTP/2.

В Angie предусмотрена защита от подобной атаки: директива max_headers,
допускающая по умолчанию обработку не более 1000 заголовков. Директива была добавлена из freenginx еще с момента версии 1.8.0, вышедшей еще в 2024 году.
https://github.com/VictoriaMetrics/vmestimator — это инструмент от VictoriaMetrics, оценивающий кардинальность данных в реальном времени на этапе сбора, что позволяет предотвратить избыточное потребление ресурсов. В отличие от Cardinality Metrics, анализирующих уже сохраненные данные, vmestimator работает рядом с vmagent, позволяя выявлять аномальный рост уникальных рядов до их записи в базу.
🚀 NORA 1.0

Пет-проект "реестр артефактов на одном бинарнике" дорос до 1.0 – 15 форматов в бинарнике < 30 МБ. Без Java, без базы, без 2 ГБ RAM под гроб JVM.

К 1.0 приехало:
– RPM (yum/dnf) и Debian/APT – 14-й и 15-й форматы. Кладёшь свои .rpm/.deb – Нора сама генерит repodata / Packages+Release.
– GPG-подпись индексов – repo_gpgcheck=1 и signed-by= из коробки, ключ рождается на первом старте.
– nora import – миграция из Artifactory/Nexus одной командой: stateless, resumable, без даунтайма.

История deb/rpm – чисто community. @Yoda_u_may_call_me написал в личку: "сил больше нет с этим Nexus'ом бороться" – и они с Joe Grund (@jgrund) забустили RPM/APT. Джо сверху докрутил GPG-подпись. Мужики, спасибо – влили ровно то, чего не хватало до 1.0. 🤝

15 форматов. Один бинарник. Ставится через docker run.

Полный changelog
Интересный проект https://github.com/lev-stas/KENT

KENT (Kubernetes Events Notifier) — это легковесный инструмент для экспорта событий Kubernetes в VictoriaLogs (или stdout), обеспечивающий сохранение и поиск предупреждений (Warning, FailedScheduling, OOMKills) через LogsQL после их исчезновения из кластера. Продукт отличается нативной поддержкой VictoriaLogs, минимальным потреблением ресурсов (Go-бинарный файл) и надежной доставкой данных с поддержкой Helm-чарта.
Раньше основной фреймфорк https://github.com/grpc/grpc был жестко ограничен лимитом MAX_CONCURRENT_STREAMS (по умолчанию 100 параллельных запросов на одно HTTP/2-соединение). Из-за этого избыточные конкурентные RPC-вызовы блокировались в очереди до освобождения слотов, вынуждая разработчиков вручную создавать пулы соединений для достижения высокой производительности. Согласно issue https://github.com/grpc/grpc/issues/21386 данная функциональность теперь полностью реализована и автоматическое создание дополнительных соединений при достижении лимита стримов будет включено по умолчанию, начиная с предстоящего релиза gRPC 1.84.
Radar — open-source UI для Kubernetes от Skyhook (YC W23). Один бинарник на Go, без регистрации и аккаунта, бесплатный навсегда. Топология кластера, браузер ресурсов, timeline событий, менеджер Helm-релизов, GitOps для FluxCD, карта трафика, аудит безопасности, анализ impact'а перед апгрейдом K8s и даже встроенный MCP-сервер, чтобы ИИ-агенты могли смотреть кластер глазами Radar вместо сырого kubectl.

https://habr.com/ru/articles/1073566/

#devops #kubernetes #k8s #radar #gitops #helm #kubernete-ui
NORA — open-source реестр артефактов на Rust, созданный как прямая альтернатива этим гигантам. Вместо Java-стека — один бинарник < 27 МБ. Вместо 2–4 ГБ RAM — < 50 МБ в простое, т.е. на порядок меньше. Вместо десятков минут на старт — 3 секунды. Внешних зависимостей нет вообще: ни Java 11+, ни отдельной СУБД — метаданные хранятся на файловой системе, а артефакты сразу можно отправлять в S3, чего бесплатные версии Nexus и Artifactory не умеют. При этом поддерживается 15 форматов: Docker, Maven, npm, PyPI, Cargo, Go, Raw, RubyGems, Terraform, Ansible Galaxy, NuGet, Pub (Dart/Flutter), Conan (C/C++), RPM (yum/dnf), Debian/APT. Плюс Helm-чарты через OCI, карантин свежих пакетов (Min Release Age), блокировка уязвимых версий (CVE Blocking) и лицензия MIT.


https://habr.com/ru/articles/1074042/

#devops #kubernetes #nora #registry #security #cve
Ситуация, знакомая многим командам: в кластере Kubernetes живут обычные бизнес сервисы, нагрузка на которые днём растёт, а ночью падает. Обычно используют два плохих варианта: держать статический пул нод под дневной пик, которые ночью простаивают и стоят денег, или положиться на cluster autoscaling — и тогда при дневном росте нагрузки бизнес-поды проведут в статусе Pending до создания новой ноды.

Проблема ожидания, пока Cluster Autoscaler развернёт новую ноду, решается паттерном node overprovisioning, настраиваемым через PriorityClass и механизмы Cluster Autoscaler: мы заранее запускаем ничего не делающие capacity-overprovisioning поды (в документации Kubernetes они называются placeholder-подами), которые занимают небольшую часть ресурсов нод. Когда приходит нагрузка и реплики бизнес-приложений увеличиваются — поды бизнес-приложений немедленно занимают освободившееся место, вытесняя capacity-overprovisioning под за секунды. Вытесненный capacity-overprovisioning под уходит в Pending, Cluster Autoscaler добавляет ноду.

Ключевая выгода паттерна — экономия. Ночью и утром, когда нагрузка падает, KEDA снижает число реплик бизнес-приложения, Cluster Autoscaler удаляет недозагруженные ноды, и кластер схлопывается до минимального числа нод. Утром при росте нагрузки capacity-overprovisioning поды отдают место мгновенно.

https://habr.com/ru/articles/1076538/

#Kubernetes #DevOps #KEDA #VictoriaMetrics #Autoscaling #Overprovisioning #ClusterAutoscaler #PriorityClass #ЭкономияРесурсов
В Kubernetes-кластере рано или поздно встаёт вопрос: где собирать Docker image приложений? Вариант «на своей машине разработчика» не масштабируется на команду. Вынос сборок на отдельную виртуальную машину решает эту проблему, но создаёт накладные расходы на обслуживание инфраструктуры и лишает ключевых преимуществ k8s: отдельная ВМ не масштабируется горизонтально под нагрузку, параллельные джобы конкурируют за общие CPU, RAM и диск, а накапливающийся кэш требует регулярной очистки.
Классических ответов два — Kaniko и BuildKit. Kubernetes executor с использованием Kaniko или BuildKit лишен этих недостатков: сборка происходит в изолированных подах прямо на нодах кластера, ресурсы динамически масштабируются, а виртуальные машины для Docker-демона больше не требуются.

https://habr.com/ru/articles/1079670/

#DevOps #Kubernetes #BuildKit #Kaniko #Benchmark
Классическая ситуация: Go-сервис падает с panic: runtime error: invalid memory address or nil pointer dereference, Nuxt-фронтенд логирует NUXT_UNHANDLED: unhandled rejection. Клиент видит лишь общее «что-то сломалось» — точный текст ошибки остаётся только в логах.
Решение — алертинг по логам. Связка VictoriaLogs + Vector + vmalert + Alertmanager следит за потоком, и как только приложение пишет panic, log.Fatal или NUXT_UNHANDLED, в Telegram уходит алерт. Ниже — как поднять эту связку в Kubernetes без лишней нагрузки на хранилище.

https://habr.com/ru/articles/1083198/

#DevOps #Kubernetes #VictoriaLogs #Vector #Alertmanager #Logging
Вышел open-source дашборд Dasha 1.8 для PostgreSQL: рекомендации по индексам, анализ логов и AI через MCP
Состоялся релиз новой версии дашборда Dasha 1.8 для мониторинга и администрирования баз данных PostgreSQL. В обновлении появился продвинутый автоматический анализ структуры БД и интеграция для управления кластерами с помощью ИИ-ассистентов. Проект полностью бесплатный, а его исходный код и документация доступны в репозитории на GitHub.

https://habr.com/ru/articles/1084954/

#postgres #opensource #devops #database #ai
Coroot — open-source observability-платформа, которая из метрик, логов и трейсов делает выводы о том, что чинить. Её ключевая особенность — непрерывное профилирование без изменений кода: eBPF-профилировщик снимает CPU-профили всех процессов на ноде, а языковые профилировщики (Go, Java) добавляют память и блокировки. В результате флеймграф показывает нагрузку до точной строки кода, а предустановленные инспекции находят типовые проблемы — утечки памяти, лишние аллокации, блокировки.

https://habr.com/ru/articles/1087316/
Forwarded from John Doe
🚀 VictoriaTraces v0.12.0 is here!

This release introduces a new built-in UI for exploring traces. You can try it out yourself in the playground:
play-vtraces.victoriametrics.com/select/vmui/

Check out the changelog for the full list of updates https://docs.victoriametrics.com/victoriatraces/changelog/#v0120