Кубертатный период
480 subscribers
144 photos
10 videos
3 files
319 links
DevOps Underdog
Download Telegram
Forwarded from Кубернетичек
Time-Slicing GPUs in Kubernetes. Но есть нюанс - с мониторингом этого - проблемы.
322
Мартин Фаулер в своей статье описывает, как применить паттерн Strangler Fig для постепенного разделения монолита в мобильной разработке.

По сути, этот подход предполагает переписывать или заменять устаревшие части кода, не разрушая всё приложение сразу. Те, кто хочет все выкинуть и переписать все "с нуля" -- мимо.

Суть в том, чтобы обвивать монолит новыми компонентами, замещая старый функционал частями новой архитектуры. Это снижает риски и позволяет модернизировать продукт поэтапно. Особенно полезно для тех, кто хочет перейти от монолитного мобильного приложения к более модульной архитектуре.
3👍53🦄1
Forwarded from Stanislav
Stackoverflow кажись
4👍2
VictoriaMetrics реализуют собственную библиотеку стандарта OpenTelemetry, так как, по мнению разработчиков, OpenTelemetry излишне сложный и перегружен функциональностью, которая редко используется на практике, а также призывают сообщество к упрощению стандартов и повышения производительности.

https://www.datanami.com/2024/04/01/opentelemetry-is-too-complicated-victoriametrics-says/
1👍731
Forwarded from k8s (in)security (r0binak)
Наверняка если вам нужно изучить структуру какого-нибудь ресурса из Kubernetes вы идете в документацию и смотрите API Overview.

Но это не всегда бывает удобно, поэтому сегодня хотим порекомендовать вам ресурс kubespec.dev. По сути это тоже своего рода структурированная документация по структурам ямлов всех Kubernetes ресурсов, но в более удобном и красивом отображении.

Из плюсов можно добавить возможность сравнения ресурсов между собой по версиям, примеры манифестов, а также поддержку кастомных ресурсов, например Kyverno, Cilium, Istio и т.д.

Проект появился недавно и активно развивается, так что в скором времени можно увидеть и другие фичи.
1👍741
Please open Telegram to view this post
VIEW IN TELEGRAM
143👍1
🎄С Новым годом, друзья! 🎉

Пусть в новом году ваши проды остаются в строю 🏋️‍♂️, все сложные задачи решаются стабильными и простыми решениями 🧩, а вложения — будь то время, усилия или ресурсы — приносят только пользу и рост ↗️.

Желаю вам меньше багов 🐛, больше автоматизации 🤖, и чтобы каждый новый деплой был не только успешным, но и поводом для гордости! 🚀

Пусть 2025-й год будет годом развития, удачи и новых возможностей! Счастливого Нового года! 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍107🦄2
This media is not supported in the widget
VIEW IN TELEGRAM
12🦄21
Docker Hub будет позволять только до 10 скачиваний образов в час без аутентификации, начиная с 1 марта

https://docs.docker.com/docker-hub/usage/
1🦄632
This media is not supported in your browser
VIEW IN TELEGRAM
AI-тулы, которые бустят производительность в работе с Kubernetes
Решил рассказать про пару штук, которые упрощают жизнь SRE-шнику.

🚀 k8sgpt
Сканирует кластер, вылавливает косяки и сразу выдаёт, как их пофиксить. Недавно выручил: ночью словил алерт, а он за минуту показал, что поды дохнут из-за кривого health check’а. Пока я курил, он уже всё разложил по полочкам.

Если стандартных проверок мало, пишите свои анализаторы — штука гибкая, под себя заточить проще простого. Цепляйте локальные модели вроде LocalAI — работает чётко.

🛠 karpor
UI, где поиск по ресурсам — хоть текстом, хоть SQL, хоть "эй, где мой под упал?". AI-агент ещё и саммари выдаёт: что нарушает лучшие практики. Штука мощная, если лень копаться руками.

👩‍💻 kube-copilot
От Azure. Аудит подов на безопасность, диагностика багов, проверка практик. Плюс рулите кластером через промпты — типа "перезапусти этот под". Для ленивых — топ.

📖 Ещё тулов ищите тут.
А вы юзаете такое?
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍332👎2
Мой первый работодатель валит каверзными вопросами
22🦄1
Forwarded from do IT right
Сегодня я к вам с загадкой 🕵️‍♂️

