Klarity — веб-интерфейс для просмотра состояния Kubernetes-кластеров, диагностики приложений и контроля GitOps-процессов.
📌 Подробнее: https://github.com/selvarajmurugesan90/klarity
MemOps🤨
Главная идея проекта: кластер нужно наблюдать через панель, а изменять — через Git, pull request и привычный CI/CD-процесс. Поэтому в Klarity нет универсального редактора ресурсов, позволяющего незаметно изменить YAML в обход GitOps.
Возможности:
— автоматически обнаруживать более 60 типов Kubernetes-ресурсов и установленные CRD;
— показывать Pods, Deployments, StatefulSets, Services, Ingress, PVC, RBAC, события и другие объекты;
— выводить CPU и память узлов, Pod и отдельных контейнеров через metrics-server;
— ранжировать основные потребители ресурсов;
— транслировать логи контейнеров через WebSocket;
— открывать веб-терминал в контейнере через kubectl exec;
— организовывать port forwarding прямо из браузера;
— искать ресурсы сразу по нескольким категориям;
— формировать HTML-отчёт о состоянии кластера.
Отдельно приятна автоматическая интеграция с Argo CD и Flux. Klarity обнаруживает их CRD и показывает состояние Applications, ApplicationSets, Kustomizations, HelmReleases и Git-репозиториев без дополнительной настройки.
Для нескольких кластеров можно загрузить набор kubeconfig-файлов и переключаться между контекстами из интерфейса.
Backend написан на Go, frontend — на React и TypeScript. Интерфейс встраивается в один исполняемый файл. Развернуть приложение можно через Helm или Kustomize.
Klarity — это скорее альтернатива Headlamp, Lens или веб-вариант k9s, а не полноценная observability-платформа. Здесь нет долговременного хранения метрик, централизованного хранилища логов и трассировки. Метрики берутся из metrics-server, логи транслируются напрямую, а журнал аудита хранится в ограниченном буфере памяти.
MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - selvarajmurugesan90/klarity: Enterprise Kubernetes observability dashboard — read-only, GitOps-first, auto-discovery,…
Enterprise Kubernetes observability dashboard — read-only, GitOps-first, auto-discovery, user management, and native ArgoCD/Flux integration - selvarajmurugesan90/klarity
👍3
ksolver — оптимизатор затрат на инфраструктуру Kubernetes. Подключается к работающему кластеру (или сохраненному снапшоту), собирает все ограничения планировщика (
📌 Подробнее: https://github.com/syslenslabs/ksolver
MemOps🤨
scheduling constraints) и использует constraint programming (CP-SAT) для поиска наиболее дешевого парка узлов, который гарантированно удовлетворяет всем правилам размещения.MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - syslenslabs/ksolver
Contribute to syslenslabs/ksolver development by creating an account on GitHub.
Docker для параноика: организация SSH‑доступа для rootless‑контейнера без передачи приватного ключа
📌 Подробнее: https://habr.com/ru/articles/1087148/
MemOps🤨
Примонтировать ~/.ssh в контейнер с флагом :ro — и вроде как позаботился о безопасности. Только приватный ключ при этом всё ещё можно прочитать и утащить. От этого read-only не спасает.
В этом разборе на Хабре рассказывают о том, как дать rootless-контейнеру SSH-доступ через ssh-agent, оставив сам ключ на хосте. Пригодится для автоматизации, работы с приватными репозиториями и ИИ-агентов, которым нужен Git.
Rootless Docker имеет свои нюансы: UID пользователя внутри контейнера преобразуется в другой UID на хосте, поэтому просто пробросить сокет агента недостаточно.
Оказывается, доступ к сокету всё ещё позволяет пользоваться загруженным ключом. Если контейнер взломали, злоумышленник сможет выполнять доступные этой SSH-идентичности операции, пока имеет доступ к агенту. Сам приватный ключ через штатный протокол агента при этом не выдаётся.
MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
Bombini — runtime security агент на eBPF, целиком написанный на Rust с библиотекой Aya.
📌 Подробнее: https://bombinisecurity.github.io/bombini/
MemOps🤨
Он построен на BPF LSM хуках и состоит из модульных детекторов, которые отслеживают процессы, файловые и сетевые операции, а также взаимодействие с eBPF-подсистемой ядра.
Самое интересное здесь — rule engine, который целиком работает внутри eBPF в отличие от Falco, где правила вычисляются в user mode части агента. Правила пишутся в YAML с булевыми предикатами (AND/OR/NOT, in, CIDR для IPv4/IPv6, списки и макросы). Каждое правило компилируется как программа: парсер строит AST,оптимизационные проходы его упрощают, а на выходе получается байткод в обратной польской записи. Байткод загружается в eBPF-мапы и исполняется прямо в ядре собственным RPN-интерпретатором. Поэтому фильтрация происходит до отправки событий в userspace, и накладные расходы минимальны. Для правил есть sandbox-режим в вариантах allow-list и deny-list, в отличие от Tetragon, где реализован только deny-list способ.
Отдельно стоит отметить детектор SysEnumMon, аналогов нет ни в Falco, ни в Tetragon. Обычно в eBPF-агентах одно срабатывание хука даёт одно событие. SysEnumMon работает иначе: он собирает наблюдения с нескольких хуков (запуск бинарей и открытие файлов), коррелирует их внутри дерева процессов в скользящем временном окне и принимает решение прямо в eBPF. Так он ловит сканеры вроде LinPEAS и LinEnum, хотя каждое их действие по отдельности (id, uname, чтение /etc/passwd) выглядит легитимно.
MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤯2
Выучил Go. Горутины, каналы, интерфейсы — всё понятно.
А потом реальная задача: опросить 300 хостов, не положить чужой API ретраями и корректно остановиться по SIGTERM.
И пустой main.go 🫠
Туториалы учат синтаксису. Никто не рассказывает, почему:
— ретраи без джиттера добивают поднявшийся API
— незакрытый resp.Body съедает пул соединений
— liveness-проба с проверкой БД отправляет весь кластер в каскадный рестарт
— горутины «работают», а под -race сыпятся гонки
«Go для DevOps/SRE» закрывает разрыв между «знаю Go» и «пишу на Go инфраструктурные утилиты».
Внутри:
— CLI-утилиты, os/exec, graceful shutdown
— Параллельный опрос хостов, worker pool, отмена по первой ошибке
— HTTP-клиент для прода: таймауты, backoff с джиттером, идемпотентность
— Метрики Prometheus, экспортёры, правильные /livez и /readyz
31 урок, 29 задач с автопроверкой.
🎁 −30% по промокоду GODEVOPS до 3 октября
https://tglink.io/d40bd88310687d?erid=2W5zFHnEoay
А потом реальная задача: опросить 300 хостов, не положить чужой API ретраями и корректно остановиться по SIGTERM.
И пустой main.go 🫠
Туториалы учат синтаксису. Никто не рассказывает, почему:
— ретраи без джиттера добивают поднявшийся API
— незакрытый resp.Body съедает пул соединений
— liveness-проба с проверкой БД отправляет весь кластер в каскадный рестарт
— горутины «работают», а под -race сыпятся гонки
«Go для DevOps/SRE» закрывает разрыв между «знаю Go» и «пишу на Go инфраструктурные утилиты».
Внутри:
— CLI-утилиты, os/exec, graceful shutdown
— Параллельный опрос хостов, worker pool, отмена по первой ошибке
— HTTP-клиент для прода: таймауты, backoff с джиттером, идемпотентность
— Метрики Prometheus, экспортёры, правильные /livez и /readyz
31 урок, 29 задач с автопроверкой.
🎁 −30% по промокоду GODEVOPS до 3 октября
https://tglink.io/d40bd88310687d?erid=2W5zFHnEoay
😁6
rune — быстрый, ускоряемый графическим процессором, полнофункциональный IDE и терминальный мультиплексор, подходящий как для автоматического, так и для ручного программирования.
📌 Подробнее: https://github.com/unstablebuild/rune
MemOps🤨
MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - unstablebuild/rune: the development environment for pros
the development environment for pros. Contribute to unstablebuild/rune development by creating an account on GitHub.
👍2