Forwarded from k8s (in)security (Дмитрий Евдокимов)
songbird - простенький
1) Проверять достижимость между
2) Сгенерировать
3) Отобразить все сетевые политики, которые влияют на выбранный
P.S. Определенно ряд мыслей мы подсмотрим для Luntry, расширив поддержкой Calico и Cilium ;)
CLI инструмент, упрощающий жизнь и работу с NetworkPolicy (к сожалению, только нативными). А именно данный инструмент позволяет:1) Проверять достижимость между
Pods или к конкретному адресу через анализ NetworkPolicy. То есть помогает ответить на вопрос "а они вообще могут общаться друг с другом или нет?"2) Сгенерировать
NetworkPolicy для общения между двумя сервисами3) Отобразить все сетевые политики, которые влияют на выбранный
PodP.S. Определенно ряд мыслей мы подсмотрим для Luntry, расширив поддержкой Calico и Cilium ;)
GitHub
GitHub - Banh-Canh/songbird: Evaluate network policies configuration to check for connectivity
Evaluate network policies configuration to check for connectivity - GitHub - Banh-Canh/songbird: Evaluate network policies configuration to check for connectivity
❤1👍1
Forwarded from DevOps FM
От values-файлов к управлению вариантами конфигураций в ConfigHub: как перестать рендерить вслепую
В этот понедельник поговорим о переходе от классического Helm-подхода с values.yaml к модели Configuration as Data, которая реализует себя в ConfigHub. Если вы всё ещё храните values.yaml для разных сред, при аварийных запросах запускаете
Как внедрить подход?
⏺ Развертывание базового окружения (Infra Space)
1. Добавляем репозиторий Helm:
2. Разворачиваем базовое окружение для инфраструктуры:
3. Устанавливаем Helm-чарт через ConfigHub:
• ConfigHub использует движок Helm для однократного рендеринга чарта.
• Результат сохраняется как материализованный, версионируемый и индексируемый артефакт (Config Unit).
⏺ Создание пространств для окружений (Spaces)
1. Создаем пространства для каждого целевого окружения:
2. В качестве альтернативы – создаем пространства через UI ConfigHub, используем кнопку [Add] на странице списка Spaces.
3. Каждое пространство будет содержать копии базовых конфигураций для конкретного окружения.
⏺ Клонирование и создание Вариантов (Variants)
Variant – это копия Config Unit, которая создается через операцию Clone.
1. Создаем Dev Variant из базового окружения:
2. Выбираем чарты в infra space.
3. Выбираем dev space как цель.
4. Нажимаем [Clone Units].
5. Создаем Prod Variant из Dev Variant аналогично.
⬆️ Так, мы получаем цепочку конфигураций:
[infra's Helm charts] → [dev's Helm charts] → [prod's Helm charts]
Аналогичную концепцию можем использовать в Kustomize. Мы начинаем с базовых ресурсов, а затем добавляем к ним «Dev Overlays».
⏺ Мгновенный доступ к конфигурациям
1. После клонирования не требуется повторный рендеринг.
2. Получаем точные манифесты для окружений:
Dev
Prod
Получаем готовый YAML, а не шаблон или переменную.
⏺ Решение сценариев «Fire Drill»
1. Так как конфигурации сохранены как данные, можно выполнять поиск и анализ без повторного рендеринга:
Поиск уязвимых образов
Поиск образов
👀 Подводные камни и что делать:
• Нативные зависимости и postinstall хуки. При рендере учитывайте, что некоторые чарты рассчитывают поведение во время выполнения. Обязательный этап – прогон тестов в staging.
• Избежание версионных конфликтов Helm чартов, за счет фиксирования версий чарта; используйте lock-файлы чарта или helmfile для управления групповыми релизами.
Делимся полезными ресурсами:
⚙️ Интеграция ConfigHub-workflow с CI/CD (build → render → store → apply), примеры для GitHub Actions/GitLab CI и рекомендации по кэшированию здесь.
❕ How-to по Variants и GitOps (ArgoCD/Flux) – синхронизация «данных-конфигураций» с Git и кластерами (Kustomize в ArgoCD), подробнее тут.
#confighub #kubernetes #helm #devops
В этот понедельник поговорим о переходе от классического Helm-подхода с values.yaml к модели Configuration as Data, которая реализует себя в ConfigHub. Если вы всё ещё храните values.yaml для разных сред, при аварийных запросах запускаете
helm template и парсите YAML – рекомендуем сменить подход. В ConfigHub реализуется модель «конфигурация как данные»: вместо того чтобы каждый раз генерировать YAML из шаблонов по запросу, вы создаёте готовый манифест один раз.Как внедрить подход?
1. Добавляем репозиторий Helm:
helm repo update
2. Разворачиваем базовое окружение для инфраструктуры:
cub space create infra
3. Устанавливаем Helm-чарт через ConfigHub:
cub helm install --space infra \
--use-placeholder=false \
--namespace monitoring \
prometheus prometheus-community/kube-prometheus-stack \
--version 79.6.1
• ConfigHub использует движок Helm для однократного рендеринга чарта.
• Результат сохраняется как материализованный, версионируемый и индексируемый артефакт (Config Unit).
1. Создаем пространства для каждого целевого окружения:
cub space create dev
cub space create prod2. В качестве альтернативы – создаем пространства через UI ConfigHub, используем кнопку [Add] на странице списка Spaces.
3. Каждое пространство будет содержать копии базовых конфигураций для конкретного окружения.
Variant – это копия Config Unit, которая создается через операцию Clone.
1. Создаем Dev Variant из базового окружения:
2. Выбираем чарты в infra space.
3. Выбираем dev space как цель.
4. Нажимаем [Clone Units].
5. Создаем Prod Variant из Dev Variant аналогично.
[infra's Helm charts] → [dev's Helm charts] → [prod's Helm charts]
Аналогичную концепцию можем использовать в Kustomize. Мы начинаем с базовых ресурсов, а затем добавляем к ним «Dev Overlays».
1. После клонирования не требуется повторный рендеринг.
2. Получаем точные манифесты для окружений:
Dev
cub unit get --space dev prometheus --data-only
Prod
cub unit get --space prod prometheus --data-only
Получаем готовый YAML, а не шаблон или переменную.
1. Так как конфигурации сохранены как данные, можно выполнять поиск и анализ без повторного рендеринга:
Поиск уязвимых образов
cub unit list --space "*" \
--resource-type monitoring.coreos.com/v1/Prometheus \
--where-data "spec.image ~ '.*registry.compromised.com.*'"
Поиск образов
cub unit list --space "*" \
--resource-type monitoring.coreos.com/v1/Prometheus \
--where-data "spec.image ~ '.*quay.io.*'"
• Нативные зависимости и postinstall хуки. При рендере учитывайте, что некоторые чарты рассчитывают поведение во время выполнения. Обязательный этап – прогон тестов в staging.
• Избежание версионных конфликтов Helm чартов, за счет фиксирования версий чарта; используйте lock-файлы чарта или helmfile для управления групповыми релизами.
Делимся полезными ресурсами:
#confighub #kubernetes #helm #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
Forwarded from /usr/bin
Разбираем подводные камни, ошибки и лучшие практики при разработке Kubernetes-операторов
Читать дальше на Хабре.
Kubernetes-операторы давно стали привычным инструментом автоматизации и управления сложными системами. Однако на практике их поведение далеко не такое предсказуемое, как в примерах из документации. Небольшие отклонения в логике цикла согласования, обработке ошибок или обновлении статуса быстро превращаются в зацикливание, дублирование ресурсов и прочие сюрпризы, которые трудно отладить. Новичкам полезно понимать, почему так происходит, а опытным разработчикам — помнить, какие принципы стоит держать в голове при проектировании оператора.
Читать дальше на Хабре.
Forwarded from DevOps
🚀 Удобное управление CI/CD с Pipedash
Pipedash — это настольное приложение, которое объединяет CI/CD пайплайны из различных провайдеров в одном интерфейсе. Вместо того чтобы переключаться между разными панелями управления, вы можете отслеживать статус всех своих пайплайнов в одном месте. Приложение поддерживает GitHub Actions, GitLab CI, Jenkins и другие.
🚀 Основные моменты:
- Объединяет данные из нескольких CI/CD провайдеров
- Автоматическое обновление статусов пайплайнов
- Поддержка плагинов для добавления новых провайдеров
- Локальное хранение данных без аналитики и телеметрии
- Доступно для macOS, Windows и Linux
📌 GitHub: https://github.com/hcavarsan/pipedash
#rust
Pipedash — это настольное приложение, которое объединяет CI/CD пайплайны из различных провайдеров в одном интерфейсе. Вместо того чтобы переключаться между разными панелями управления, вы можете отслеживать статус всех своих пайплайнов в одном месте. Приложение поддерживает GitHub Actions, GitLab CI, Jenkins и другие.
🚀 Основные моменты:
- Объединяет данные из нескольких CI/CD провайдеров
- Автоматическое обновление статусов пайплайнов
- Поддержка плагинов для добавления новых провайдеров
- Локальное хранение данных без аналитики и телеметрии
- Доступно для macOS, Windows и Linux
📌 GitHub: https://github.com/hcavarsan/pipedash
#rust
🔥5
Forwarded from Загадки DevOpsa
Лучшие практики и технологии DevOps в 2025 году
17 декабря в 17:00 в прямом эфире на Twitch у нас большой созвон по девопсу!
В гости заглянут сразу двое:
Вячеслав Федосеев и Александр Крылов
Будем честно меряться тем, чем реально пользуемся в работе, сравнивать, спорить и много шутить. Разберём по полочкам:
1) Инструменты, которые крутим каждый день:
👉🏻 kubectl vs k9s vs Lens vs kube-dashboard — кто у кого выигрывает в 2025?
👉🏻 bash vs fish vs другие расширения CLI — где продуктивность, а где фан?
2) Сервисы, без которых не живём в проде:
👉🏻 grafana + loki + prometheus vs zabbix + ELK (и вся «семья»: vector/click, victoria metrics, psql, mimir) — что брать под разные сценарии.
👉🏻 GitHub Actions vs Jenkins vs GitLab CI — где скорость, где боль, а где надёжность.
Обсудим самое жаркое по-девопсерски
❗И да, ещё раз для тех, кто любит напоминалки: 17 декабря, 17:00
Ссылку на трансляцию, как всегда, скину накануне)
17 декабря в 17:00 в прямом эфире на Twitch у нас большой созвон по девопсу!
В гости заглянут сразу двое:
Вячеслав Федосеев и Александр Крылов
Будем честно меряться тем, чем реально пользуемся в работе, сравнивать, спорить и много шутить. Разберём по полочкам:
1) Инструменты, которые крутим каждый день:
👉🏻 kubectl vs k9s vs Lens vs kube-dashboard — кто у кого выигрывает в 2025?
👉🏻 bash vs fish vs другие расширения CLI — где продуктивность, а где фан?
2) Сервисы, без которых не живём в проде:
👉🏻 grafana + loki + prometheus vs zabbix + ELK (и вся «семья»: vector/click, victoria metrics, psql, mimir) — что брать под разные сценарии.
👉🏻 GitHub Actions vs Jenkins vs GitLab CI — где скорость, где боль, а где надёжность.
Обсудим самое жаркое по-девопсерски
❗И да, ещё раз для тех, кто любит напоминалки: 17 декабря, 17:00
Ссылку на трансляцию, как всегда, скину накануне)
👎4👍1🔥1
Forwarded from /usr/bin
Мы перестали использовать Docker в 2025 году — вот что пришло ему на смену
Вопрос не в том, умер ли Docker? Вопрос скорее в том, удовлетворяет ли Docker ваши потребности, или вы удовлетворяете потребности устаревшего Docker?
В этой статье рассказано о причинах переезда с Docker на другие контейнерные и бессерверные технологии, а также приведен пошаговый план такой миграции.
❓Отметьтесь в комментариях кто тоже рассматривает миграцию с Docker или уже смигрировал. Возможно, у вас есть интересный кейс, который будет любопытен другим читателям канала.
Вопрос не в том, умер ли Docker? Вопрос скорее в том, удовлетворяет ли Docker ваши потребности, или вы удовлетворяете потребности устаревшего Docker?
В этой статье рассказано о причинах переезда с Docker на другие контейнерные и бессерверные технологии, а также приведен пошаговый план такой миграции.
❓Отметьтесь в комментариях кто тоже рассматривает миграцию с Docker или уже смигрировал. Возможно, у вас есть интересный кейс, который будет любопытен другим читателям канала.
Teletype
Мы перестали использовать Docker в 2025 году — вот что пришло ему на смену
Это перевод оригинальной статьи We Stopped Using Docker in 2025 — Here’s What Replaced It.
Forwarded from DevOps Brain 🧠
Ну что, котлеги, надеюсь вы нашли для себя что-то полезное в предыдущих 2 частях. Если это так - то не скупитесь ставить
Это дает мне понять, что материал полезен и вам интересно то о чем я пишу.
Пришло время ехать дальше и вот что я вам скажу: есть два подхода к продакшену - “потом прикрутим безопасность/метрики/грейсфул” и “почему оно снова умерло. Открываем логи и метрики и смотрим!”. Обычно команды быстро мигрируют от первого ко второму - через боль, но мигрируют.
Эта часть c кучей примеров про безопасность подов, сетевые политики, наблюдаемость (метрики/логи/трейсы), корректное завершение (SIGTERM, draining) и управление образами. Применение этих практик сделает инциденты для вас диагностируемыми и переживаемыми - даже когда всё идёт не по плану.
#kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps Brain 🧠
Лучшие практики конфигурирования Kubernetes в 2025 - Часть 3: безопасность, логи, наблюдаемость и graceful shutdown
Эта часть про безопасность подов, сетевые политики, наблюдаемость (метрики/логи/трейсы), корректное завершение (SIGTERM, draining) и управление образами. Это набор лучших практик, который делает инциденты диагностируемыми и **переживаемыми - даже когда всё…
🔥2
Forwarded from John Doe
Присоединяйтесь к нам через несколько часов!
👉 https://youtube.com/live/yuZ_JkOx1uo
🕔 Сегодня в 17:00 GMT / 18:00 CET / 9:00am PT.
В сегодняшней программе:
🟣 Последние обновления VictoriaMetrics
📕 Spotify — история клиента: Lauren Roshore, Менеджер по инжинирингу в Spotify Engineering выступит с докладом «Как и почему мы используем VictoriaMetrics»
🤖 Инновации в Anomaly Detection
☁️ Что нового в VictoriaMetrics Cloud
📜 Последние обновления VictoriaLogs
🔥 Обновления в VictoriaTraces
🌍 Новости сообщества + ⁉️AMA
Не упустите свой шанс узнать новое, задать вопросы и пообщаться с сообществом VictoriaMetrics!
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
VictoriaMetrics Virtual Meet Up - December 2025
🖖 Warm up
📊 VictoriaMetrics roadmap updates
Spotify - Customer Story: "How & why we use VictoriaMetrics"
Presenter: Lauren Roshore, Engineering Manager, Observability at Spotify
Product Updates:
📈 Anomaly Detection Updates
☁️ VictoriaMetrics Cloud Updates…
📊 VictoriaMetrics roadmap updates
Spotify - Customer Story: "How & why we use VictoriaMetrics"
Presenter: Lauren Roshore, Engineering Manager, Observability at Spotify
Product Updates:
📈 Anomaly Detection Updates
☁️ VictoriaMetrics Cloud Updates…
Forwarded from Мониторим ИТ
Минимальный набор практик для микросервиса
Если вы Go-разработчик и к вам пришли и сказали "мне нужны твои метрики, трейсы и логи", прочитайте эту статью. Здесь собраны рекомендации, например, о том, что нужно разделять логи на технический поток и поток аудита. А еще:
И еще:
И еще:
Ну, в общем теперь вы знаете, что сказать вашим разрабам, если они хотят нормальный мониторинг. В статье есть и другие советы.
@monitorim_it
Если вы Go-разработчик и к вам пришли и сказали "мне нужны твои метрики, трейсы и логи", прочитайте эту статью. Здесь собраны рекомендации, например, о том, что нужно разделять логи на технический поток и поток аудита. А еще:
Почему я так упираюсь в связку “трейсы + логи”? Потому что это реально магия. Ты открываешь проблемный трейс, видишь trace_id, и дальше хочешь в один клик найти все логи по этому запросу. Чтобы это работало, логгер должен вытаскивать trace_id и span_id из контекста.
И еще:
Идея простая: у каждого запроса есть trace_id, и по нему ты видишь весь путь запроса через сервисы, очереди, базы и внешние интеграции. Внутри trace есть span — атомарные операции. Хорошая новость в том, что большая часть спанов создаётся автоматически, если ты используешь нормальные инструменты (HTTP middleware, SQL драйверы с OTel-инструментацией, клиенты Kafka/Redis и т.д.). Плохая новость в том, что бизнес-логика “между ними” сама себя не оттрассирует, и иногда надо уметь добавить span руками.
И еще:
Я люблю метрики, которые привязаны к смыслу. Если это сервис постов, то тебе важно понимать, сколько постов создают, как часто добавляют картинки или видео, как меняется поведение пользователей. Это не «хочу поиграться в аналитика», это реально помогает принимать решения и продукту, и инженерам.
Плюс есть технические метрики, которые не про сервис в целом, а про конкретную бизнес-механику: сколько сообщений улетело в DLQ, сколько промахов у кэша, как часто включается fallback. Такие числа позволяют развивать сервис на цифрах, а не на ощущениях.
Ну, в общем теперь вы знаете, что сказать вашим разрабам, если они хотят нормальный мониторинг. В статье есть и другие советы.
@monitorim_it
👍2
Forwarded from /usr/bin
Как мы сократили расходы на Kubernetes примерно на 78% без единой секунды простоя
В этой статье разобрано каким образом снизить стоимость инфраструктуры для кластера k8s простой проверкой утилизацией ресурсов. А также приведен пошаговый план миграции на более дешевое железо.
В этой статье разобрано каким образом снизить стоимость инфраструктуры для кластера k8s простой проверкой утилизацией ресурсов. А также приведен пошаговый план миграции на более дешевое железо.
Teletype
Как мы сократили расходы на Kubernetes примерно на 78% без единой секунды простоя
Это перевод оригинальной статьи How We Cut Kubernetes Costs by ~78% Without a Second of Downtime.
Forwarded from Мониторим ИТ
Introducing Observable Load Testing = Locust + OpenTelemetry!
Статья с описанием подхода (на портале medium.com)
Locust — это инструмент с открытым исходным кодом для тестирования производительности и нагрузки HTTP и других протоколов. Его удобный для разработчиков подход позволяет определять тесты в обычном коде Python.
Тесты Locust можно запускать из командной строки или с помощью веб-интерфейса. Пропускную способность, время отклика и ошибки можно просматривать в режиме реального времени и/или экспортировать для последующего анализа.
Вы можете импортировать обычные библиотеки Python в свои тесты, а благодаря подключаемой архитектуре Locust, возможности расширения практически безграничны. В отличие от большинства других инструментов, дизайн ваших тестов никогда не будет ограничен графическим интерфейсом или предметно-ориентированным языком программирования.
Репыч на Гитхаб
Проблема: Традиционное нагрузочное тестирование включает в себя обширную ручную корреляцию данных с бэкэндом и часто заходит в тупик из-за «слепых зон» в коде приложения и распределенных системах.
Решение: Благодаря автоматической инструментации скриптов Locust с помощью OpenTelemetry, нагрузочные тесты теперь будут генерировать сигналы OpenTelemetry. Эта телеметрия нагрузочных тестов передается в платформу мониторинга на основе OTel в режиме реального времени, позволяя визуализировать каждый запрос нагрузочного тестирования и отслеживать всю его транзакцию. Теперь у вас есть полная сквозная видимость — ваши запросы нагрузочного тестирования коррелированы с вашим приложением, инструментированным OTel.
Статья с описанием подхода (на портале medium.com)
Locust — это инструмент с открытым исходным кодом для тестирования производительности и нагрузки HTTP и других протоколов. Его удобный для разработчиков подход позволяет определять тесты в обычном коде Python.
Тесты Locust можно запускать из командной строки или с помощью веб-интерфейса. Пропускную способность, время отклика и ошибки можно просматривать в режиме реального времени и/или экспортировать для последующего анализа.
Вы можете импортировать обычные библиотеки Python в свои тесты, а благодаря подключаемой архитектуре Locust, возможности расширения практически безграничны. В отличие от большинства других инструментов, дизайн ваших тестов никогда не будет ограничен графическим интерфейсом или предметно-ориентированным языком программирования.
Репыч на Гитхаб
👍1
Forwarded from Mops DevOps
Docs-as-Code (DaC) — это подход к созданию и сопровождению технической документации с использованием тех же инструментов и рабочих процессов, что и при разработке программного кода. Этот метод легко интегрирует документацию в жизненный цикл разработки программного обеспечения, способствуя сотрудничеству, контролю версий и автоматизации.
🔹 Docs as Code: введение в предмет
🔹 Docs as Code: настраиваем инструменты под себя
🔹 Как мы пытались в Docs as Code и проиграли
🔹 Победить хаос в документации: почему мы создали свой продукт для Docs-as-a-Code
#docs
🔹 Docs as Code: введение в предмет
🔹 Docs as Code: настраиваем инструменты под себя
🔹 Как мы пытались в Docs as Code и проиграли
🔹 Победить хаос в документации: почему мы создали свой продукт для Docs-as-a-Code
#docs
❤2👍2
Forwarded from Мониторим ИТ
r9y.dev
По ссылке выше вы найдете ответ как прокачать практику SRE в вашей организации и пройти путь от 90.0% к 99.999%. Каждый топик на этой карте сопровожден ссылкой с описанием практики, преимуществами её внедрения и ссылками на релевантные материалы.
Нельзя назвать эту карту таблицей зрелости, это скорее ориентир-путеводитель. Я бы смотрел на эту карту с точки зрения ваших текущих задач и потребностей. Если вы понимаете, что работает не так или часто тушите пожары, то смотрите в нужное место на карте и смотрите как такие задачи закрываются. Весьма удобная штука.
@monitorim_it
По ссылке выше вы найдете ответ как прокачать практику SRE в вашей организации и пройти путь от 90.0% к 99.999%. Каждый топик на этой карте сопровожден ссылкой с описанием практики, преимуществами её внедрения и ссылками на релевантные материалы.
Нельзя назвать эту карту таблицей зрелости, это скорее ориентир-путеводитель. Я бы смотрел на эту карту с точки зрения ваших текущих задач и потребностей. Если вы понимаете, что работает не так или часто тушите пожары, то смотрите в нужное место на карте и смотрите как такие задачи закрываются. Весьма удобная штука.
@monitorim_it
👍3
Разверните свою облачную среду за несколько минут: виртуальные машины, S3-совместимое хранилище, Managed Kubernetes, базы данных.
▪️Быстрый старт, прозрачный биллинг, российские дата-центры.
▪️Удобные интерфейсы управления: веб-консоль, CLI, API, Terraform.
▪️Собственная разработка: развиваем облако так, как нужно пользователям, а не ждём решений от вендоров.
Развивайте свои IT-продукты. Об инфраструктуре позаботится облако.
Попробуйте MWS Cloud Platform бесплатно с грантом для новых пользователей.
▪️Быстрый старт, прозрачный биллинг, российские дата-центры.
▪️Удобные интерфейсы управления: веб-консоль, CLI, API, Terraform.
▪️Собственная разработка: развиваем облако так, как нужно пользователям, а не ждём решений от вендоров.
Развивайте свои IT-продукты. Об инфраструктуре позаботится облако.
Попробуйте MWS Cloud Platform бесплатно с грантом для новых пользователей.
👎2❤1👍1
Forwarded from Мониторим ИТ
12 дашбордов для дежурных, которые успокаивают всех
В этой статье приведены примеры 12 дашбордов для Grafana, которые хорошо помогают быстро диагностировать проблему. Опыт и еще раз опыт.
@monitorim_it
В этой статье приведены примеры 12 дашбордов для Grafana, которые хорошо помогают быстро диагностировать проблему. Опыт и еще раз опыт.
@monitorim_it
Teletype
12 дашбордов для дежурных, которые успокаивают всех
Это перевод оригинальной статьи 12 On-Call Dashboards That Calm Everyone Down.
❤3🔥1
Forwarded from Полезняшки от "Разбора Полетов"
What Does a Database for SSDs Look Like?
https://brooker.co.za/blog/2025/12/15/database-for-ssd.html
https://brooker.co.za/blog/2025/12/15/database-for-ssd.html
brooker.co.za
What Does a Database for SSDs Look Like? - Marc's Blog
Forwarded from DevOps FM
Сегодня разбираем, как обеспечить безопасность цепочки поставок в Docker на примере практического гайда Shamsher Khan: Advanced Docker Security: From Supply Chain Transparency to Network Defense. Подробно разберем обеспечение прозрачности цепочки поставок с помощью SBOM, спецификации ПО (Lab 07), а подробнее об установке эшелонированной защиты от DDoS и ботов (Lab 08) можете прочесть здесь.
• В 2021 инцидент с Log4Shell, ошибкой в библиотеке Log4j, указал на большую проблему современной разработки – незнание состава контейнеров.
• Кибератака SolarWinds произошла в том же году, что инцидент выше.
1. Обеспечение прозрачности цепочки поставок с помощью SBOM (Lab 07)
2. Эшелонированная защита от DDoS и ботов (Lab 08)
Рассмотрим Dockerfile:
FROM python:3.11-slim
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py . CMD ["python", "app.py"]
Вопрос знатокам: какие пакеты в этом образе?
SBOM позволяет получить полный список всех компонентов, версий и лицензий, сгенерированный за секунды.
В статье представлен демо-скрипт для выполнения с последовательностью из 12-ти шагов.
# Install Syft (SBOM generation)
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
# Install Grype (vulnerability scanning)
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
# Verify installation
syft version grype version
From a Docker image
syft nginx:alpine -o spdx-json > nginx-sbom.json
# From a directory
syft dir:./myapp -o cyclonedx-json > myapp-sbom.json
# Multiple formats at once
syft nginx:alpine -o spdx-json=sbom.spdx.json -o cyclonedx-json=sbom.cdx.json
# Scan the SBOM
grype sbom:./nginx-sbom.json
# Or scan image directly
grype nginx:alpine
# Generate SBOMs for two versions
syft myapp:v1.0 -o json > v1.0-sbom.json
syft myapp:v2.0 -o json > v2.0-sbom.json
# Compare (using provided script)
./compare-sboms.sh v1.0-sbom.json v2.0-sbom.json
# Scan the SBOM
grype sbom:./nginx-sbom.spdx.json
# Or scan image directly
grype nginx:alpine
# Only show CRITICAL and HIGH
grype nginx:alpine --fail-on high
# Only show CRITICAL
grype nginx:alpine --fail-on critical
# Show only specific severity
grype nginx:alpine -o json | jq '.matches[] | select(.vulnerability.severity == "High")'
# Export vulnerabilities to JSON
grype nginx:alpine -o json > vulnerabilities.json
В шагах 7 и 8 сравниваем версии SBOM и ищем конкретные пакеты, а в 9 – рассматривает отчёт/журнал SBOM
azure-pipeline.yml
- task: Docker@2
inputs:
command: build
dockerfile: '**/Dockerfile'
tags: $(Build.BuildId)
- script: |
syft $(imageName):$(Build.BuildId) -o spdx-json > sbom.json
displayName: 'Generate SBOM'
- script: |
grype sbom:./sbom.json --fail-on high
displayName: 'Scan for Vulnerabilities'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: 'sbom.json'
artifactName: 'SBOM'
• Syft – установка SBOM
• Grype – выявление уязвимостей
• Docker Security Practical Guide – полный гайд с Lab 07 и Lab 08
#devsecops #SBOM #zerotrust #kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🔥1
Forwarded from k8s (in)security (r0binak)
Заканчиваем эту неделю полезной тулзой для пользователей
Он позволяет создавать, запускать и останавливать легковесные виртуальные машины через
Написан на
Firecracker – FireCrackManager.Он позволяет создавать, запускать и останавливать легковесные виртуальные машины через
REST API и веб-интерфейс. Проект поддерживает работу с дисками, сетями, снапшотами и образами. Подходит для сценариев, где требуется запуск большого количества VM с минимальными накладными затратами.Написан на
Go и ориентирован на автоматизацию и инфраструктурные задачи.👍1
Forwarded from /usr/bin
Я удалил 70 процентов нашего YAML-файла Kubernetes. Задержка снизилась.
Полезная статья, если ваше приложение работает медленно. Здесь описан подход к уменьшению избыточного количества контейнеров и о вреде увлечения статьями о лучших практиках.
Наш API был медленным. Не сломанным — просто медленным.
Таким медленным, из-за которого пользователи обновляют страницу. Таким, из-за которого телефон кажется старым. У нас была задержка 200 мс на эндпоинтах, которые должны были отвечать за 40 мс. Каждая оптимизация, которую мы пробовали, делала всё только хуже. Затем я удалил большую часть нашей конфигурации Kubernetes. Задержка снизилась до 35 мс.
Полезная статья, если ваше приложение работает медленно. Здесь описан подход к уменьшению избыточного количества контейнеров и о вреде увлечения статьями о лучших практиках.
Forwarded from /usr/bin
Миграция с NGINX Ingress Controller на Kubernetes Gateway API с использованием ingress2gateway
В этой статье описан практический пошаговый обзор того, как использовать ingress2gateway для миграции существующих конфигураций NGINX Ingress с минимальными накладными расходами.
С официальным прекращением поддержки Ingress NGINX, запланированным на март 2026 года, пользователи Kubernetes сталкиваются с серьёзным архитектурным изменением. Это прекращение поддержки знаменует собой прекращение выпуска обновлений безопасности и исправлений ошибок, поэтому командам разработчиков крайне важно оценить планы миграции уже сейчас.
Один из самых простых и удобных в обслуживании путей — переход от традиционных ресурсов Ingress к Gateway API, современному стандарту сетевого взаимодействия в Kubernetes. Для упрощения этого процесса сообщество Kubernetes SIG Network предоставляет инструмент ingress2gateway с открытым исходным кодом, который автоматически преобразует объекты Ingress в ресурсы Gateway API.
В этой статье описан практический пошаговый обзор того, как использовать ingress2gateway для миграции существующих конфигураций NGINX Ingress с минимальными накладными расходами.
Teletype
Миграция с NGINX Ingress Controller на Kubernetes Gateway API с использованием ingress2gateway
Это перевод оригинальной статьи Migrating from NGINX Ingress Controller to Kubernetes Gateway API Using ingress2gateway
🔥2
Forwarded from /usr/bin
Databasus — open source инструмент для резервного копирования PostgreSQL, MySQL и MongoDB (ex-Postgresus)
В этой статье детальнее, что из себя представляет проект и почему произошло переименование.
Теперь Postgresus — это Databasus. И поддерживает другие базы: MySQL, MariaDB и MongoDB (при этом оставляя основной фокус на PostgreSQL).
В этой статье детальнее, что из себя представляет проект и почему произошло переименование.
❤3