Кубертатный период


Гео и язык канала: Россия, Русский


DevOps Underdog

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Статистика
Фильтр публикаций


Helm mapkubeapis Plugin

mapkubeapis is a Helm v3 plugin which updates in-place Helm release metadata that contains deprecated or removed Kubernetes APIs to a new
instance with supported Kubernetes APIs

Оказывается нельзя просто так через helm upgrade обновить apiVersion resources если старая версия API больше не доступна в кластере. Вот плагин который заменит старый API в сохранённом манифесте и создаст новую ревизию Helm-релиза.

https://helm.sh/docs/topics/kubernetes_apis/


When I was an SRE at LinkedIn, back in 2012, I designed a system that could heal itself and learn from previous incidents. AI capabilities were nowhere near what we have today, and that remained a prototype, but this is now a reality.

These tools do it all: inspect alerts, form hypotheses, query telemetry, correlate recent deployments, and even implement the fix themselves. As much as I love to see it, I have a major concern: we are losing touch with our systems.


"We are losing touch with our systems"


Ваши разрабы не хотят разгребать легаси и рефакторить кронтаски в отдельный scheduler с очередью?
У вас есть сотни кронтасок в проде, которые вы хотите таки контролировать в контейнерах?
У вас айсикью выше 70, раз вы все еще не описали каждую строку crontab в отдельном Kubernetes ресурсе (Job/Cronjob)?

тут уже говорили про недостатки крона
Supercronic пытается решить некоторые из них: кронтаски наследуют переменные окружения, выводит логи в stderr, логирует запуски результат выполнения и ошибки, посылает SIGTERM/SIGINT и что-то там еще.

Supercronic is a crontab-compatible job runner, designed specifically to run in containers.


Legacy не убить!


Еще один UI для Kubernetes. Будет где штурвал крутить теперь.

обещают "лучшие логи в вашей жизни"

https://github.com/luxury-yacht/app


Репост из: DevOps&SRE Library
Luxury Yacht

Luxury Yacht is a cross-platform GUI desktop app for managing Kubernetes clusters and resources.


https://github.com/luxury-yacht/app


Service Temporarily Unavailable


Полдня на проектирование конфигурации или годы поддержки семи названий одного endpoint.

Разраб! Потрать в следующий раз 2-4-8 часов на проектирование конфигурации и создание единого типизированного конфига.
То, что ты захуярил задачу за несколько часов и забыл о ней, может возбудить только менеджмент. Менеджмент, который ещё не успел поесть говна от решений, сделанных спустя рукава.
А когда начнёт причмокивать — всё равно ничего не поймёт. По истории коммитов найдут последнего, кто менял конфиг, и попросят его «просто быть внимательнее» при изменении семи ключей, лежащих в семи разных местах.

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


💡 А вы знали, что Trivy Operator может автоматически искать уязвимости в ваших workloads, сканируя используемые образы и предоставляя отчеты с CVE прямо в кластере.

Дашборда правда не нашлось, пришлось сгенерить по шустрому — https://github.com/pashtet04/grafana-dashboards/blob/main/trivy-operator.json

За короткое время были обновлены большая часть инфраструктурных сервисов
CRITICAL ⬇️26% HIGH ⬇️20%

2k 1 55 11 29

Еще один пример XY Problem

В аппку летит кривой реквест (не тот хост, заголовок или еще что-то — неважно).

И вместо того чтобы задаться вопросом
почему

начинается
а давайте перепишем код, чтобы он переписывал реквест на правильный


И это барахло вроде даже работает.

Но проблема никуда не делась. Потом это всплывёт в самом тупорылом месте: на втором домене, в другом окружении, за CDN, после смены балансира, при переезде в другой ingress/controller/платформу.

Не говоря уже о том что часто такое решение сопровождается кривым нечитаемым и неинтуитивным кодом. Не надо так делать — пытайтесь лечить причины, а не симптомы


🛰 STUNner: если вам нужен способ протащить WebRTC media в приватный Kubernetes...

...а у нод нет публичных IP, а приложению нужно принимать WebRTC media traffic по UDP/TCP. И с media traffic уже начинается боль: UDP, NAT traversal, TURN, ICE и прочие радости WebRTC 🫠

📡 STUNner как раз решает эту проблему: он работает как Kubernetes-native TURN Gateway и позволяет завести WebRTC media traffic в кластер, не открывая ноды наружу, без hostNetwork и без виртуалок с NAT/TURN.


fix(controller): preserve HPA-managed deployment replicas

небольшой PR в Apache Superset Kubernetes Operator: исправил (конечно же с помощью ИИ 🤖) reconcile при включенном автоскейлинге

Суть простая: если включен HPA, то оператор не должен управлять Deployment.spec.replicas. этим должен заниматься HPA. Иначе случается карусель, HPA скейлит вверх, а spec.replicas сразу терминирует поды.

Еще один шильдик на GitHub за контрибьют в open source

🐘


Репост из: ITTales :(){ :|:& };:
Зацените какую штуку тут товарищ написал:
https://github.com/crust-gather/crust-gather

Она сохраняет стейт Kubernetes кластера в OCI-имадж (со всеми CRD, статусами, ивентами, подами и их логами)

Потом его можно запустить локально и в нем покопаться обычным kubectl. Можно клода натравить, можно k9s, и т.п.

