DevOps FM
4.93K subscribers
637 photos
12 videos
10 files
752 links
♾️ Канал для тех, кто живёт DevOps и системным администрированием.

Новости, статьи, best practices, инструменты и чилл-аут контент. Cloud Native, Docker, Kubernetes, CI/CD, БД, мониторинг etc.

По вопросам — к Ладе @b_vls
Download Telegram
В эту пятницу рассказываем про онлайн-сервисы для знакомства с Docker и Kubernetes

👩‍💻 Play with Docker — интерактивная площадка для изучения Docker. После авторизации вас перенаправит на облачный хост, где вы можете создавать инстансы Docker-кластера актуальной версии. Сессия длится 4 часа.

Чтобы разобраться было проще, авторы сделали отдельные интерактивные инструкции. В них можно быстро освоить базовые команды Docker, работу с docker-compose, volumes, сетями и даже с Docker Swarm.

👩‍💻 Play with Kubernetes — аналогичная Play with Docker площадка для изучения Kubernetes. На сайте вам предоставляется доступ к виртуальной Linux-машине, где можно баловаться с кластерами и разбираться с основными концепциями оркестратора.

Как и в случае с Docker, у Kubernetes есть собственный обучающий портал, где можно пошагово пройти сценарии развёртывания подов, сервисов, ingress, конфигов и прочих сущностей. Отличный способ разобраться в основах и попрактиковаться без настройки инфраструктуры.

Команда DevOps FM желает приятных выходных. А тем, кто работает или дежурит – спокойных рабочих смен!

#devops #docker #kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍21💅1
К сегодняшней среде подготовили для вас свежий дайджест интересных новостей и материалов за неделю.

⚫️ Let's Encrypt начала выдавать бесплатные TLS-сертификаты для IP-адресов

Let's Encrypt анонсировали начало предоставления бесплатных сертификатов для IP-адресов. Срок действия сертификатов составит 6 дней и пока генерация происходит только в тестовом режиме. Для запроса сертификата требуется наличие в ACME-клиенте поддержки расширения протокола, реализующего профили, а также поддержки профиля shortlived. Полноценный доступ ожидается к концу 2025 года.

🟡 Зарелизили GNU Bash 5.3

Спустя почти три года разработки представлена новая версия одного из самых популярных Unix-оболочек. Обновление затронуло как функциональность самой оболочки, так и библиотеку Readline, которая используется для редактирования командной строки.

Что нового:
• Появился новый формат подстановки команд ${ command; } и ${|command;}
• Добавлена переменная GLOBSORT — теперь можно управлять сортировкой файлов при автодополнении
• Команды read, source, compgen получили новые опции.
• Bash переведён на стандарт C23 — поддержка старых K&R C-компиляторов прекращена.

Полный список изменений можно найти здесь.

⚫️ На официальном блоге Kubernetes вышел разбор проблем с отказами устройств в подах

Авторы статьи делятся выводами из доклада на KubeCon NA и обсуждают, почему текущая модель отказоустойчивости Kubernetes не справляется с современными задачами. AI/ML-нагрузки предъявляют новые требования: устройства дорогие, сбои критичны, а переиспользование подов и девайсов должно быть максимально эффективным. В статье рассказывается о текущих решениях — от кастомных контроллеров до политик завершения работы подов, а также о том, какие доработки планируются в SIG Node: больше extension points, учёт деградации устройств, интеграция с DRA и многое другое.

Чтобы прочитать статью — кликните сюда.

🟡 Манешвар, разработчик LiveAPI, опубликовал гайд по миграции AWS EC2-инстанса в Google Cloud с сохранением всех данных и конфигураций — от ОС до пользовательских файлов. В статье он подробно описывает каждый этап: создание AMI, экспорт в S3, импорт в GCP и запуск нового инстанса на базе полученного образа.

#devops #kubernetes #bash #aws
6👍3🔥1
Привет! В эту пятницу предлагаем разобраться, как Kubernetes управляет сетями — от ядра Linux до сервис-мешей.