Некий злодей взломал наш домен Active Directory. Но почему-то единственное, что он сделал — создал две рядовые учётные записи: одну для компьютера, другую для пользователя. Вот как на скриншотах.

С виду — обычные непривилегированные учётки.

Но на деле — у них самые большие права в домене.

Вопрос: как такое возможно? Назовите хотя бы два способа.
13👍21
CD и Фаулер: что на самом деле означает “Continuous Delivery”

Когда говорят “CI/CD”, обычно имеют в виду: “я запушил код — он магически оказался в проде”. Но это не Continuous Delivery. Настоящий CD — это не про кнопки “Deploy” и не про джобы в GitLab CI. Это про то, как код попадает к пользователям быстро, безопасно и непрерывно.

Что такое CD по Фаулеру
Continuous Delivery (CD) — это подход, при котором каждое изменение кода потенциально готово к продакшену. Это не значит, что код выкатывается мгновенно, но если понадобится — он может быть развернут в любой момент.

Фаулер выделяет три ключевых аспекта CD:

1. Код готов к деплою в любой момент, а значит:
- Каждая фича или фикс проходят полный цикл тестирования.
- Код хранится в рабочем состоянии в любой момент времени.
- Нет отделения “стабильного кода в main” и “свалки разного в develop” — код в принципе можно катнуть всегда (хотя фича и не всегда в нём будет доступна пользователям).
2. У вас есть автоматизация доставки
- Тесты, сборки, деплой — всё автоматизировано. Если нет — вы не сможете дешёво принимать решение о стабильности кода каждый раз, когда это вам надо.
- Минимум ручного труда: нажал кнопку — код улетел в прод.
3. Вы не боитесь деплоить
- Можно катить обновления хоть десять раз в день, потому что всё контролируемо.
- Есть откаты, фичетогглы, канареечные релизы.

Прийти к такому идеальному состоянию не просто, он требует экстремальной технологической диктатуры. Однако, у Фаулера можно многому вдохновиться, особенно если:

💩 Ваш код накапливается в develop или — ещё хуже — в feature-ветках и неделями ждёт релиза.

🧎 Деплой идёт вручную, с “ночным окном” и мантрами “ну давай, родимый”, или требует сложных приседаний в том, в какой очерёдности что катить.

🤣 Миграций схемы базы данных или автоотката релиза у вас нет, а если что-то сломалось — специально обученные эксперты чинят на горячую.

😳 Релизить по пятницам нельзя — ведь тогда ой-ой-ой — придётся работать в выходные
Please open Telegram to view this post
VIEW IN TELEGRAM
8622
Abstraction Debt в IaC — когда абстракции начинают мешать

Прочитал заметку про то, как абстракции в Infrastructure as Code могут выйти боком: [тут]

At some point, abstraction reaches a point of diminishing returns, where the overhead required to maintain and debug it outweighs the benefits of reuse.


Суть в чём: на каком-то этапе поддерживать и дебажить эти слои абстракций становится дороже, чем вся польза от их переиспользования.

🚨 Пример из жизни
Смотришь в .gitlab-ci.yml — стадия деплоя вызывает кастомный образ. В нём обязателен конкретный entrypoint, который запускает питоновский cd-deployment-install. А тот ещё и шаблонизируется через Ansible с Jinja2. Поди задебажь, где оно сломалось, когда всё в кучу.

🔧 Или ещё хуже
Нельзя просто взять и поменять версию рантайма. Новый образ для пайплайна не воткнёшь — приходится перелопачивать всю цепочку этой адовой конструкции.

Выводы
Слои абстракций — это круто, пока они не превращаются в головняк. Если деплой или дебаг занимает больше времени, чем написание с нуля — пора резать лишнее. И да, держите документацию на такие "гениальные" задумки, а то потом сам не разберёшь.
5👍622
Forwarded from ZVLB. Tech (Vladimir Zemtsov)
Grafana OnCall - все. Поигрались 3 годика, и хватит)

Grafana Labs объявила, что с 11 марта 2025 года OnCall (OSS) переходит в режим maintenance, а через год и вовсе отправится в архив. Для тех, кто, как и я, уже обжёгся на его настройке, это не стало неожиданностью.

