Forwarded from 𝚔𝚟𝚊𝚙𝚜
Через 20 минут буду рассказывать про Kubernetes Aggregation API Layer на DevOpsDays Almaty
Прямая трансляция:
https://www.youtube.com/live/8WLM2zrn8Qw
Прямая трансляция:
https://www.youtube.com/live/8WLM2zrn8Qw
YouTube
DevOpsDays Almaty 2025
DevOpsDays — это международная техническая конференция, которая развивает локальные IT-сообщества.
Таланты, специалисты и компании собираются вместе, чтобы послушать доклады лидеров отрасли программного обеспечения, эксплуатации IT-инфраструктуры и их пересечения.…
Таланты, специалисты и компании собираются вместе, чтобы послушать доклады лидеров отрасли программного обеспечения, эксплуатации IT-инфраструктуры и их пересечения.…
👍7🔥3
Мы подружили Talos с ванильным Kubernetes control-plane 🎉
Недавно, благодаря совместным усилиям Ænix и CLASTIX, появилась рабочая группа, для добавления поддержки ванильного Kubernetes control-plane в Talos Linux.
В рамках этой задачи только что был опубликован проект talos-csr-signer. Он реализует функциональность сервиса trustd, встроенного в Talos Linux.
Принцип работы простой: когда Talos-нода загружается и подключается к кластеру, она отправляет запрос на
Что это нам даёт?
- Думаю что в скором вы сможете ожидать полноценную поддержку Talos Linux воркеров в Kamaji
- В Cozystack появится возможность на лету менять версию Kubernetes-воркеров, и использовать предустановленные GPU-драйверы.
Ещё один рабочий пример совместной работы с комьюнити. Рад, что такой формат продолжает себя оправдывать.
Недавно, благодаря совместным усилиям Ænix и CLASTIX, появилась рабочая группа, для добавления поддержки ванильного Kubernetes control-plane в Talos Linux.
В рамках этой задачи только что был опубликован проект talos-csr-signer. Он реализует функциональность сервиса trustd, встроенного в Talos Linux.
Принцип работы простой: когда Talos-нода загружается и подключается к кластеру, она отправляет запрос на
<control-plane>:50001, чтобы получить подписанный сертификат. После этого можно общаться с нодой через Talos API, используя сертификат, подписанный тем же CA.Что это нам даёт?
- Думаю что в скором вы сможете ожидать полноценную поддержку Talos Linux воркеров в Kamaji
- В Cozystack появится возможность на лету менять версию Kubernetes-воркеров, и использовать предустановленные GPU-драйверы.
Ещё один рабочий пример совместной работы с комьюнити. Рад, что такой формат продолжает себя оправдывать.
GitHub
GitHub - clastix/talos-csr-signer: A standalone gRPC service that implements the Talos Security Service protocol
A standalone gRPC service that implements the Talos Security Service protocol - clastix/talos-csr-signer
🔥29👍6
Forwarded from Neural Shit
А вот еще интересная статья. Ученые из университета Мэриленда вместе с учёными из Microsoft проверяли одну любопытную вещь: как ИИ-модели ведут себя на очень длинных текстах в разных языках. Не просто "переведи фразу" или "ответь на вопрос", а вот прям дать модели 80–120 тысяч токенов текста (это примерно книга), спрятать в нём кусок инфы и попросить найти. Тест этот называется ONERULER.
Тестировали 26 языков: от английского, русского и испанского, до хинди, суахили, тамильского и сесото.
Результаты любопытные: яснопонятно, что языки не равны. ВНЕЗАПНО, промпты на английском языке не самые эффективные. Оказалось, что лучше всего модели понимают польский (≈ 88% эффективность). Чуть ниже, но всё ещё в топе: русский, украинский, французский и итальянский. А английский вообще только на шестом месте (≈ 83.9% эффективность).
Так что если модель иногда отвечает странно, возможно, она просто ждёт, пока вы напишите в промпт"Бобр курва!"
Тестировали 26 языков: от английского, русского и испанского, до хинди, суахили, тамильского и сесото.
Результаты любопытные: яснопонятно, что языки не равны. ВНЕЗАПНО, промпты на английском языке не самые эффективные. Оказалось, что лучше всего модели понимают польский (≈ 88% эффективность). Чуть ниже, но всё ещё в топе: русский, украинский, французский и итальянский. А английский вообще только на шестом месте (≈ 83.9% эффективность).
Так что если модель иногда отвечает странно, возможно, она просто ждёт, пока вы напишите в промпт
arXiv.org
One ruler to measure them all: Benchmarking multilingual...
We present ONERULER, a multilingual benchmark designed to evaluate long-context language models across 26 languages. ONERULER adapts the English-only RULER benchmark (Hsieh et al., 2024) by...
😁13❤3🤣3
Недавно узнал что в go можно эмбедить файлы прямо в бинарник. Это прям супер удобно, особенно для написания различных CLI-утилит, которые традиционно распространяются в формате: "скачай бинарник из запусти".
Раньше я использовал кодогенерацию, но в большинстве случаев можно обойтись без неё. Можно эмбедить Kubernetes-манифесты, Helm-чарты, так и вообще любую статику.
//go:embed позволяет на этапе сборки положить файлы прямо в бинарь. Go читает указанные пути, запаковывает содержимое в секцию данных, а в рантайме это выглядит как обычная переменная или embed.FS.
Дальше с этим можно работать так же, как с привычной файловой системой из пакета io/fs: открывать файлы, читать директории, перечислять содержимое. Фактически это виртуальный read-only FS, который живёт внутри бинарника и полностью повторяет структуру исходных путей.
Примеры:
- Довольно исчерпывающий пример от Go by example
- Мой пример в Talm, где я эмбежу
Раньше я использовал кодогенерацию, но в большинстве случаев можно обойтись без неё. Можно эмбедить Kubernetes-манифесты, Helm-чарты, так и вообще любую статику.
//go:embed позволяет на этапе сборки положить файлы прямо в бинарь. Go читает указанные пути, запаковывает содержимое в секцию данных, а в рантайме это выглядит как обычная переменная или embed.FS.
Дальше с этим можно работать так же, как с привычной файловой системой из пакета io/fs: открывать файлы, читать директории, перечислять содержимое. Фактически это виртуальный read-only FS, который живёт внутри бинарника и полностью повторяет структуру исходных путей.
Примеры:
- Довольно исчерпывающий пример от Go by example
- Мой пример в Talm, где я эмбежу
./charts в гошный пакет👍20🔥2❤1🤔1
ITTales :(){ :|:& };:
Через 20 минут буду рассказывать про Kubernetes Aggregation API Layer на DevOpsDays Almaty Прямая трансляция: https://www.youtube.com/live/8WLM2zrn8Qw
Начал писать пост, случайно получилась целая статья
https://habr.com/ru/companies/aenix/articles/975324/
https://habr.com/ru/companies/aenix/articles/975324/
Хабр
Flux-aio, Kubernetes mTLS и проблема курицы и яйца
Мы тут в Cozystack в очередной раз решаем проблему курицы и яйца: как задеплоить CNI и kube-proxy через Flux, но при этом обеспечить работу самого flux без CNI и kube-proxy. Сам Flux запустить без CNI...
🔥7
Сегодня тестировал kilo (свободный кластер меш для Kubernetes) и не смог прокачать 10г.
Оказалось что wireguard изначально придуман так чтобы имел очень простую архитектуру. Но по факту это означает что каждый wg интерфейс не может утилизировать больше одного ядра и это заложено в дизайне.
Это подтолкнуло меня рассмотреть альтернативные реализации. И тут старый-добрый IPsec выглядит весьма перспективно, AES-шифрование можно оффлоадить на CPU и такой проблемы с привязкой к одному ядру вроде как нет.
В догонку отличная статья с разбором бенчмарков Wireguard vs IPsec от создателей Cilium.
https://docs.cilium.io/en/latest/operations/performance/benchmark/
Оказалось что wireguard изначально придуман так чтобы имел очень простую архитектуру. Но по факту это означает что каждый wg интерфейс не может утилизировать больше одного ядра и это заложено в дизайне.
Это подтолкнуло меня рассмотреть альтернативные реализации. И тут старый-добрый IPsec выглядит весьма перспективно, AES-шифрование можно оффлоадить на CPU и такой проблемы с привязкой к одному ядру вроде как нет.
В догонку отличная статья с разбором бенчмарков Wireguard vs IPsec от создателей Cilium.
https://docs.cilium.io/en/latest/operations/performance/benchmark/
👍17
Forwarded from Коробочка хорони
Kubernetes 1.35 — что завезли
⭐️ Стабильно в прод
• In-place Pod Resize — наконец-то GA! Можно менять requests/limits (CPU/RAM) на лету без рестарта пода. Киллер-фича для тяжелых stateful-приложений и AI-инференса (вертикальный автоскейлинг без даунтайма).
• Traffic Distribution — стратегия PreferSameNode теперь stable. Трафик сервиса старается не покидать узел, если эндпоинт есть локально. Минус хоп — ниже latency.
• Job ManagedBy — залочили в true. Упрощает жизнь внешним контроллерам (Kueue и прочим ML-оркестраторам), которые управляют джобами.
🧪 Беты (почти готово)
• Pod Certificates — Kubelet научился сам выпускать и ротировать X.509 сертификаты для подов. Нативный mTLS/Workload Identity без лишних сайдкаров.
• Job Recovery — теперь можно менять ресурсы (CPU/Mem) у Suspended Job’ов. Если ML-обучение упало с OOM через 5 часов — ставим на паузу, накидываем памяти и продолжаем, не пересоздавая объект.
🤖 AI и Альфы (пощупать)
• Gang Scheduling — нативная поддержка "all-or-nothing". Критично для распределенного ML-обучения: запускать группу подов только если есть ресурсы на всех сразу, иначе не запускать ничего. Реализовано через новый Workload API.
• Node Declared Features — ноды сами сообщают планировщику, какие фичи поддерживают. Помогает, когда в кластере зоопарк версий или разное железо.
• Restart Policies — новая логика RestartAllContainersOnContainerExit: если упал основной контейнер (app), куб пристрелит и сайдкары (логи/прокси), чтобы под перезапустился целиком.
🛡️ Ломают/Убирают
• IPVS в kube-proxy — всё, deprecated. Рекомендуют мигрировать на nftables.
• Gogo Protobuf — вычистили из API-типов.
https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/
⭐️ Стабильно в прод
• In-place Pod Resize — наконец-то GA! Можно менять requests/limits (CPU/RAM) на лету без рестарта пода. Киллер-фича для тяжелых stateful-приложений и AI-инференса (вертикальный автоскейлинг без даунтайма).
• Traffic Distribution — стратегия PreferSameNode теперь stable. Трафик сервиса старается не покидать узел, если эндпоинт есть локально. Минус хоп — ниже latency.
• Job ManagedBy — залочили в true. Упрощает жизнь внешним контроллерам (Kueue и прочим ML-оркестраторам), которые управляют джобами.
🧪 Беты (почти готово)
• Pod Certificates — Kubelet научился сам выпускать и ротировать X.509 сертификаты для подов. Нативный mTLS/Workload Identity без лишних сайдкаров.
• Job Recovery — теперь можно менять ресурсы (CPU/Mem) у Suspended Job’ов. Если ML-обучение упало с OOM через 5 часов — ставим на паузу, накидываем памяти и продолжаем, не пересоздавая объект.
🤖 AI и Альфы (пощупать)
• Gang Scheduling — нативная поддержка "all-or-nothing". Критично для распределенного ML-обучения: запускать группу подов только если есть ресурсы на всех сразу, иначе не запускать ничего. Реализовано через новый Workload API.
• Node Declared Features — ноды сами сообщают планировщику, какие фичи поддерживают. Помогает, когда в кластере зоопарк версий или разное железо.
• Restart Policies — новая логика RestartAllContainersOnContainerExit: если упал основной контейнер (app), куб пристрелит и сайдкары (логи/прокси), чтобы под перезапустился целиком.
🛡️ Ломают/Убирают
• IPVS в kube-proxy — всё, deprecated. Рекомендуют мигрировать на nftables.
• Gogo Protobuf — вычистили из API-типов.
https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/
🔥19❤8
Тут поресёрчил тему, как распилить GPU между виртуалками. Для QEMU/KVM всё завязано на VFIO: можно пробрасывать как целое PCI-устройство (полный passthrough), так и виртуализированные GPU через vGPU-подход, когда хост создаёт mediated devices (mdev) или PCI-based виртуальные GPU и уже их отдаёт в VM. Именно этот вариант нужен, если один физический GPU должен использоваться несколькими виртуалками.
Я думал, что можно как-то заиспользовать MIG, но MIG — это лишь аппаратное разбиение GPU. Сам по себе MIG не создаёт mediated devices и VFIO-устройств для виртуалок: чтобы отдельные MIG-инстансы можно было пробрасывать в VM, всё равно нужен vGPU-стек, который экспортирует их как mdev или PCI-устройства.
У NVIDIA этот функционал исторически доступен только в рамках проприетарного NVIDIA vGPU софта и требует лицензии.
При этом NVIDIA сейчас двигается в сторону open-source GPU virtualization: есть RFC-патчи для реализации vGPU в Linux, которые должны работать с VFIO и VM passthrough. Но это пока не mainline, патчи на стадии обсуждения, и когда (и в каком виде) их смерджат — непонятно.
https://www.phoronix.com/news/NVIDIA-Open-GPU-Virtualization
Я думал, что можно как-то заиспользовать MIG, но MIG — это лишь аппаратное разбиение GPU. Сам по себе MIG не создаёт mediated devices и VFIO-устройств для виртуалок: чтобы отдельные MIG-инстансы можно было пробрасывать в VM, всё равно нужен vGPU-стек, который экспортирует их как mdev или PCI-устройства.
У NVIDIA этот функционал исторически доступен только в рамках проприетарного NVIDIA vGPU софта и требует лицензии.
При этом NVIDIA сейчас двигается в сторону open-source GPU virtualization: есть RFC-патчи для реализации vGPU в Linux, которые должны работать с VFIO и VM passthrough. Но это пока не mainline, патчи на стадии обсуждения, и когда (и в каком виде) их смерджат — непонятно.
https://www.phoronix.com/news/NVIDIA-Open-GPU-Virtualization
Phoronix
NVIDIA Publishes Open-Source Linux Driver Code For GPU Virtualization "vGPU" Support
NVIDIA engineers have sent out an exciting set of Linux kernel patches for enabling NVIDIA vGPU software support for virtual GPU support among multiple virtual machines (VMs)
👍14🔥9❤2👏2
У нас тут появился запрос на то чтобы упростить нашим пользователям путь для запуска своих приложений в Cozystack.
Основной поинт такой: Я хочу писать код, и не думать о докерфайлах и кубернетисах ваших.
Я целился в то, что-бы выстроить что-то вроде heroku, т.е. максимально простой интерфейс для девелоперов.
За сегодня протестировал OpenFaaS и knative, но кажется serverless и FaaS - это не совсем то, что нужно чтобы полноценно удовлетворить этот запрос.
Копнув чуть глубже в тему наткнулся на epinio.io
Epinio развивается за счёт комьюнити. Под капотом у него buildpacks - это своего рода стандарт для доставки кода в различные контейнерные окружения.
А ещё оно потенциально очень хорошо интегрируется с Cozystack.
Логика такая:
- Запускаем кластер Kubernetes, ставим туда epinio (это может быть легко автоматизировано со стороны Cozystack)
- Пользователь заходит в UI
- Указывает путь до гит репы
- Buildpacks билдит приложение
- Деплоит его в Kubernetes
Бонусом в Cozystack уже есть container-registry, S3 и множество готовых баз данных
В самом epinio есть service-catalog из которого можно деплоить dev-версии mysql, postgres, mongodb и прочее. Есть мысли что этот сервискаталог немного переделать и предоставлять в нём готовые продакшен версии баз данных из Cozystack
Здесь есть видео с демонстрацией работы:
- https://youtu.be/jia6Laqz2WM?si=f1RElFLoesrbCFIU&t=919
На данный момент есть мысли чтобы выстроить полноценный IDP на базе этого решения.
Основной поинт такой: Я хочу писать код, и не думать о докерфайлах и кубернетисах ваших.
Я целился в то, что-бы выстроить что-то вроде heroku, т.е. максимально простой интерфейс для девелоперов.
За сегодня протестировал OpenFaaS и knative, но кажется serverless и FaaS - это не совсем то, что нужно чтобы полноценно удовлетворить этот запрос.
Копнув чуть глубже в тему наткнулся на epinio.io
Epinio развивается за счёт комьюнити. Под капотом у него buildpacks - это своего рода стандарт для доставки кода в различные контейнерные окружения.
А ещё оно потенциально очень хорошо интегрируется с Cozystack.
Логика такая:
- Запускаем кластер Kubernetes, ставим туда epinio (это может быть легко автоматизировано со стороны Cozystack)
- Пользователь заходит в UI
- Указывает путь до гит репы
- Buildpacks билдит приложение
- Деплоит его в Kubernetes
Бонусом в Cozystack уже есть container-registry, S3 и множество готовых баз данных
В самом epinio есть service-catalog из которого можно деплоить dev-версии mysql, postgres, mongodb и прочее. Есть мысли что этот сервискаталог немного переделать и предоставлять в нём готовые продакшен версии баз данных из Cozystack
Здесь есть видео с демонстрацией работы:
- https://youtu.be/jia6Laqz2WM?si=f1RElFLoesrbCFIU&t=919
На данный момент есть мысли чтобы выстроить полноценный IDP на базе этого решения.
YouTube
PROD 1307 A prescriptive approach to application development with Epinio
Learn how you can go from commit to deploy with Epinio's application development engine.
❤8👍4👎1
Короче, прямо сейчас разворачивается довольно показательная история из мира supply chain атак 👇
AI-агент (да, уже не человек руками) нашёл уязвимость в GitHub Actions у Trivy — популярного security-сканера.
Через небезопасный workflow (
А дальше стало совсем неприятно:
— переписали почти все теги релизов
— подменили GitHub Action
— и встроили вредоносный код
В итоге, любой CI, который использовал Trivy через
То есть одна точка компрометации каскадно затронула тысячи пайплайнов. Внутри пайплайна payload собирал: SSH-ключи, cloud credentials, Kubernetes-токены и прочее добро прямо из CI runner’ов.
Главный инсайт:
теги в GitHub — это не immutable.
Если ты не пинишь actions по commit SHA — ты буквально исполняешь код “по доверию”.
Ну и второй инсайт:
AI уже не просто помогает писать код — он сканирует GitHub и ломает CI быстрее, чем ты успеваешь ревью сделать 🙂
Ссылки:
- Разбор атаки (Socket)
- Детали payload и последствий (The Hacker News)
- Чуть больше про механику работы GitHub от @kruchkov_alexandr
AI-агент (да, уже не человек руками) нашёл уязвимость в GitHub Actions у Trivy — популярного security-сканера.
Через небезопасный workflow (
pull_request_target) он смог получить токен с правами записи в репозиторий.А дальше стало совсем неприятно:
— переписали почти все теги релизов
— подменили GitHub Action
— и встроили вредоносный код
В итоге, любой CI, который использовал Trivy через
uses: aquasecurity/trivy-action@vX.Y.Z, автоматически начинал исполнять чужой код.То есть одна точка компрометации каскадно затронула тысячи пайплайнов. Внутри пайплайна payload собирал: SSH-ключи, cloud credentials, Kubernetes-токены и прочее добро прямо из CI runner’ов.
Главный инсайт:
теги в GitHub — это не immutable.
Если ты не пинишь actions по commit SHA — ты буквально исполняешь код “по доверию”.
Ну и второй инсайт:
AI уже не просто помогает писать код — он сканирует GitHub и ломает CI быстрее, чем ты успеваешь ревью сделать 🙂
Ссылки:
- Разбор атаки (Socket)
- Детали payload и последствий (The Hacker News)
- Чуть больше про механику работы GitHub от @kruchkov_alexandr
❤11😱7🔥5😢2👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Исторя #22 По мотивам обновления кластера клиента
🤣17🙈8💩4💅1
Мне тут закинули интересный проект - T4.
По сути это такой git с S3-бэкендом и фронтендом в виде etcd.
Снаружи всё выглядит как обычный etcd-compatible datastore, а внутри вместо привычного "храним состояние" - просто поток изменений, который складывается в виде WAL в object storage.
Если подумать, модель довольно нетипичная: источником истины становится не состояние, а лог изменений.
А дальше из этого уже вытекают все побочные эффекты — можно откатываться, воспроизводить состояние, делать форки и гонять эксперименты отдельно от прода.
Автор явно смотрит в сторону сценария "а давайте заменим etcd в Kubernetes", и это звучит странно ровно до того момента, пока не задумываешься, что control plane - это по сути и есть машина состояний, которую мы постоянно мучаем бэкапами, ресторами и попытками понять "а что вообще произошло".
Пока это всё выглядит как эксперимент и есть куча вопросов по перформансу и консистентности. Но сама идея сильная:
не хранить состояние как главную сущность, а хранить историю, из которой оно получается.
И это как раз тот случай, когда сначала думаешь "что за дичь", а потом "блин, а ведь в этом и правда что-то есть" 🙂
По сути это такой git с S3-бэкендом и фронтендом в виде etcd.
Снаружи всё выглядит как обычный etcd-compatible datastore, а внутри вместо привычного "храним состояние" - просто поток изменений, который складывается в виде WAL в object storage.
Если подумать, модель довольно нетипичная: источником истины становится не состояние, а лог изменений.
А дальше из этого уже вытекают все побочные эффекты — можно откатываться, воспроизводить состояние, делать форки и гонять эксперименты отдельно от прода.
Автор явно смотрит в сторону сценария "а давайте заменим etcd в Kubernetes", и это звучит странно ровно до того момента, пока не задумываешься, что control plane - это по сути и есть машина состояний, которую мы постоянно мучаем бэкапами, ресторами и попытками понять "а что вообще произошло".
Пока это всё выглядит как эксперимент и есть куча вопросов по перформансу и консистентности. Но сама идея сильная:
не хранить состояние как главную сущность, а хранить историю, из которой оно получается.
И это как раз тот случай, когда сначала думаешь "что за дичь", а потом "блин, а ведь в этом и правда что-то есть" 🙂
GitHub
GitHub - t4db/t4: S3-durable key-value storage with etcd v3 compatibility
S3-durable key-value storage with etcd v3 compatibility - t4db/t4
❤17🔥5👀5
Вышел подкаст DevOps Paradox со мной 🎙️
Поговорили про Kubernetes, путь Ænix и Cozystack, попытки собрать "свой AWS" для on-prem. Обсудили современные тренды и конечно же AI, как он помогает нам в работе уже сегодня.
https://www.devopsparadox.com/episodes/cozystack-turns-bare-metal-into-a-managed-services-platform-347/
Поговорили про Kubernetes, путь Ænix и Cozystack, попытки собрать "свой AWS" для on-prem. Обсудили современные тренды и конечно же AI, как он помогает нам в работе уже сегодня.
https://www.devopsparadox.com/episodes/cozystack-turns-bare-metal-into-a-managed-services-platform-347/
Devopsparadox
DOP 347: Cozystack Turns Bare Metal Into a Managed Services Platform
Andrei Kvapil on Cozystack, building managed clouds on bare metal, and why his AI agent should be talking to your AI agent instead of either of you.
👍7🔥6❤3
Если ещё беспокоитесь за copy.fail в своих кластерах - вот изи-фикс.
Маленький DaemonSet, грузит
Работает на Talos Linux, где
Ставится одной командой:
https://github.com/cozystack/copy-fail-blocker
Маленький DaemonSet, грузит
BPF-LSM хук на socket_create и режет любые попытки открыть AF_ALG. Без ребута, без пересборки ядра, без правки cmdline.Работает на Talos Linux, где
rmmod архитектурно недоступен (SELinux + lockdown + контроллер не умеет unload).Ставится одной командой:
kubectl apply -f https://raw.githubusercontent.com/cozystack/copy-fail-blocker/main/manifests/copy-fail-blocker.yaml
https://github.com/cozystack/copy-fail-blocker
GitHub
GitHub - cozystack/copy-fail-blocker: BPF-LSM mitigation for CVE-2026-31431 (Copy Fail) — denies AF_ALG socket creation cluster…
BPF-LSM mitigation for CVE-2026-31431 (Copy Fail) — denies AF_ALG socket creation cluster-wide - cozystack/copy-fail-blocker
👍13🔥7💩5🤡1🤓1
Магия кэша в controller-runtime: почему ваши контроллеры быстрые, стабильные и не убивают apiserver
Если вы когда-нибудь писали Kubernetes-контроллер на Go, то почти наверняка использовали controller-runtime.
А если использовали — значит, пользовались одной из самых недооценённых и мощных частей всего Kubernetes-стека: кэшем controller-runtime.
https://habr.com/ru/companies/aenix/articles/1031818/
Если вы когда-нибудь писали Kubernetes-контроллер на Go, то почти наверняка использовали controller-runtime.
А если использовали — значит, пользовались одной из самых недооценённых и мощных частей всего Kubernetes-стека: кэшем controller-runtime.
https://habr.com/ru/companies/aenix/articles/1031818/
👍9🔥4❤2
Переписываем LINSTOR на go с Claude Code
В качестве пятничного эксперимента решил запустить шайтан машину и посмотреть что из этого получится.
Минимум вовлечённости, максимум слопа!👃
Стрим в реальном времени: https://asciinema.org/s/wO0WH3M3bTqdSvm1
Репозиторий: https://github.com/cozystack/blockstor
Чат в котором ведётся обсуждение: @cozystack_ru
В качестве пятничного эксперимента решил запустить шайтан машину и посмотреть что из этого получится.
Минимум вовлечённости, максимум слопа!
Стрим в реальном времени: https://asciinema.org/s/wO0WH3M3bTqdSvm1
Репозиторий: https://github.com/cozystack/blockstor
Чат в котором ведётся обсуждение: @cozystack_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - cozystack/blockstor: Go reimplementation of LINSTOR (block storage controller for Kubernetes)
Go reimplementation of LINSTOR (block storage controller for Kubernetes) - cozystack/blockstor