Лука Каваллин написал подробную статью о том, что происходит с пакетами и подами в Kubernetes-кластере. В статье — фундаментальные принципы работы сетей в Linux, контейнерах и Kubernetes, а также современные абстракции: Service, Ingress и Gateway API. Автор не обошёл стороной и работу в мультикластерах, и типичные проблемы с сетевой доступностью между подами.

С деталями можно ознакомиться по ссылке.

Желаем приятного чтения! Тем, кто отдыхает — хороших выходных, а тем, кто работает — спокойных дежурных смен!

#devops #kubernetes #networking #pods
🔥72👍1
🤩 Сегодня Cloud Native Computing Foundation исполняется 10 лет! Рассказываем немного истории

21 июня 2015 года CNCF была создана как дочерняя организация Linux Foundation, чтобы задать индустрии вектор развития: стандартизировать подходы к контейнерам, оркестрации и микросервисной архитектуре.

На старте в CNCF был только один проект — Kubernetes. Мы уже рассказывали, почему он перешел в фонд, а не остался в Google. Это была ставка на микросервисную архитектуру, контейнерную оркестрацию и независимость от конкретных облаков. Именно поэтому последующие проекты CNCF органично дополняли Kubernetes, расширяя его возможности.

Сегодня CNCF выросла далеко за пределы Kubernetes и объединяет более 200 cloud-native решений. Все они направлены на работу с облачными инфраструктурами. Чтобы поддерживать устойчивое развитие, CNCF выполняют обязанности по:
• Продвижению проектов в сообщество
• Финансированию
• Обеспечению совместимости всех решений в контексте использования облачных инфраструктур

Новый исполнительный директор рассказал, что сейчас главная цель — сделать CNCF незаменимым центром облачных инноваций.

Это означает удвоение усилий по развитию сообщества и фреймворков управления, благодаря которым наши проекты стали выбором современных компаний. Это готовность быть на шаг впереди, в том числе в плане масштабирования и аппаратной сложности, которые сопутствуют работе ИИ-платформ.


#devops #cloudnative #cncf #kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍41
Далее в эфире DevOps FM — традиционный срединедельный дайджест новостей и статей.

🟡 В AUR-репозитории Arch Linux выявлены вредоносные пакеты, маскирующиеся под популярные браузеры. В librewolf-fix-bin, firefox-patch-bin и zen-browser-patched-bin был внедрён RAT — троян, дающий удалённый доступ к системе и способный запускать команды, в том числе для майнинга криптовалюты.

Троян маскировался под systemd-сервис и устанавливался даже без корневых прав. Пакеты уже удалены, но все равно советуем проверить систему.

⚫️ Анимеш Гайтонде делится советами о масштабировании счетчика просмотров до 100K+ запросов в секунду. В своей статье он шаг за шагом показывает эволюцию архитектуры: от простого инкремента в базе данных до event-driven решения на Kafka и Flink.

Если кратко:
• Наивный подход с одной базой быстро упирается в ограничения по RPS и не решает проблему повторных просмотров.
• Шардинг помогает, но страдает от hot-partition при вирусных видео.
• Агрегация просмотров в памяти и idempotency-ключи дают прирост, но теряют данные при сбое.
• Kafka и Flink обеспечивают устойчивость, масштабируемость и возможность отложенной агрегации с дедупликацией.

Если хочется погрузиться в детали, то можете прочитать весь обзор на ITNEXT.

🟡 В блоге Kubernetes рассказали, как обстоят дела с постквантовой криптографией в их экосистеме.

Начиная с Go версии 1.24 (на нём собран Kubernetes 1.33), включена поддержка постквантовых KEM-алгоритмов. При этом разработчики Kubernetes не задают жёсткие настройки криптографии, TLS-соединения с API-сервером уже могут быть квантово-устойчивыми.

В статье подробно разобраны отличия PQC-алгоритмов для обмена ключами и цифровых подписей, текущая поддержка в Go, OpenSSL, браузерах и операционках. Узнать о подводных камнях при использовании PQC и перспективах внедрения PQC-сертификатов в будущем можно здесь.

⚫️ CNCF поделились подробной статьей о том, как построить собственный Database-as-a-Service на Kubernetes. Разобраны варианты развертывания для многих СУБД с поддержкой масштабирования, мониторинга, шифрования и резервного копирования.