Для начала пару моментов, почему, по моему мнению, OnCall не взлетел:
1. Зоопарк зависимостей
Для работы требовались Grafana, MySQL, Redis, RabbitMQ, а ещё — куча времени на их интеграцию.
2. Сложность настройки уведомлений
SMS и push-нотификации зависели от Grafana Cloud, что убивало идею self-hosted.
3. Отсутствие удобных и знакомых подходов
Лично меня сильно оттолкнуло 2 года назад, что у алертов не было никаких label'ов, по которым их можно было бы группировать и объеденять. После моих тестов этот функционал был внедрен, но для меня - уже было поздно. Первое впечатление - негатив
4. Деньги
По факту никто не отказывется от OnCall's. Просто он станет частью Grafana IRM, для пользования которым надо... Заплатить. ТО ЕСТЬ! Эти ребята выкинули в OpenSource сырой продукт. Подкрутили его вместе с сообществом, Чтобы он стал удобным, и мигрируют его в свой Cloud на платную основу. КРАСАВЦЫ! (Да. Вы можете форкнуть OnCall и самостоятельно вести его развитие, но каммон...)

___

Что значит «maintenance mode» для пользователей?
- До 24 марта 2026 OnCall (OSS) будет получать только критические фиксы (CVSS ≥ 7.0).
- Мобильное приложение IRM перестанет работать с self-hosted OnCall через год.
- SMS и push-уведомления отвалятся, так как они завязаны на Grafana Cloud.

Grafana предлагает перейти на Cloud IRM — гибрид OnCall и Incident с «единым интерфейсом». Но если вы, как и я, не хотите зависеть от облака - это не выход.

В общем, для тех, кто как и я особо не двигался с AlertManager-стека все круто. Не двигаемся дальше ;)

#zvlb_musle #grafana #oncall
👍7👎2
Kaniuse — визуализация Kubernetes API для каждой из версий

"Инфографика" изменений Kubernetes API по версиям. Теперь можно глянуть, как стадии фич меняются, без тонны текста.

🚀 Смотрите, какие фичи в Alpha, Beta или GA, и как они меняются между версиями. Всё наглядно, с цветами и фильтрами.

Чтобы не копаться в доках часами — открыл, увидел, понял. Плюс, если пишете что-то под K8s, сразу видно, что нужно и можно использовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍21
STUN/TURN в Kubernetes

Вы хотите принять входящий RTP-трафик по UDP в приватном кластере Kubernetes. Что делать?
Динамические порты для VoIP (RTP) в приватном кластере — интересная задачка. Особенно если ноды без публичных IP, а трафик нужно принять снаружи. А еще в Kubernetes открыть диапазон портов для сервиса можно, например, с hostNetwork: true, потому что NodePort не поддерживает диапазоны портов. Кстати, с 2016 года висит issue — диапазоны портов на NodePort так и не подвезли.

🚀Тут выручают STUN и TURN.

☎️ VoIP-сессии (RTP) используют диапазон портов, а NAT и фаерволы могут это осложнить. STUN помогает клиентам узнать свой публичный IP и порт через NAT. TURN берёт на себя роль релея, если прямой путь заблокирован.

🌎 STUN: клиент отправляет запрос на STUN-сервер, получает ответ с внешним IP и портом. Потом сам решает, как отправлять пакеты. Быстро и просто, но не работает с симметричным NAT.
🔗 TURN: клиент подключается к TURN-серверу, тот выделяет порт и перенаправляет трафик.

🔧 Есть coturn — проверенный opensource-сервер для STUN и TURN. Разворачиваете с двумя сетевыми интерфейсами (приватным и публичным), настраиваете порты (обычно 3478 для STUN, плюс релейные для TURN), добавляете TLS для защиты. Поды VoIP-сервиса в K8s цепляются к нему через конфиги.

STUN хорош для простых сценариев, TURN — для сложных. В приватном K8s они спасают RTP от проблем с NAT и фаерволами. Coturn выручает, если хочется свой сервер вместо облачных сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍433🦄2
💡 kubectl explain

А вы знали, что kubectl explain выдает полную спеку ресурса с описанием всех параметров?

Например kubectl explain pods.spec.containers

🚨 А еще, если добавить
--recursive
, то покажет все возможные поля с описанием.

А так же, есть плагин https://github.com/keisku/kubectl-explore

What’s lacking in the original kubectl-explain?

- kubectl explain requires knowing in advance the resource name/fields.
- kubectl explain requires typing the accurate path to the resource name/field, which is a tedious and typo-prone.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍931