Kubernetes просто, часть 2: что происходит после kubectl apply

От YAML-манифеста до работающих контейнеров: разбираемся, что Kubernetes делает после kubectl apply.

Лишь бы юзер был доволен

От YAML-манифеста до работающих контейнеров: разбираемся, что Kubernetes делает после kubectl apply.

Как systemd превратил обычный скрипт перезапуска в бесконечный дедлок — почему мониторинг не заметил собственную смерть
Конструкция, о которой пойдёт речь, есть почти в каждой инфраструктуре: скрипт генерирует конфиг сервиса и перезапускает сервис, если конфиг изменился. Четыре строки логики, юнит на десять строк, работает годами.
У меня эта конструкция выключила сбор данных на всех четырёх хостах, где она установлена. На двух — вечным дедлоком между двумя юнитами, который невозможно переждать, потому что таймаут там отключён по умолчанию. На третьем — командой, которая молча ничего не делает именно тогда, когда нужна. И ни на одном из хостов никто не заметил этого две-три недели, потому что мониторинг следил за инфраструктурой, но не за собой.
Дальше — разбор механики со ссылками на документацию, схема «до/после», набор команд, которыми такую поломку можно найти у себя, и выводы, часть из которых оказалась неожиданной для меня самого.

Привет, Хабр! Миграция большого числа рабочих станций с Windows на Astra Linux — это не запуск установщика и не вечерняя переустановка ОС на одном компьютере. Это проект, в котором нужно провести инвентаризацию парка, проверить совместимость, согласовать сроки, сохранить данные, настроить доменную интеграцию, проконтролировать результат и разобрать ошибки. Вручную это потребует значительных ресурсов ИТ-служб.
Astra Migration — клиент-серверное решение, которое берёт эту работу на себя. Оно состоит из серверной части с веб-порталом, агента для Windows и компонентов для установки и первичной настройки целевой ОС. В статье хочу рассказать из каких частей состоит Astra Migration, как выглядит путь от установки серверной части до первой загрузки Astra Linux, что такое сценарии и волны миграции, зачем нужны блокеры и какие дополнительные детали раскрываются в решении.

Прямо сейчас миллионы людей работают за компьютером, которого физически не существует. Их рабочий стол — лишь изображение, передаваемое по сети из дата-центра за сотни километров. Для пользователя он выглядит как обычный Windows, но в действительности его приложения, данные и сама операционная система работают совсем в другом месте.
Так выглядит результат более чем шестидесятилетней эволюции одной инженерной идеи: постепенно отделить рабочее место человека от конкретного физического компьютера. На этом пути сменились мейнфреймы, персональные компьютеры, терминальные серверы, гипервизоры и облака, а за каждым новым этапом стояли конкретные инженеры, компании и технологические прорывы, которые меняли представление о том, где на самом деле должен находиться компьютер.
Если смотреть на эту историю из сегодняшнего дня, менялись технологии, но набор задач оставался удивительно стабильным: отделить рабочую среду от конкретного устройства, централизовать управление, сохранить пользователю привычную автономность и научиться масштабировать такую инфраструктуру.

В прошлой статье я закончил на том, что следующая часть серии, скорее всего, уже выйдет за границы самого Obsidian‑плагина, в Companion и MCP. Вышла.
За это время Vault Audit AI успел обзавестись отдельным сервером, MCP‑интерфейсом для AI‑клиентов, механизмом предложений изменений и вторым репозиторием.
А потом стало понятно, что старое название уже довольно плохо объясняет, что вообще происходит. Поэтому теперь проект называется Veynrel.
Сам плагин при этом не был переписан с нуля. Существующим пользователям не нужно ничего переустанавливать, заново вводить API‑ключи или перестраивать semantic index. Я специально постарался сделать самый скучный ребрендинг из возможных с технической точки зрения.
Зато вокруг самого плагина стало заметно интереснее. Сейчас всё это в упрощённом виде выглядит так:

Почтовый аудит-лог Яндекс 360 отдаёт запись о событии структурой ответа AuditLogService_Mail, а в ней 22 поля (справочник Яндекс 360 API, сверка 10 сентября 2026 года). Тема письма и адреса участников среди них есть, а ни суммы, ни контрагента, ни номера договора нет. Ограничения распознавания и рекомендации к качеству входа я привожу по документации Anthropic, а дальше идёт моя инженерная логика: какой шаг создаёт недостающие поля и чего это стоит.

IMPulse - ChatOps система менеджмента инцидентов. Если вы получаете алерты напрямую от Alertmanager, IMPulse поможет формировать из них полноценные инциденты с эскалацией, ответственными и тредом обсуждения проблемы. Подробности в статье.
После прошлого поста вышли v3.4.0-v3.7.0. Ниже - что изменилось по факту.

Переезд с include на GitLab CI Components: у модуля появляется объявленный spec: inputs с типами и дефолтами, а опечатка в имени input роняет пайплайн до старта…

Когда весь трафик филиала сначала уходит в центральный ЦОД, привычная схема быстро начинает давать побочные эффекты: задержки растут, SSL‑инспекция становится дорогой, а попытка сделать обход через PBR приводит к асимметричным маршрутам.
Один из выходов — перенести принятие решений ближе к пользователю и строить маршрут с учётом его идентификатора и политики приложения. На конкретных конфигах посмотрим, как такую схему собрать с PoP, DNS, WireGuard и Envoy.

Новости информационной безопасности за неделю с 8 по 14 сентября, в одной строке с ссылками на источник. Разбиты по темам: ИИ, Уязвимости, Атаки и утечки, Исследования, Рынок, Регулирование, Медиа, Open source

В распределённых системах недостаточно знать, что сервис работает медленно или начал возвращать ошибки. Нам часто нужно понять гораздо более конкретную вещь: что произошло с одним конкретным запросом и где именно он потерял время.
Для этого существует distributed tracing — распределённая трассировка.
В этой статье разберём, зачем она нужна, из чего состоит Trace, что такое Span, как между сервисами передаётся tracing context, какую роль в этом играет OpenTelemetry и где потом смотреть собранные данные.

Один публичный IP, один 443-й порт, на нём уже работает сервис с живыми пользователями — и туда же нужно посадить второй. Менять настройки на устройствах пользователей нельзя.
Разбираю, как разделить порт между двумя TLS-сервисами, ничего не расшифровывая: SNI уходит открытым текстом в ClientHello, и nginx умеет читать его директивой ssl_preread, оставаясь для TLS прозрачным. Отдельно — почему всё держится на ветке default, чем за прозрачность платят (бэкенд перестаёт видеть реальные адреса клиентов) и когда у этого решения закончится срок годности.

Привет, Хабр! Меня зовут Александр, я работаю DevOps-инженером в команде Мир Plat.Form. Одна из достаточно сложных задач, которая стояла перед отделом DevOps, это миграция Jenkins в K8S и развертывание динамических (эфемерных) агентов.
Сама миграция Jenkins оказалась относительно простой частью. Но поскольку для сборки и деплоя наших приложений мы активно используем подход DinD (Docker-in-Docker) при переносе Jenkins-агентов в Kubernetes нам пришлось учитывать ряд технических особенностей.
Для запуска Docker внутри Kubernetes мы решили использовать Docker в режиме Rootless. Именно этот подход и добавил миграции немало технических нюансов, о которых я расскажу дальше.

WAF нужен не только крупным порталам и интернет-магазинам, но и любому сайту, доступному из интернета, – вплоть до скромной страницы с услугами или обычной корпоративной визитки. Боты не делят жертв на «достойных атаки» и «слишком маленьких»: они работают массово и автоматически, перебирая всё подряд. Разбираем, как устроен WAF, от каких атак защищает, где его разворачивают и почему он не заменяет базовую гигиену безопасности.

Вчера переехал на свой сервер. Сегодня утром обнаружил, что сайт у меня не открывается. Ни из дома, ни с телефона.
Сервер при этом в Москве, у российского хостера. И с ним всё в порядке.
Дальше про то, как я полдня искал причину, какие шесть версий проверил и выбросил, и чем всё кончилось. Если симптомы похожие, в конце готовая методика: что запускать и как читать результат.

Ранее в «Базовые модели надежности отказоустойчивого кластера» [2] были показаны теоретические подходы к построению моделей (непрерывная цепь Маркова, CTMC, Continuous‑Time Markov Chain) отказоустойчивого кластера (fault‑tolerant cluster).
Предлагаемый ниже практикум «Промпт‑инжиниринг для моделей надежности отказоустойчивого кластера» имеет цель популяризации практических расчетов надежности «подручными средствами» — через ИИ/AI (искусственный интеллект через AI‑чат, например, ChatGPT). Задача — формализовать промпты для формирования модели надежности и проведения по ней расчета стационарного коэффициента готовности, Кг.
Промпт (prompt) — запрос, текстовая инструкция, которую пользователь даёт нейросети.
Промпт‑инжиниринг — практика проектирования, итерации и верификации текстовых инструкций (промптов) для получения предсказуемых, точных и воспроизводимых результатов от больших языковых моделей (LLM).
Коэффициента готовности, напомним [1], что Кг — численно равен вероятности застать систему (в данном случае кластер) в одном из ее работоспособных состояний (сложение вероятностей каждого такого состояния). Предлагаемые подходы могут быть применены и для других сложных резервируемых структур с учетом ограничений СТМС: случайный процесс «без памяти» с дискретными состояниями и непрерывным временем, а также экспоненциальное распределение времён до отказа/восстановления, независимость отказов компонентов, см. [6], [7].
Специализированные для расчетов надёжности пакеты RAS (Reliability, Availability, and Serviceability) типа SHARPE, MEADEP, RAScad, CARMS, RAPTOR и тому подобное позволяют строить и рассчитывать сложные модели. Есть более простые системы (и бесплатные), которые можно использовать для рассмотренных ранее моделей надежности отказоустойчивого кластера, например, relind.ru. Можно использовать универсальные средства (не специализированные под расчет надёжности), например, для расчета марковских цепей, или расчеты делать непосредственно в Matlab и Mathcad и подобных. Однако все это требует достаточно высокий «порог входа» и имеет встроенные в конкретный soft‑продукт ограничения, как, по существу, так и по визуализации.

Почему миллионы начинающих пользователей боятся «нажать не туда», а видеоуроки не формируют практических навыков? Рассказываю, как создала интерактивный симулятор настольных ОС (Windows 10, 11 и Linux) с уроками и мини-играми и как это помогает безопасно осваивать компьютерную грамотность прямо со смартфона.

У меня два монитора, и я давно привык воспринимать их не как отдельные устройства, а как единое рабочее пространство. На одном код, на другом браузер, документация, терминал или что‑то ещё.
И однажды я подумал: а почему это пространство вообще должно заканчиваться там, где заканчивается физический монитор?

Старый Intel Mac с Catalina ещё рано списывать. VLESS + Reality на нём работает — но ручная настройка через V2RayXS, JSON и системный proxy быстро превращается в рутину.
Я собрал AUTO Xray: компактный клиент для macOS Catalina, который берёт на себя разбор подписки, выбор узлов и настройку proxy. В статье — как из ручного решения вырос готовый инструмент и что пришлось сделать, чтобы он стабильно работал на iMac 2013 года.

Kubernetes без магии и заучивания команд. Разберёмся, зачем он вообще нужен, как устроен кластер, чем Control Plane отличается от Worker Nodes и какую роль играют Pod, Scheduler, kubelet, etcd и другие основные компоненты.