Меня апрувнули на Habr'e, по этому статьи теперь будут там)
Пару слов о причинах, почему нас не устроили решения по настройке логирвоания в Kubernetes и почему мы пришли к тому, что нам необходимо писать свой оператор.
#Kubernetes #Logging
https://habr.com/ru/post/698526/
Пару слов о причинах, почему нас не устроили решения по настройке логирвоания в Kubernetes и почему мы пришли к тому, что нам необходимо писать свой оператор.
#Kubernetes #Logging
https://habr.com/ru/post/698526/
Хабр
Почему нам пришлось писать собственный оператор для логирования в Kubernetes
В данной статье я расскажу про жизненный цикл одной важной задачи - “Настроить сбор/парсер логов в Kubernetes”. Или “Почему мы решили написать свой оператор для сбора логов в Kubernetes”. Оговорочка...
❤1🔥1
А в этой статье описаны различные интересные задачи и проблемы с которыми столкнулись при разработке оператора Kubernetes.
#Kubernetes #golang
https://habr.com/ru/post/698960/
#Kubernetes #golang
https://habr.com/ru/post/698960/
Хабр
Наступая на грабли. Опыт написания Kubernetes Operator’а
Недавно мной, совместно с @dkhadm , был реализован оператор для Kubernetes’a - Vector Operator . (Вот тут описано как мы пришли к решению, что там нужен свой оператор для Логирования в Kubernetes). В...
❤1
Ухххх. Если вы живете на linux'e (не важно baremetal или виртуализация) и шифруете свои диски (с помощью dm-crypt), то при увеличении нагрузки но ноды (нагрузка = частота поднятия подов), то вы можете столкнуться с тем, что этот шифрователь дисков был изначально написан для HDD дисков, и на SSD он сильно влияет на производительность.
Проблема актуальна для всех ядер, но для ядра 5.9 был выпущен патч (https://www.thomas-krenn.com/en/wiki/Dm-crypt_Performance). Однако по умолчанию этот патч не включен!
#Kubernetes #disk
Вот тут про это подробно написано - https://blog.cloudflare.com/speeding-up-linux-disk-encryption/
Проблема актуальна для всех ядер, но для ядра 5.9 был выпущен патч (https://www.thomas-krenn.com/en/wiki/Dm-crypt_Performance). Однако по умолчанию этот патч не включен!
#Kubernetes #disk
Вот тут про это подробно написано - https://blog.cloudflare.com/speeding-up-linux-disk-encryption/
❤1
Интересный и подробный RoadMap на тему погружения в практики DevOps инженеров
#DevOps
https://roadmap.sh/devops
#DevOps
https://roadmap.sh/devops
roadmap.sh
DevOps Roadmap: Learn to become a DevOps Engineer or SRE
Step by step guide for DevOps, SRE or any other Operations Role in 2025
❤1
Небольшая зарисовка о том, как работают Kubernetes информеры
#Kubernetes #Golang
https://zvlb.github.io/blog/kubernetes-informers/
#Kubernetes #Golang
https://zvlb.github.io/blog/kubernetes-informers/
Блог ДевоПса
Kubernetes informers. Как это работает
В этой статье мы рассмотрим, что такое informer’ы в библиотеке client-go, зачем они нужны, и как они работают.
❤1
Статья о том, как работают Эфимерный контейнеры и как использовать kubectl debug
#Kubernetes
https://zvlb.github.io/blog/ephemeral-containers-kubectl-debug/
#Kubernetes
https://zvlb.github.io/blog/ephemeral-containers-kubectl-debug/
Блог ДевоПса
Эфимерные контейнеры. kubectl debug
В этой статье мы рассмотрим, что такое эфимерные контейнеры. Зачем они нужны и как они работают.
❤1
Немного информации на тему, почему
#Kubernetes
https://zvlb.github.io/blog/get-all-in-kubernetes/
kubectl get all не показывает ВСЕ ресурсы и что нужно сделать, чтобы увидеть ВСЕ ресурсы.#Kubernetes
https://zvlb.github.io/blog/get-all-in-kubernetes/
Блог ДевоПса
Как посмотреть все ресурсы в Kubernetes?
Быстрый ответ №1:
❤1
Начиная с релиза 1.26 Kubernetes’а в stable перешла новая фича - контроль HugePages. В данной статье мы рассмотрим что это такое, зачем оно нужно и как с этим работать.
#Kubernetes
https://zvlb.github.io/blog/huge-pages-in-kubernetes/
#Kubernetes
https://zvlb.github.io/blog/huge-pages-in-kubernetes/
Блог ДевоПса
Huge Pages в Kubernetes
Начиная с релиза 1.26 Kubernetes’а в stable перешла новая фича - контроль HugePages. В данной статье мы рассмотрим что это такое, зачем оно нужно и как с этим работать.
❤1
Короче нихуя-нихуя, а тут вдруг и статья о том, как писать Kubernetes Operator'ы с Admission Webhook'ами и не сойти с ума)
#Kubernetes
https://zvlb.github.io/blog/kubernetes-admission-webhook/
#Kubernetes
https://zvlb.github.io/blog/kubernetes-admission-webhook/
Блог ДевоПса
Kuberentes Admission Webhook’и. Со стороны разработки
Общая информация
❤2
В рамках подготовки к срачу с DevOps’ами накидал статью об организации работы в Git'е и релизной модели DevOps Branching Strategy (Feature branching)
https://zvlb.github.io/blog/CD-practices/
https://zvlb.github.io/blog/CD-practices/
Блог ДевоПса
Continuous Delivery. Схема релизов (Prod/Stage/Test/Dev)
Общая информация
❤1
С выходом версии 7, Kubernetes Dashboard сильно изменился. Раньше это было простое решение в одном контейнере. Теперь это три контейнера: web, api, auth. Но самое интересное — у такого простого приложения появилась жесткая зависимость от внешнего решения — Kong.
❓ Почему это вызывает проблемы?
• Усложнение инфраструктуры: теперь нужно больше контейнеров и ресурсов.
• Зависимость от внешних решений: добавляет сложности в настройке и поддержке.
Kubernetes Dashboard был хорош именно своей простотой, и это изменение ставит под вопрос его удобство.
Ну и самое сладкое. Новая версия Dashboard'a реально медленно работает.
P.S. 6 секунд на картинке - это загрузка информации о deployment'ах, после которого (ПОСЛЕДОВАТЕЛЬНО) выполнится такой же запрос о Pod'ах, а потом обо всем остальном, связанным с выбранным namespace. Красота
#Kubernetes #Dashboard
❓ Почему это вызывает проблемы?
• Усложнение инфраструктуры: теперь нужно больше контейнеров и ресурсов.
• Зависимость от внешних решений: добавляет сложности в настройке и поддержке.
Kubernetes Dashboard был хорош именно своей простотой, и это изменение ставит под вопрос его удобство.
Ну и самое сладкое. Новая версия Dashboard'a реально медленно работает.
P.S. 6 секунд на картинке - это загрузка информации о deployment'ах, после которого (ПОСЛЕДОВАТЕЛЬНО) выполнится такой же запрос о Pod'ах, а потом обо всем остальном, связанным с выбранным namespace. Красота
#Kubernetes #Dashboard
❤1👍1💩1
Одно из важных изменений второй версии cgroup - это переработка memory-контроллера (добавили политики
Разрабы Kubernetes начали внедрять это вот все. Даже бету реализовали, которая включается по
Однако на этапах тестирования отказались от этого функционала, так как тесты показали, что новый функционал контроллера memory работает "нестабильно"
https://github.com/kubernetes/enhancements/tree/a47155b340/keps/sig-node/2570-memory-qos#latest-update-stalled
#Kubernetes #cgroup
memory.min и memory.high. memory.min обеспечивает для процессов в одной cgroup’e всегда будет доступно определенное количество оперативной памяти и никакие другие процессы, не состоящие в cgroup, не смогут ее использовать. А memory.high намного жестче регулирует сколько именно оперативной памяти могут использовать процессы в cgroup’е.Разрабы Kubernetes начали внедрять это вот все. Даже бету реализовали, которая включается по
featureGates.Однако на этапах тестирования отказались от этого функционала, так как тесты показали, что новый функционал контроллера memory работает "нестабильно"
https://github.com/kubernetes/enhancements/tree/a47155b340/keps/sig-node/2570-memory-qos#latest-update-stalled
#Kubernetes #cgroup
Kubernetes
Kubernetes 1.27: Quality-of-Service for Memory Resources (alpha)
Kubernetes v1.27, released in April 2023, introduced changes to Memory QoS (alpha) to improve memory management capabilites in Linux nodes.
Support for Memory QoS was initially added in Kubernetes v1.22, and later some limitations around the formula for calculating…
Support for Memory QoS was initially added in Kubernetes v1.22, and later some limitations around the formula for calculating…
❤1
Я честно пытался использовать telegra.ph для статеек, которые сюда собирался выплевывать, но это анрил.
Это бархло тупит слишком жестко(
Буду дальше пользоваться своим сайтиком)
Это бархло тупит слишком жестко(
Буду дальше пользоваться своим сайтиком)
❤1
Вчера ребята из Yandex выложили в Open Source свой инструмент для централизованной профилировки CPU на Linux-машинах — Perforator.
По сути, они реализовали обработку снимков состояния потоков на стороне userspace, а не kernelspace (спасибо eBPF),
плюс добавили инфраструктуру, позволяющую собирать снимки с множества серверов и сохранять их в ClickHouse и S3.
Честно говоря, держать эту систему в проде на постоянной основе (то есть, когда Perforator Agents постоянно снимают потоки, анализируют их и отправляют куда-то) — довольно спорное решение. (Хотя, по словам инфраструктурщиков Яндекса, они именно так и сделали.)
А вот иметь возможность быстро снимать дампы и отправлять их в единую точку для удобного анализа — звучит неплохо.
#Linux #Dubug #prof
По сути, они реализовали обработку снимков состояния потоков на стороне userspace, а не kernelspace (спасибо eBPF),
плюс добавили инфраструктуру, позволяющую собирать снимки с множества серверов и сохранять их в ClickHouse и S3.
Честно говоря, держать эту систему в проде на постоянной основе (то есть, когда Perforator Agents постоянно снимают потоки, анализируют их и отправляют куда-то) — довольно спорное решение. (Хотя, по словам инфраструктурщиков Яндекса, они именно так и сделали.)
А вот иметь возможность быстро снимать дампы и отправлять их в единую точку для удобного анализа — звучит неплохо.
#Linux #Dubug #prof
GitHub
GitHub - yandex/perforator: Perforator is a cluster-wide continuous profiling tool designed for large data centers
Perforator is a cluster-wide continuous profiling tool designed for large data centers - yandex/perforator
❤2🔥2
Как работает Garbage Collector в Kubernetes? Чем он занимается? Какие механизмы лежат в его основе? Как его можно ускорить?
В новой статье я ответил на все эти вопросы, рассмотрел нюансы работы GC и дал практические рекомендации.
Читать вот тут: 🔗 zvlb.github.io/blog/kubernetes-garbage-collector
#Kubernetes #golang #garbage_collector #zvlb_article
В новой статье я ответил на все эти вопросы, рассмотрел нюансы работы GC и дал практические рекомендации.
Читать вот тут: 🔗 zvlb.github.io/blog/kubernetes-garbage-collector
#Kubernetes #golang #garbage_collector #zvlb_article
Блог ДевоПса
Kubernetes Garbage Collector. Как он работает
В рамках этой статьи мы рассмотрим, как работает Garbage Collector в Kubernetes. Данная статья была написана, когда мне пришлось разбираться в производительности Garbage Collector, а чтобы понять как его можно ускорить, сначала надо понять, как он работает.…
❤2👍1🤔1
Grafana в рамках своей GrafanaCON проводит прекрасное мероприятие - Golden Grot Awards
Golden Grot Awards - это конкурс среди пользовательских DashBoard'ов. И он прекрасен тем, что можно оценить как и кто использует Grafana в различных целях (не только IT)
Например в 2024 году победили dashboard'ы для контроля качества стальных сплавов и аналитика состояния погоды/трафика/рассписания поездов и т.д. для быстрого анализа как лучше добираться на работу.
Ну и на фоне всего этого решил выложить свой Dashboard по Kubernetes, который состряпал где-то год назад и неимоверно ему рад - вот он)
#Grafana #Kubernetes
Golden Grot Awards - это конкурс среди пользовательских DashBoard'ов. И он прекрасен тем, что можно оценить как и кто использует Grafana в различных целях (не только IT)
Например в 2024 году победили dashboard'ы для контроля качества стальных сплавов и аналитика состояния погоды/трафика/рассписания поездов и т.д. для быстрого анализа как лучше добираться на работу.
Ну и на фоне всего этого решил выложить свой Dashboard по Kubernetes, который состряпал где-то год назад и неимоверно ему рад - вот он)
#Grafana #Kubernetes
Grafana Labs
GrafanaCON 2026 | Grafana Labs | Grafana Labs
Join us in Barcelona on April 20-22, 2026 for GrafanaCON, our biggest community event of the year.
🔥2❤1
Периодически провожу технические собеседования, и вот что заметил.
Все давно натренировались на вопросы по Kubernetes. 70% кандидатов легко отвечают на классические вопросы, ответы на которые можно найти в курсах Mumshad’а (которые, похоже, прошли все). Но настоящее собеседование начинается, когда мы углубляемся дальше.
У меня есть классический вопрос:
“Как вы интегрируете свой GitLab (Jenkins/TeamCity) с Kubernetes?”
И тут начинается крах.
- Только ~20% кандидатов вспоминают про интеграцию по сертификатам (которая, кстати, депрекейтнута уже три года!).
- 0% знают про официальный подход, который пропагандирует сам GitLab — GitLab Agent.
Но самое страшное — это то, как люди реализуют доступ GitLab’а в Kubernetes:
1. GitLab Runner с Kubernetes Executor — и ему просто дают Cluster Admin права.
2. (ТОП-решение) — на Control Plane ноде запускают GitLab Runner с shell executor, а job деплоя копирует манифесты на ноду и применяет их напрямую с админским kubeconfig’ом.
Это жесть. 😅
#трэш #Gitlab #Kubernetes
Все давно натренировались на вопросы по Kubernetes. 70% кандидатов легко отвечают на классические вопросы, ответы на которые можно найти в курсах Mumshad’а (которые, похоже, прошли все). Но настоящее собеседование начинается, когда мы углубляемся дальше.
У меня есть классический вопрос:
“Как вы интегрируете свой GitLab (Jenkins/TeamCity) с Kubernetes?”
И тут начинается крах.
- Только ~20% кандидатов вспоминают про интеграцию по сертификатам (которая, кстати, депрекейтнута уже три года!).
- 0% знают про официальный подход, который пропагандирует сам GitLab — GitLab Agent.
Но самое страшное — это то, как люди реализуют доступ GitLab’а в Kubernetes:
1. GitLab Runner с Kubernetes Executor — и ему просто дают Cluster Admin права.
2. (ТОП-решение) — на Control Plane ноде запускают GitLab Runner с shell executor, а job деплоя копирует манифесты на ноду и применяет их напрямую с админским kubeconfig’ом.
Это жесть. 😅
#трэш #Gitlab #Kubernetes
Gitlab
Connect existing clusters through cluster certificates (deprecated) | GitLab
GitLab product documentation.
👍3
В канале про GitOps (@gitops_ru) периодически возникает вопрос:
“Что лучше: развернуть отдельный ArgoCD в каждом кластере Kubernetes или использовать один централизованный ArgoCD для всех кластеров?”
Но лично я придерживаюсь второго подхода: у меня в контуре централизованный ArgoCD (точнее, несколько), который подключает все доступные кластеры Kubernetes и управляет ими.
Сейчас у меня 34 кластера и примерно 1500 ArgoCD Applications.
В статье разобрал плюсы и минусы каждого подхода для разворачивания ArgoCD
https://telegra.ph/Centralizovannyj-vs-Decentralizovannyj-ArgoCD-02-07
#Kubernetes #ArgoCD #zvlb_article
“Что лучше: развернуть отдельный ArgoCD в каждом кластере Kubernetes или использовать один централизованный ArgoCD для всех кластеров?”
По умолчанию в чате ответ всегда один — используйте Flux (fluxcd.io) 😅
Но лично я придерживаюсь второго подхода: у меня в контуре централизованный ArgoCD (точнее, несколько), который подключает все доступные кластеры Kubernetes и управляет ими.
Сейчас у меня 34 кластера и примерно 1500 ArgoCD Applications.
В статье разобрал плюсы и минусы каждого подхода для разворачивания ArgoCD
https://telegra.ph/Centralizovannyj-vs-Decentralizovannyj-ArgoCD-02-07
#Kubernetes #ArgoCD #zvlb_article
❤1👍1🔥1
Вырезка с внутреннего вебинара на тему интеграций Gitlab'a и Kubernetes.
Тут теория, так же будет вторая часть, где именно про практику
https://youtu.be/60XXak1t7ig?si=SUgm-mWdfdF6vzxL
#zvlb_video #Kubernetes #Gitlab
Тут теория, так же будет вторая часть, где именно про практику
https://youtu.be/60XXak1t7ig?si=SUgm-mWdfdF6vzxL
#zvlb_video #Kubernetes #Gitlab
YouTube
Виды интеграций Gitlab и Kubernetes | From Webinar
Telegram - https://xn--r1a.website/zvlbtech
Советую слушать в скорости х1.5
Вырезка с вебинара
Советую слушать в скорости х1.5
Вырезка с вебинара
❤2🔥2