惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Last Watchdog
The Last Watchdog
AI
AI
Recent Announcements
Recent Announcements
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
J
Java Code Geeks
TaoSecurity Blog
TaoSecurity Blog
L
LangChain Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Microsoft Security Blog
Microsoft Security Blog
量子位
T
Threatpost
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - Franky
博客园 - 聂微东
L
LINUX DO - 最新话题
Security Archives - TechRepublic
Security Archives - TechRepublic
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
C
Check Point Blog
宝玉的分享
宝玉的分享
G
Google Developers Blog
Spread Privacy
Spread Privacy
Cloudbric
Cloudbric
SecWiki News
SecWiki News
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
W
WeLiveSecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
V
Vulnerabilities – Threatpost
Cyberwarzone
Cyberwarzone
A
Arctic Wolf
P
Privacy & Cybersecurity Law Blog
P
Palo Alto Networks Blog
H
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
A
About on SuperTechFans
N
Netflix TechBlog - Medium
罗磊的独立博客
月光博客
月光博客

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Torque — ваши сверхспособности для отладки k8s
antonkrylov · 2026-05-27 · via Все публикации подряд на Хабре

4 мин

8.5K

Kubernetes ближе к Linux: много компонентов, контроллеров, CRD, операторов и внешних проектов собираются в живую экосистему. Сила там в открытом расширении и конкуренции подходов. Torque я пытаюсь делать ближе к FreeBSD и SQLite: меньше россыпи деталей наружу, больше «батарейки включены», единая система с документацией, доказательствами, логами и объяснениями внутри. Но начинался проект с инстурмента для дебага поэтому давайте рассмотрим как использовать Torque для отладки в k8s.

Torque может одной командой собрать и развернуть весь проект

Torque может одной командой собрать и развернуть весь проект

Для примера будем использовать Grafana, Fluent Bit, Loki canary и маленький вспомогательный chart с двумя репликами и двумя контейнерами, которые печатают JSON-логи. Такой набор удобен для отладки: есть нормальный веб-сервис, daemonset-сборщик, намеренно сломанная связь с Loki и структурированные ошибки приложения.

Я специально оставил в сценарии несколько неприятных условий: неприкрепленные digest-образы, отсутствующий Loki service, ранний readiness race у Grafana и шумный daemonset, читающий node logs. Поэтому статья показывает не идеальный happy path, а нормальную инженерную работу: найти риск до apply, увидеть план, затем доказать причину по логам.

Сначала verifier

Отладка начинается до мутации кластера. verifier рендерит chart теми же values, которыми потом будет пользоваться релиз, и проверяет Kubernetes-политику: securityContext, автомонтирование service account token, probes, ресурсы, RBAC и другие рискованные места. В этом прогоне отчеты были записаны для всех четырех чартов, а HTML-версии сохранены для Grafana и Fluent Bit. Это важно: когда релиз ломается, оператор видит не абстрактное “Helm failed”, а точный список допущений, с которыми chart пошел в кластер.

verifier --chart ./grafana --release wr-grafana -n torque-debug \
  --values values/grafana-debug.yaml \
  --mode warn --fail-on critical \
  --format json --report reports/verifier-grafana.json
Torque plan и verifier может найти баг задолго до релиза

Torque plan и verifier может найти баг задолго до релиза

Потом Helmer-style план

Следующий слой - план. В текущей ветке Torque интерактивный Helmer-style отчет делается через torque apply plan --visualize. Он показывает, какие объекты будут созданы или обновлены, какие манифесты получились после values, и какие verifier-отчеты прикреплены к плану. Для отладки это полезнее, чем смотреть только live pods: план отвечает, почему Kubernetes вообще получил такой Deployment, DaemonSet, ServiceAccount или Service. В моем запуске были созданы HTML-планы для Grafana, Fluent Bit, Loki canary и JSON log lab.

torque apply plan --chart ./fluent-bit --release wr-fluent -n torque-debug \
  --values values/fluent-bit-debug.yaml \
  --verify-report reports/verifier-fluent-bit.json \
  --visualize --format html --output reports/helmer-fluent-bit-plan.html
Пример плана

Пример плана

Apply с доказательствами

После проверки и плана я сделал apply для релиза через torque apply с --predict, --proof-bundle и --capture. Grafana поднялась за 21 секунду, Fluent Bit - примерно за 3 секунды, Loki canary был применен без ожидания готовности downstream Loki, а JSON log lab поднял две реплики. Torque заранее отметил риск из-за image references без digest pinning и сохранил apply-сессии в SQLite. Это дает точку возврата: если дальше логи покажут проблему, ее можно связать с конкретной версией chart, values, планом и фактическим apply.

torque apply --chart ./grafana --release wr-grafana -n torque-debug \
  --values values/grafana-debug.yaml \
  --predict \
  --proof-bundle=reports/grafana-apply-proof.json \
  --capture=captures/grafana-apply.sqlite \
  --timeout 4m --yes

Пять сложных случаев логирования

Главная часть лабы - torque logs. Я собрал пять реальных кейсов. Первый: Grafana по label selector с --events и highlight, где Kubernetes-события показали ранний readiness failure, хотя deployment позже стал healthy. Второй: Fluent Bit DaemonSet, где логи плагина показали wr-fluent-loki:3100 DNS lookup failure и mem buffer pause. Третий: Loki canary, который печатал сообщения и одновременно показывал ошибку URL для tail/query к отсутствующему Loki. Четвертый: deploy/wr-grafana с --deploy-mode stable+canary, где Torque сам выбрал ReplicaSet по Deployment. Пятый: JSON workload с --filter level=error, где из двух pod и двух контейнеров остались только ошибки API 502 и worker dead-letter события.

torque logs -n torque-debug \
  -l app.kubernetes.io/instance=wr-json \
  --diff-container --filter level=error \
  --highlight '"level":"error"|timeout|dead letter|502' \
  --capture=captures/05-json-filter-errors.sqlite \
  --tail 120 --timezone UTC

Почему capture важнее копипаста

Каждый log case был сохранен в SQLite через --capture, а потом разобран командой torque explain. Это меняет стиль отладки. Вместо того чтобы вставлять в чат 300 строк терминала, можно передать файл и короткое объяснение: primary cause, failure hints, affected pod/container и команду для повторного анализа. Для Grafana explain выделил readiness probe connection refused. Для Fluent Bit - ошибку отправки batch в несуществующий Loki service. Для JSON log lab - конкретные строки с level=error, статусом 502, trace id и dead-letter очередью.

torque explain

torque explain

Практический порядок

Рабочий порядок получается простым. Сначала запускайте verifier и сохраняйте JSON/HTML, чтобы политика была видна до apply. Затем делайте Helmer-style план через torque apply plan --visualize и прикрепляйте verifier report, чтобы diff, ресурсы и риски были в одном HTML. Потом применяйте chart через torque apply --predict --proof-bundle --capture. Когда начинается отладка, используйте torque logs не как замену kubectl logs, а как контекстный инструмент: selector, events, deployment lens, JSON filter, highlight, timezone и capture. В конце всегда прогоняйте torque explain по SQLite-файлу. Тогда отладка Helm-релиза становится не воспоминанием оператора, а проверяемым артефактом.

PS. Torque умеет работать с MCP. Разработчик на Mac OSX может работать с удаленным сервером Linux на котором установлен Torque как сервис и закручены "гайки".

MCP

MCP