Идеально подходит чтобы интегрировать в свой пайплайн. Написано на rust'е.

Завтра будет рассказывать о ней на KCD
https://kcd-czech-slovak-2026.sessionize.com/session/1195463

(есть прямая трансляция)

234 0 11 3 14

We’re excited to introduce opensource vmestimator, a new component in the VictoriaMetrics ecosystem.

vmestimator measures metrics cardinality across arbitrary label dimensions and exposes the results as Prometheus-compatible metrics. It helps to understand where cardinality comes from, track how it evolves over time, and build early-warning alerts before cardinality becomes a problem.

If you’re operating Prometheus-compatible monitoring systems and want realtime visibility into metric cardinality, give vmestimator a try. We’d love to hear your feedback and learn more about your use cases.

Read more about its design and configuration in the documentation, or explore it yourself in the playground.


Репост из: ZVLB. Tech
Наткнулся на очередную статью: «Zero-Downtime Deployments with Docker Compose — No Kubernetes Required». Автор прямо пишет - в индустрии, мол, массовое заблуждение, что для серьёзного прода нужен k8s. Не нужен. Тысячи проверок в минуту, мульти-регион, деплой по нескольку раз в день - и всё на компоузе.
И тут он прав. Для одного хоста и пары сервисов Kubernetes - это из пушки по воробьям. Бесшовно перекатить контейнер умеет и nginx, никакой оркестратор для этого не нужен.

Только это подмена тезиса. В k8s идут не за zero-downtime деплоем - за ним и так все умеют. Идут за другим.
Первое - пул машин. Compose заперт в пределах одного хоста. В комментах это сразу и поймали: «тысячи проверок в минуту - это вообще немного, спокойно живёт на одной железке. Kubernetes берут, когда надо выйти за её пределы». Вот и весь спор.

Второе - стандарт. k3s ставится за пять минут, и ты получаешь готовую вселенную типового тулинга. Новый человек приходит с любого облака и сразу в теме. А не разбирает полгода твой самодельный оркестратор из bash'а и скотча.

Лучший коммент в треде - вообще не про технику. Человек честно признался: «взяли инструмент попроще, проект взлетел - и все эти "сложные" фичи k8s внезапно стали нужны. Зря не взяли сразу». Знакомо до боли. 🤡🤡

Короче. «Не нужен Kubernetes» - честный заголовок. Просто допишите в конце: «пока у тебя один хост». А на втором десятке нод поговорим заново.

#kubernetes #docker #devops


Кто-нибудь пользуется GnuCash? Мне как обычно было нехуй делать утром и я запили дашборд.

https://gist.github.com/pashtet04/ebd3d1a4e0f5253a835b622f7d8a9913


Зумеры — они такие

536 0 3 12 15

Кстати пост написан с применением ЕИ


полгода назад ко мне пришли с вопросом, мол, есть какой-то сервис что-то про «ембеддинги», я особо не разбирался: ну еще какой-то микросервис где-то, хотим масштабирование «scale to 0». вводная при этом звучала конкретно: скейлиться нужно на основе кастомной метрики очереди — в очереди есть сообщения, значит поднимаем сервис, нет сообщений — 0. ну и я в общем-то почти не думая сразу вкинул про Keda, обрисовал что такое как работает и зачем.

я еще пару раз слышал, что с этим вопросом еще разбираются, попутно удивляясь, почему так долго: ведь очередь есть, сообщения там есть, сервис есть.. осталось лишь воткнуть ScaledObject и все.. но не так то просто! как я тогда это понял: есть queue-driven workload, которому просто не хватает autoscaler’а.

Проходит 8 месяцев, в репо Helm чарт (там большой umbrella chart с одной зависимостью в виде default chart) вижу MR, в котором добавлена возможность описать «сайдкар» для того самого сервиса «ебмеддинг». я слегка охуев от такой задумки, пошел разбираться че за хуйня.

Выяснилось: сервис «ембеддинг» не работает с Amqp, а идея была скейлиться на основе очереди, а значит был написан сервис адаптер на пайтоне, который читает очередь и отправляет запросы в ембеддинг. а работают они в одном поде, чтобы таким образом балансировать нагрузку.
Я в очередной раз ахуев, пошел смотреть что это за сервис такой у них, и тут оказалось что это модель с hugging face которая сервится через тулкит на Rust, который называется text embedding inference, в который просто посылают http запросы и который по сути обычный прикол из интернета third-party (по сути готовый inference server, а не наш бизнес-сервис), а его воткнули в в релизный цикл со всеми другими разрабатываеми сервисами.

Как же важно легкая осведомленность! Я взял Knative Serving, выкинул тот MR, добавил включение/выключение knative на описанном сервисе, перевел этот инференс на knative service, настроив масштабирование от нуля и все заработало. и внезапно задача, которая 8 месяцев обрастала адаптерами и сайдкарами, схлопнулась до нормального serverless HTTP-serving паттерна менее чем за сутки, а то и несколько часов.


Репост из: Кубертатный период
SDLC который мы заслуживаем


Репост из: Pavel Klyuev
ставит приложение в кубер helm чартом, через аргосд, в котором плагины на баше, которые через kustomize создают секреты из репо поиском по *.yaml с приправами башей для волта

в какой момент чатгпт должен был встать и огреть его по голове?

Показано 20 последних публикаций.