#devops #kubernetes #linux #cncf #dbaas
👍5🔥41
Всем DevOps! Сегодня по плану у нас свежий дайджест новостей:

🟡 Выпустили Linux 6.16

В воскресенье вышел релиз ядра версии 6.16. В новой версии было внесено 15 924 исправлений, среди которых: удаление протокола DCCP, добавление драйвера ovpn для повышения производительности работы OpenVPN; внедрение механизма Kexec HandOver для запуска нового ядра из старого без потери состояния системы; оптимизации в Ext4 и многое другое.

Полный список изменений — тут.

⚫️ Kubernetes рассказали чего ожидать в версии 1.34

Скоро выйдет Kubernetes v1.34 — релиз запланирован на 27 августа 2025 года. В новую версию войдут изменения связанные с Dynamic Resource Allocation для работы с GPU и нестандартным оборудованием, появится podReplacementPolicy в Deployments для настройки запуска новых подов при обновлении и добавят поддержку KYAML — упрощенной версии YAML созданной специально для Kubernetes.

Эти и другие фичи можно посмотреть в анонсе.

🟡 Docker прекращают поддержку Content Trust с 8 августа 2025 года

Docker объявил о прекращении поддержки Docker Content Trust — устаревшего механизма проверки контейнерных образов. Пользователям советуют переходить на современные решения для подписания и верификации, такие как Sigstore и Notation. Рекомендуется убрать переменную DOCKER_CONTENT_TRUST=1, чтобы избежать сбоев при загрузке образов.

⚫️ Крис Ричардсон выпустил третью часть серии об аутентификации и авторизации в микросервисной архитектуре. Главная тема этой статьи — авторизация с использованием JWT-токенов. Крис подробно разбирает, как сервисы принимают решения об уровне доступа пользователя, откуда получают нужные данные и какие существуют архитектурные стратегии: включать данные в токен, запрашивать по API, реплицировать или делегировать отдельному сервису.

#devops #linux #microservices #kubernetes #docker
👍53🔥2
Выкатываем срединедельный дайджест новостей и статей на DevOps FM!

🟡 Утечка данных в Debian 13: StarDict передаёт выделенный текст на внешние сервера

Пользователи обнаружили серьёзную проблему с конфиденциальностью в репозитории будущего Debian 13. Через пакет StarDict, реализующий интерфейс для поиска в словарях, приложение отправляет любой выделенный фрагмент на внешние серверы.

Достаточно просто выделить слово в любом окне, и оно автоматически уходит на серверы словарей dict.youdao.com и dict.cn без шифрования по протоколу HTTP. Это может привести к утечке личных данных и паролей, но поведение воспроизводится только на базе протокола X11, в окружениях Wayland действует изоляция.

Разработчики заявили, что это ожидаемое поведение. Если вас оно не устраивает — отключайте сетевые словари и функцию автоматического поиска при выделении. Что интересно, в 2009 году уже была подобная уязвимость и работу по-умолчанию в ней отключили.

⚫️ Docker опубликовали статью о подводных камнях использования защищённых контейнерных образов.

Hardened образы упрощают эксплуатацию и уменьшают поверхность атак, но на практике часто вступают в конфликт с реальными потребностями разработчиков и DevOps-инженеров. В материале рассказывается, как найти баланс между безопасностью, удобством и гибкостью, а так же почему «идеальная» защита может навредить. Читать — по ссылке.

🟡 CNCF поделились результатами отчёта Voice of Kubernetes Experts 2025. Это масштабное исследование среди 500+ экспертов, ответственных за внедрение Kubernetes в крупных компаниях. Из интересного:

• 82% компаний планируют разрабатывать новые приложения на cloud native-платформах;
• 87% используют гибридные облака для гибкости, экономии и снижения зависимости от одного вендора;
• Больше половины опрошенных запускают важные приложения с высокими требованиями к отказоустойчивости и доступности — в контейнерах;
• Основные проблемы, с которыми сталкиваются респонденты: безопасность (72%), наблюдаемость (51%) и отказоустойчивость (35%).

Подробнее — в отчёте.

⚫️ На System Design Codex опубликовали небольшую шпаргалку по метрикам производительности систем. Автор подчёркивает, что архитектура и технологии — лишь часть успеха, а вот показатели вроде пропускной способности, масштабируемости и других метрик дают конкретные ориентиры для оценки качества системы. В статье объясняется каждая метрика, как её измерять и улучшать, а так же практические советы по оптимизации.

#devops #debian #docker #kubernetes
👍6🔥51
Как закрывать риски при смешанных сценариях работы — от трафика до AI-агентов

Сегодня в подборке — практические разборы, где безопасность не отделена от инфраструктуры и масштаба.
🟡 Cloudflare включает защиту без ручных политик
Автоматическое укрепление трафика срабатывает, когда поведение запросов меняется. Не нужно вспоминать про WAF, настраивать исключения или проверять релизы. Подходит командам, где инфраструктура часто обновляется или безопасность не ведётся отдельно.
⚫️ OpenShift и Palo Alto Networks убирают разрыв между VM и контейнерами
Когда Kubernetes и виртуалки живут параллельно, политики безопасности расходятся. Интеграция даёт единый контроль трафика, общие правила и подключение внешней аналитики угроз. Это снижает риск “белых пятен” в сети и облегчает аудит.
🟡 AI-скрейпинг выходит за рамки вспомогательных задач
Авторы разбирают, когда выгодно строить свой стек и когда проще взять готовый сервис. Главный акцент — на утечках, отсутствии контроля запросов и несоответствии нормам, если агенты работают в фоне. Полезно тем, кто запускает LLM-интеграции или аналитику на внешних данных.

#security #cloud #kubernetes #openshift #ai
👍4🔥42
👩‍💻 Автоматическое восстановление служб в Kubernetes — контроль, прозрачность и спокойный сон

Восстановление служб в автоматическом режиме – обнаружение инцидентов и исправление проблем без ручного вмешательства. Автоматизация операционных процессов решает проблему заполнению томов, снижает количество ошибок расширения PVC и ликвидирует сбои узлов.

Что внедрить первым?
- Экспорт метрик и базовые алерты в тестовом namespace.
- Оператор расширения дискового пространства в dry-run с трассировкой действий.
- Сценарии отказов в staging: full-disk, failed-resize, node-failure.

🤝После базовой настройки включаем контроль.
Что проверить?
- Snapshots перед изменениями.
- Ограничение параллельных операций.
- Метрики эффективности: MTTR, число автопочиненных инцидентов, вмешательств оператора.

📎 Совет: встраивайте автоматизацию с runbooks и audit-логами рядом — так автоматические действия остаются прозрачными и воспроизводимыми. Читайте весь гайд по ссылке.

👩‍💻 Делимся репозиториями:
Draino — оператор от Planet Labs, который автоматически изолирует и очищает (cordon/drain) узлы Kubernetes, когда они переходят в неработоспособное состояние.
Volume Expander Operator — проект от Red Hat COP для автоматического расширения Persistent Volumes при достижении порога заполнения.

#devops #kubernetes #storage #autoremediation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥63
Привет! Вы в DevOps FM 🚀
Канал про DevOps, администрирование и людей, которые это совершенствуют👍

Наши рубрики:
- Понедельник — Познавательные (#tools #opensource)
- Среда — Информационные дайджесты (#kubernetes #docker)
- Пятница — Развлекательное / пятничное чтиво (#debugging #podcasts)
- Каждые 2 недели — «Партнёр недели» (#партнёрский_пост)

💡 Совет: используйте хештеги для поиска по интересующим темам.
Например, #postgresql, #security, #architecture
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🏆3🔥1
Авто-ресурсы в Kubernetes, Pulumi NEO и Google MCP: инфраструктура на автопилоте

🔔Всем срединедельный DevOps! Обсудим свежие апдейты авто-выделения ресурсов в K8s и инструментов GitOps. Полезно тем, кто хочет меньше крутить кластеры вручную.

🟡 Kubernetes 1.34 и динамическое выделение ресурсов
В версии Kubernetes 1.34 кластер сам подбирает ресурсы GPU, CPU и I/O под конкретные задачи — без необходимости заранее прописывать лимиты в PodSpec. Теперь через API можно запрашивать устройства с нужными параметрами (тип GPU, версия CUDA, объём памяти) — и Kubernetes подберёт подходящее оборудование.
Это снижает долю простаивающих ресурсов, особенно при ML- и AI-нагрузках, где требования к железу меняются на лету.

⚫️ Pulumi NEO упрощает GitOps
Pulumi NEO читает IaC-код, сам формирует план изменений инфраструктуры, проверяет его через Policy as Code и применяет. Он понимает зависимости, окружения и может откатывать изменения без ручного kubectl apply. Полезен, когда GitOps-потоки разрастаются, а ручное управление окружениями тормозит релизы.

🟡 Google MCP для баз данных
Google представил MCP Toolbox — серверный набор инструментов, который реализует MCP для безопасной автоматизации доступа к базам данных. SQL-операции задаются декларативно в tools.yaml , а MCP управляет подключениями, пулами и правами доступа. Поддерживает Cloud SQL, AlloyDB, Spanner, PostgreSQL и MySQL. Система следит за нагрузкой, масштабирует кластеры и перестраивает схемы без ручного вмешательства DBA. Ещё один шаг к инфраструктуре, где всё крутится само.

#DevOps #Kubernetes #SRE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥52
Kubernetes под микроскопом: как SPO видит действия пользователей

👩‍💻Всем DevOps! Сегодня поговорим о том, как отслеживать, что происходит внутри контейнеров в Kubernetes. В стандартной конфигурации Kubernetes аудит фиксирует только действия на уровне API: кто применил kubectl exec или kubectl debug. Что именно происходило внутри pod’а после входа в контейнер увидеть нельзя. Эту проблему решает Security Profiles Operator (SPO) — отслеживайте действия пользователей и процессов внутри pod’ов и на узлах.

🔄Принцип работы
SPO использует системные источники данных — например, /var/log/audit/audit.log и /proc/<pid>. Каждое событие записывается в JSON-формате, а JSON Enricher связывает его с соответствующим API-запросом через request UID. Это позволяет восстановить полную цепочку: API-запрос → контейнер → процесс → результат

🔓Как включить Security Profiles Operator?
- Установите cert-manager
Он нужен для автоматического управления сертификатами, используемыми SPO.
- Разверните Security Profiles Operator
Используйте официальный манифест из подборки репозиториев.
- Настройте хранение логов
SPO может сохранять логи: локально на узле (по умолчанию в /var/log/security-profiles-operator/ ), в общем томе (PVC), или выводить в stdout — удобно для интеграции с системами сбора логов вроде Loki или Elasticsearch;
- Включите JSON Enricher
Он обогащает события дополнительной информацией о процессе.
- Настройте seccomp-профиль для отслеживания системных вызовов
Он фиксирует вызовы вроде execve и clone, а объект ProfileBinding применяет профиль ко всем pod’ам в выбранном пространстве имён ( namespace ).

📎Репозитории с инструкциями по установке:
audit-logging-guide — описывает, как включить аудит действий внутри pod’ов и узлов через Security Profiles Operator.
installation-usage — показывает, как установить Security Profiles Operator и применить seccomp-профили к pod’ам.

С SPO вы поймете, что произошло, почему и кем было сделано — без лишней нагрузки и сложных интеграций.

#devops #kubernetes #spo
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11🔥54
Helm исполнилось 10 лет!

🔅Это повод вспомнить, как всё начиналось.

Идея родилась во время хакатона: за полтора дня Мэтт Бутчер создал CLI-утилиту для взаимодействия с Kubernetes, Джэк Норман разработал серверный прототип менеджера пакетов k8space, а Римантас Моцевичюс подготовил первый чарт — набор шаблонов YAML.

19 октября 2015 года был сделан первый коммит. Так появился внутренний проект Helm Classic, который объединили с Google Deployment Manager. После этого появился Helm, знакомый нам сегодня.

За десять лет инструмент прошёл путь от прототипа до полноценной экосистемы с поддержкой:
• чартов (пакетов с шаблонами YAML)
• системы репозиториев и версионирования
• шаблонизации и параметров конфигурации
• управления релизами и откатами
• интеграции в CI/CD

В 2018 году проект вошёл в состав CNCF и продолжил развиваться как одно из ключевых решений для cloud-native инфраструктур.

О названии.
🖼️Выбор был сделан не случайно: helm – «штурвал». Kubernetes казался штормовым морем, а инструмент – помощником в управлении.

Для тех, кто любит погружаться в историю – советуем прочесть очерк сооснователя, путь от альфы до v4 Beta Glory.

Хороших выходных и спокойного дежурства! ⚓️

#devops #kubernetes #helm
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍95
Docker vs. Kubernetes — от изолированных контейнеров к единой среде

🔄Сегодня разбираем, почему одного контейнера недостаточно для обмена данными между процессами внутри Pod.

Контейнер запускает приложение как отдельный процесс: отдельный сетевой стек (IP, интерфейсы и маршруты), своё PID-пространство и управление ресурсами через cgroups (CPU и память). Эти механизмы изолируют и сохраняют предсказуемость работы — один процесс, один контейнер.

На практике несколько процессов работают параллельно, обмениваются данными и используют общие ресурсы. Например, основной контейнер выполняет приложение, а вспомогательный (sidecar) собирает логи, проксирует трафик или ведёт метрики.

📱В статье от iximiuz Labs дан подробный разбор того, как Kubernetes реализует Pods на уровне Linux и можно ли воспроизвести функциональность Pod в чистом Docker.
Спойлер: можно, если вручную подключить сетевые и IPC namespace, но не всё получится — UTS, например, остаётся изолированным.

Полный разбор здесь ⬅️, а ниже — практика от iximiuz Labs
Run a Sidecar Container in the Namespace of Another Container— проверь, как контейнеры делят namespace, как в Pod.
Limit CPU and Memory Usage of a Docker Compose Application — узнай, как задать лимиты CPU и памяти через cgroups.

#devops #kubernetes #containers #pods
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥4
Пятничная подборка: Jupyter, оптимизация ИИ-нагрузок в Kubernetes и облачные тренды

Сегодня в эфире подборка подкастов, в которых эксперты обсуждают эволюцию Project Jupyter, распределение расходов ИИ-сервисов в новой версии Kubernetes, тренды ИИ в облаке.

DOP 324:Kubernetes Resource Right-Sizing and Scaling with Zesty
Приглашенный гость Омар Хамерман, IT-архитектор Zesty.co, совместно с ведущими Дарином Поупом и Виктором Фарциком говорят о возможностях управления нагрузками ИИ в Kubernetes версии 1.33. Основное внимание уделяют автоматическому масштабированию. Послушать можно здесь.

From Physics to the Future: Brian Granger on Project Jupyter in the Age of AI
Брайн Грэнджер совместно с главным редактором издания The New Stack (TNS) рассмотрели развитие архитектуры Jupyter, построенной на модульных и расширяемых компонентах, роль ИИ-агентов в разработке приложения. Больше подробностей тут.

The CloudCast: AI & Cloud Trends for October 2025
Брайн Грэйсли и Брэндон Уичард разобрали тренды за последний месяц: анонсы от провайдеров, изменения в экосистемах OpenAI и вопросы безопасности облачной инфраструктуры. Подробнее здесь.

🔈Желаем приятного прослушивания и дежурств без алертов!

#kubernetes #jupyter #cloud #подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥64👍4
Good practices: конфигурации в Kubernetes

Конфигурации – основа рабочей нагрузки Kubernetes. Опытные инженеры знают, что достаточно пропущенной кавычки, неактуальной API-версии или смещённого отступа в YAML для возникновения проблемы при деплое. Представляем подборку good practices с советами по стабилизации кластера — для новичков и опытных пользователей. Подробнее читайте здесь.👀

Общие practices:
Используйте актуальную версию API
Kubernetes быстро развивается и обновляется. Менее актуальные API не работают корректно и приводят к сбоям при деплое. Проверяйте версию API, используя следующую команду:
kubectl api-resources 

Храните конфиги под версионным контролем
Не применяйте файлы манифеста с десктопа, храните их в системе контроля версий, например, в Git. Если что-то сломается – вы быстро откатитесь к прошлому коммиту.
Пишите конфиги в YAML, не в JSON
Технически работают оба формата для обмена и хранения данных, но YAML более удобен, по словам автора. В YAML используйте только true/false, т.к. yes/no/on/off могут парситься по-разному. Для надёжности берите в кавычки всё, что похоже на булево значение (например, "yes").
Группируйте связанные объекты
Если ресурсы – часть одного сервиса, храните их в одном файле YAML-манифеста. Так легче отслеживать, ревьювить и разворачивать изменения.
Применяйте эту команду, чтобы задеплоить всё в папке:
kubectl apply -f configs/ 


🚀Стандартизированные конфигурации упрощают управление кластером и берегут нервы администратора. Следуйте базовым принципам: контроль версий, единая система меток, отказ от использования отдельных Pod-ов без контроллеров. Так, вы значительно сократите время на диагностику и устранение ошибок.

#kubernetes #k8s #clustermanagment #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥3
Где тонко – там ChatGPT, где Docker – там патч

Из срочного – сообщаем о массовом сбое в работе ChatGPT 2 декабря. Пользователи из США, Канады, Великобритании, Индии и других стран направили запросы о превышении времени ожидания ответов в приложении в 22:11 Мск. Уже через час проблему устранили, но с чем были связаны неполадки до сих пор неизвестно.

Анонс Kubernetes v1.35
В сникпике версии v1.35 Kubernetes прекращает поддержку cgroup v1, ipvs в kube-proxy и containerd 1.x, что требует обновления инфраструктуры для корректной работы кластера. Релиз включает в себя in-place обновление ресурсов подов, node declared features, расширенные возможности taints, user namespaces и нативное управление сертификатами подов, повышающие безопасность и надёжность.

GitLab Patch Release: 18.6.1, 18.5.3, 18.4.5
Патч-релизы GitLab устранят множество багов и уязвимостей, поэтому рекомендуем обновиться. Среди исправлений – небезопасная многопоточность при кешировании CI/CD, DoS-уязвимости валидации JSON, проблема обхода аутентификации при регистрации.

Docker и CVE-2025-12735.
Docker устранили критическую уязвимость CVE-2025-12735 (удалённое выполнение кода в Kibana). Команда не только выпустила патч для пользователей, но и внесла исправление в LangChain.js в upstream, чем повысила безопасность для всех проектов, использующих эту библиотеку. Такой подход направлен на защиту всей экосистемы.

#kubernetes #gitlab #docker #chatgpt
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍53🔥2
От values-файлов к управлению вариантами конфигураций в ConfigHub: как перестать рендерить вслепую

В этот понедельник поговорим о переходе от классического Helm-подхода с values.yaml к модели Configuration as Data, которая реализует себя в ConfigHub. Если вы всё ещё храните values.yaml для разных сред, при аварийных запросах запускаете helm template и парсите YAML – рекомендуем сменить подход. В ConfigHub реализуется модель «конфигурация как данные»: вместо того чтобы каждый раз генерировать YAML из шаблонов по запросу, вы создаёте готовый манифест один раз.

Как внедрить подход?
Развертывание базового окружения (Infra Space)

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).

Создание пространств для окружений (Spaces)
1. Создаем пространства для каждого целевого окружения:
cub space create dev
cub space create prod

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

cub unit get --space dev prometheus --data-only


Prod

cub unit get --space prod prometheus --data-only


Получаем готовый YAML, а не шаблон или переменную.

Решение сценариев «Fire Drill»
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-workflow с CI/CD (build → render → store → apply), примеры для GitHub Actions/GitLab CI и рекомендации по кэшированию здесь.
How-to по Variants и GitOps (ArgoCD/Flux) – синхронизация «данных-конфигураций» с Git и кластерами (Kustomize в ArgoCD), подробнее тут.

#confighub #kubernetes #helm #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍125🔥4👎2
Пятничное чтиво от DevOps FM

Сегодня поговорим об инфраструктурных мелочах с большими последствиями.

👀Что могло пойти не так, но с версией Kubernetes 1.35 будет работать корректно
• Под уверенно занял порт на хосте, а потом мы выяснили, что все процессы внутри работали как root. Хорошо, что теперь это можно настроить.
• Для распределённой задачи требуется 10 рабочих подов, а запустилось только 5. Что с этим делает Kubernetes 1.35?
• Образ на узле, ресурсов хватает, но под не стартует – kubelet проверяет наличие imagePullSecrets.
• Кластер не поднялся после обновления узлов. При чём тут cgroup v1 и релиз 1.35? Читайте в статье.

👀5 ошибок DevOps стартапа (версия 2025)
DevOps как набор инструментов
Контуры процессов, технический стек внедрены, а совместной ответственности и быстрой обратной связи всё ещё нет.
Команды работают разрозненно
Разработка, эксплуатация и безопасность живут в своих мирах – потом долго ищут виноватых и чинят одно и то же.
Гонка за скоростью без прозрачности.
Релизы частые, но без мониторинга и логов проблемы находят пользователи, а не команда.
Ручные операции там, где давно нужна автоматизация.
Деплой «по инструкции», инфраструктура «на память», подборка ошибок – человеческих и повторяющихся.
Безопасность на «потом»
Сканирование, политики и контроль доступа подключают после инцидента, когда уже поздно.
Подробности читайте здесь.

👀Побойтесь DevOps-а…
Компания искала DevOps-инженера, чтобы навести порядок в инфраструктуре, и наняла специалиста с полными правами на продовые серверы. Прошло время и сотрудничество прекратили: доступы отозвали, пароли сменили, учётки заблокировали. Спустя пять дней прод внезапно упал: сервисы недоступны, логи выглядели «разорванными», массовая утечка данных. В ходе внутреннего расследования выяснили – до увольнения был создан скрытый пользователь с правами root, через VPN добавлена отложенная cron-задача на уничтожение системы, а после срабатывания последовал шантаж с требованием выкупа. Как всё закончилось? Читайте здесь.

🚀Приятного чтения! Пусть все инциденты сегодня будут только на Habr.

#пятничноечтиво #kubernetes #devops #security
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍75🔥4🤔2
CPU limits в работе с Kubernetes

💬В одном из недавних постов мы рассмотрели, как объяснить особенности Kubernetes CPU & Memory Requests, Limits по-человечески, сегодня обсудим опыт пользователей Reddit в работе с лимитами в проде. Весь тред можете прочесть здесь.

🗣По результатам опроса, в котором приняло участие 247 человек, ~54% используют CPU limits, но с небольшими оговорками:

ThePapanoob
В вопросе не отражены нюансы. Существует множество кейсов и в некоторых действительно нужно применять CPU limits, в других они только мешают работе


lulzmachine

Обычно начинаю без них, но всегда добавляю позже. Всеми способами избегаю «шумных соседей» (поды или контейнеры, которые
потребляют много ресурсов
и мешают другим подам нормально работать на том же ноде)

Xeroxxx

Да, мы используем лимиты в проде. Requests и Limits устанавливаются одинаково. Для скейлинга используем karpenter.

Чуть меньше половины опрошенных не видит смысла в CPU limits при наличии CPU requests:
romeo_pentium

CPU limits становится причиной троттлинга и неиспользованных CPU. Мы всегда можем работать с CPU requests. Преимущество в том, что контейнер не будет использовать CPU request другого контейнера.
Linux kernel троттлит ваш CPU по мере его приближения к лимиту.
Без лимитов производительность выше, и я не нашел преимуществ в их установке.

Ariquitaun

CPU limits обычно приводят к снижению производительности. Нам нужны только CPU requests для гарантии базового уровня производительности на проде.
С памятью дела обстоят по-другому – ООМ приведет к прекращению рабочих нагрузок в самое неподходящее время, а иногда к «убийству» нодов.

th0th

Я преимущественно использую requests, limits очень редко. Я предпочитаю следить за фактическим использованием и обвновлять request по необходимости.
У меня установлены алерты на превышение CPU в нодах, использовании памяти. Мне кажется, безопаснее опираться на систему оповещений, чем на последствия использования лимитов, по типу троттлинга.


Какой алгоритм работы в проде используете вы и ваши коллеги? Делитесь опытом в комментариях👀

#kubernetes #cpu #cpu_limits #cpu_requests
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥8👍52