Почему Нидерланды не тонут, несмотря на то, что часть страны находится ниже уровня моря? 🌊🇳🇱
Anonymous Quiz
67%
Построена сложная система дамб и плотин
10%
Воду выливают в соседние страны
23%
Это всё заговор! На самом деле Голландии не существует
🤩1
Защищаем инфраструктуру Kubernetes без боли
➡️ вебинар уже в этот четверг
Что будем обсуждать:
🟠 что есть в экосистеме k8s;
🟠 зачем это применять;
🟠 когда не оправдано закручивание гаек в инфраструктуре.
Поговорим, кому и зачем нужно защищать инфраструктуру в k8s, разберем многоэтапный процесс построения security и дадим рекомендации, основанные на собственных ошибках и шишках.
Спикеры:
➡️ Виталий Лихачев — со мной, надеюсь, вы уже знакомы. Если нет, ловите ссылку на приветственный пост.
➡️ Всеволод Севостьянов, Staff engineer в Lokalise
🐈 Специальный гость — кот Маркус (придёт, только если увидит много 🔥 под этим постом).
Когда: 27 марта в 20:00
Занять место на вебинаре — через бота. Ждём вас!
Что будем обсуждать:
Поговорим, кому и зачем нужно защищать инфраструктуру в k8s, разберем многоэтапный процесс построения security и дадим рекомендации, основанные на собственных ошибках и шишках.
Спикеры:
Когда: 27 марта в 20:00
Занять место на вебинаре — через бота. Ждём вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤1
Когда я уже что-то понимал про k8s, но все еще страдал, моя главная проблема была...
Выберите вариант ответа, который ближе всего лично вам или расскажите об этом в комментариях, а через пару часов я расскажу, что было моей главной проблемой⬇️
Выберите вариант ответа, который ближе всего лично вам или расскажите об этом в комментариях, а через пару часов я расскажу, что было моей главной проблемой
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Когда я уже что-то понимал про K8s, но все еще страдал, моя главная проблема была...
Anonymous Poll
37%
«Хочу разобраться, но между митингами и дедлайнами нереально.»
7%
«Чем K8s лучше docker compose? Почему все говорят, что это будущее?»
7%
«Сделал всё правильно, но прод всё равно упал. Никому не скажу!»
17%
«Где логи, Карл? Что сломалось? Почему их ТАК много?»
26%
«YAML для сетевых политик сложнее, чем код. Это мой ночной кошмар.»
7%
Свой вариант — расскажите, как вас мучил k8s!
Как k8s издевался надо мной в юности
Когда я начинал знакомство с k8s, у нас на проекте верхом технологий был Docker, и приложения деплоились вручную из пайплайнов по ssh. k8s тогда уже был на слуху, но его еще не успели объявить новым стандартом, а я только начинал посматривать в его сторону, читая статьи на хабре и смотря редкие доклады про k8s.
Для контекста — это было в районе 2018 года. Некоторые компании уже начинали переезжать в Kubernetes.
Тогда еще можно было встретить людей, уверенных, что docker-compose up -d — это вполне нормальный production-ready deployment.
И в 2025 это тоже так. Если у вас крутится пара сервисов, вам не нужен k8s. Только волосы раньше времени начнут седеть.
Пока ты не работаешь с k8s, кажется, что ручное жонглирование Docker-контейнерами (оркестрация для бедных) и маппинг их портов на хостовую систему (NodePort), а затем прокидывание запросов через Nginx в приложение (читай, Ingress на минималках) — это уже вершина инженерного искусства. И ведь оно действительно работает! Большую часть времени… Пока нода, на которой крутится ingress, не пропадет из сети, потому что сервер ушел в ребут из-за проблем в ядре или обновления системы... И не вернулся 🙂 Потому что апдейт ОС оказался проблемным.
Когда я начинал знакомство с k8s, у нас на проекте верхом технологий был Docker, и приложения деплоились вручную из пайплайнов по ssh. k8s тогда уже был на слуху, но его еще не успели объявить новым стандартом, а я только начинал посматривать в его сторону, читая статьи на хабре и смотря редкие доклады про k8s.
Для контекста — это было в районе 2018 года. Некоторые компании уже начинали переезжать в Kubernetes.
Тогда еще можно было встретить людей, уверенных, что docker-compose up -d — это вполне нормальный production-ready deployment.
Пока ты не работаешь с k8s, кажется, что ручное жонглирование Docker-контейнерами (оркестрация для бедных) и маппинг их портов на хостовую систему (NodePort), а затем прокидывание запросов через Nginx в приложение (читай, Ingress на минималках) — это уже вершина инженерного искусства. И ведь оно действительно работает! Большую часть времени… Пока нода, на которой крутится ingress, не пропадет из сети, потому что сервер ушел в ребут из-за проблем в ядре или обновления системы... И не вернулся 🙂 Потому что апдейт ОС оказался проблемным.
👍2
Но проект растет, появляются новые сервисы, количество контейнеров множится, и вот ты уже вечером сидишь в кресле, осознавая, что весь день потратил на сборку образов, доставку их на сервер, обновление docker-compose.yml, добавление новых адресов в пайплайн, настройку виртуалок через Ansible/Puppet, мониторинг и логирование — и как будто бы провинулся всего на чуть-чуть. В этот момент тебя посещает звоночек: «А точно ли так стоит делать?»
Потом приходит знакомство с k8s. Первые Deployment, Service, Ingress, первые страдания с ConfigMap и Secret, первые попытки понять, что такое Helm. kubectl apply -f кажется магией, а YAML бесит требованием правильного количества пробелов для каждой строки. Но, к удивлению, многие вещи действительно становятся проще.
Например, внезапно оказывается, что можно не писать shell-скрипты для перекладывания образов между серверами, а просто обновлять image в Deployment. Или что перезапуск сервиса можно делать не через docker stop && docker run, а просто сменив replicas в Deployment, а пользователи этого даже и на заметят (если приложение написано по всем канонам 12factor apps). Или что «где у нас логируется сервис?» — это вопрос с ответом «в Loki, смотри по labels», а не «так, дай вспомнить, что там в systemd logs…».
Потом приходит знакомство с k8s. Первые Deployment, Service, Ingress, первые страдания с ConfigMap и Secret, первые попытки понять, что такое Helm. kubectl apply -f кажется магией, а YAML бесит требованием правильного количества пробелов для каждой строки. Но, к удивлению, многие вещи действительно становятся проще.
Например, внезапно оказывается, что можно не писать shell-скрипты для перекладывания образов между серверами, а просто обновлять image в Deployment. Или что перезапуск сервиса можно делать не через docker stop && docker run, а просто сменив replicas в Deployment, а пользователи этого даже и на заметят (если приложение написано по всем канонам 12factor apps). Или что «где у нас логируется сервис?» — это вопрос с ответом «в Loki, смотри по labels», а не «так, дай вспомнить, что там в systemd logs…».
👍2
Да, Kubernetes — это бесконечная кроличья нора инструментов и YAML-конфигураций. Ты начинаешь с простого kubectl apply, потом переходишь на Helm или Kustomize, потом втягиваешься в GitOps, а заканчивается все тем, что ты деплоишь оператор, который берет CRD, из которого в итоге создается Pod с твоим сервисом. А когда тебя спрашивают, что происходит, ты выдаешь что-то вроде: «Ну, у нас тут ArgoCD синкает Helm-чарт с параметрами из SealedSecrets, который в свою очередь провиженится Terraform'ом в CI/CD, а потом Ansible применяет post-install хуки».
С появлением достаточно стабильных (ну, более-менее) managed-решений, можно просто занести денег облачному провайдеру и поднять кластер с полпинка. Главное — не забыть, что SLA 99.95% не распространяется на случаи, когда у провайдера снова сломали сеть между AZ (кто понял, тот понял).
В общем, Kubernetes — это как с Git. Сначала ты его боишься, потом ненавидишь, потом принимаешь, а потом вдруг ловишь себя на мысли, что пишешь kubectl get pods -A быстрее, чем печатаешь «привет» в мессенджере.
С появлением достаточно стабильных (ну, более-менее) managed-решений, можно просто занести денег облачному провайдеру и поднять кластер с полпинка. Главное — не забыть, что SLA 99.95% не распространяется на случаи, когда у провайдера снова сломали сеть между AZ (кто понял, тот понял).
В общем, Kubernetes — это как с Git. Сначала ты его боишься, потом ненавидишь, потом принимаешь, а потом вдруг ловишь себя на мысли, что пишешь kubectl get pods -A быстрее, чем печатаешь «привет» в мессенджере.
🔥14👍3
Привет! На связи Маркус.
Пока мой человек допиливает презентацию для завтрашнего веба и не видит, ловите немного спойлеров (только тсс).
Что будем обсуждать завтра:
🐈 Когда не стоит закручивать гайки в вопросах безопасности
🐈 Нахождение баланса между безопасностью и удобством эксплуатации
🐈 Осознанные компромиссы
В конце будет классный бонус для всех участников веба и ссылки на документацию. Надеюсь, вы уже зарегистрировались в боте? Ссылки на веб придут именно туда.
Если нет — велкам.
Жду вас завтра в 20:00 и неистово мурлыкаю.
Пока мой человек допиливает презентацию для завтрашнего веба и не видит, ловите немного спойлеров (только тсс).
Что будем обсуждать завтра:
В конце будет классный бонус для всех участников веба и ссылки на документацию. Надеюсь, вы уже зарегистрировались в боте? Ссылки на веб придут именно туда.
Если нет — велкам.
Жду вас завтра в 20:00 и неистово мурлыкаю.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👻2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Мы с Севой и Маркусом уже на низком старте и ждём вас, чтобы поговорить про эффективные инструменты для повышения безопасности.
Ссылки придут в бота за 5 минут до трансляции. Подключайтесь и пишите свои вопросы в чат вебинара.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Запись вебинара по безопасности
Вчера вечером обсуждали разные инструменты для повышения безопасности. Если не были онлайн, ловите запись.Судя по опросу , у меня в канале очень много DevOps и специалистов ИБ, для вас будет особенно полезно.
➡️ YouTube
➡️ VK Видео
На вебинаре рассказывал про курс «Kubernetes Мега», который стартует в апреле. В нем безопасности посвящены сразу 4 модуля:
🟠 Модуль 3. Аутентификация пользователей в кластере
🟠 Модуль 4. Keycloak
🟠 Модуль 5. Kubernetes Networking
🟠 Модуль 6. Безопасные и доступные приложения в кластере
Подробно с программой каждого модуля и курса в целом — по ссылке.
Специально для подписчиков моего канала я попросил у коллег промокод:
Он круче, чем тот, который был на вебе, потому что дает не только скидку 15% на «Kubernetes Мега» , но и доступ к видеокурсу «Мониторинг и логирование инфраструктуры в Kubernetes». Выгода — 40%, или 61 500 ₽.
➡️ Старт потока — 21 апреля. Занять место — на странице курса.
Вчера вечером обсуждали разные инструменты для повышения безопасности. Если не были онлайн, ловите запись.
На вебинаре рассказывал про курс «Kubernetes Мега», который стартует в апреле. В нем безопасности посвящены сразу 4 модуля:
Подробно с программой каждого модуля и курса в целом — по ссылке.
Специально для подписчиков моего канала я попросил у коллег промокод:
LIHACHEV15
Он круче, чем тот, который был на вебе, потому что дает не только скидку 15% на «Kubernetes Мега» , но и доступ к видеокурсу «Мониторинг и логирование инфраструктуры в Kubernetes». Выгода — 40%, или 61 500 ₽.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6😁2
Дайджест материалов за март
Традиционно собрал в одном посте всё полезное, что было в этом месяце
➡️ Безопасность: интегрируемся с vault
➡️ Как я перестал волноваться и полюбил ротацию секретов
— Часть 1
— Часть 2
➡️ Типичные ошибки найма
➡️ Как нанимать инженеров правильно
➡️ Secret injection webhook
➡️ Защищаем инфраструктуру Kubernetes без боли. Вебинар
— YouTube
— VK Видео
— Rutube
Традиционно собрал в одном посте всё полезное, что было в этом месяце
— Часть 1
— Часть 2
— YouTube
— VK Видео
— Rutube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🤔1
Что меня бесит в работе с кубером
k8s - отличный продукт для своих задач, но временами он больше напоминает изощренную вундервафлю, в которую напихали функционала по самые помидоры, да и еще и обильно и часто поливают, чтобы стало еще интересней жить (нам и сейчас хватает, но надо еще усложнить, чтобы не расслаблялись).
Вот несколько вещей, которые расстраивают:
➡️ Бездонная яма абстракций
Тебе нужно просто развернуть свой сервис. Оказывается, что тебе нужен Ingress, чтобы выставить сервис наружу. Потом выясняется, что лучше использовать Gateway API, потому что ingress уже недостаточно модный. Также ты хочешь сервис настроить (configmaps и secrets), сделать «отказоустойчивым» (replicas, pod disruption budget), починить баги с утечками памяти, которые очень сложно найти и проще сервис перезапускать, чем чинить (liveness probe) и так далее. Все это постепенно разрастается, и вот у тебя уже 20 километровых манифестов, которые настраивают сервис по всем лучшим практикам, а чтобы разобраться в этом — нужно время.
➡️ Траблшутинг как искусство
Если что-то пошло не так, то ты не просто берешь и смотришь логи. Ты сначала выясняешь, жива ли нода. Если нет, то почему? Может, нода ушла в
k8s - отличный продукт для своих задач, но временами он больше напоминает изощренную вундервафлю, в которую напихали функционала по самые помидоры, да и еще и обильно и часто поливают, чтобы стало еще интересней жить (нам и сейчас хватает, но надо еще усложнить, чтобы не расслаблялись).
Вот несколько вещей, которые расстраивают:
Тебе нужно просто развернуть свой сервис. Оказывается, что тебе нужен Ingress, чтобы выставить сервис наружу. Потом выясняется, что лучше использовать Gateway API, потому что ingress уже недостаточно модный. Также ты хочешь сервис настроить (configmaps и secrets), сделать «отказоустойчивым» (replicas, pod disruption budget), починить баги с утечками памяти, которые очень сложно найти и проще сервис перезапускать, чем чинить (liveness probe) и так далее. Все это постепенно разрастается, и вот у тебя уже 20 километровых манифестов, которые настраивают сервис по всем лучшим практикам, а чтобы разобраться в этом — нужно время.
Если что-то пошло не так, то ты не просто берешь и смотришь логи. Ты сначала выясняешь, жива ли нода. Если нет, то почему? Может, нода ушла в
NotReady
? А если контейнер рестартится, то это проблема readiness probe, OOMKill или что-то еще? И это все надо смотреть, анализировать и разбираться, что отнимает время. Конечно же все эти шаги замечательно автоматизируются)Please open Telegram to view this post
VIEW IN TELEGRAM
💯4
Ты развернул кластер на одной версии, а через 2 года обнаружил, что твои Helm-чарты больше не работают, потому что API внезапно выпилили. Или CRD внезапно перестал быть обратносовместимым. Или твой сетевой плагин перестал дружить с новой версией kube-proxy. В k8s стабильность есть, но иногда приходится подебажить, что сломалось. С последними версиями, конечно, многие вещи стабилизировались, но когда в проде используешь нечто с
Version: v1beta1
, то спишь чуть менее крепко. Потому что ты накручиваешь сверху CNI, CSI, CRI чтобы все работало, а их выбор довольно велик. Поставив голый k8s, ничего не получишь, кроме подогрева воздуха нодами, на которых будет крутится control plane.Он кажется удобным, пока не начинаешь закапывать в бездну отступов. Что лучше: пробелы или табы?) Helm — мощный инструмент, но требует дисциплины, чтобы не превратить поддержку в дебаг отступов в yaml.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Почему мой сервис недоступен? Вопрос, который может иметь множество причин. Начинаешь перебирать: kube-proxy? DNS? CNI? А может, старый добрый iptables (или новомодный eBPF)? А NetworkPolicy случайно ничего не блочит? И вишенка на торте — Ingress, который ты сам же и настраивал, но почему-то трафик идет совсем не туда. Диагностика сети в k8s — это отдельный вид изощренной пытки. Без глубоких знаний сетевых технологий или опыта Linux-администрирования шансы быстро разобраться стремятся к нулю. Мало знать, как выглядят правила iptables, нужно еще понимать, как отследить прохождение пакета через все эти хитросплетения. А с некоторыми CNI, которые вообще ушли от iptables в сторону eBPF, без опыта работы с сетевыми технологиями вообще можно надолго закопаться.
Но если вам кажется, что k8s сложный, то могу вас уверить, что можно объяснить даже ребенку, как он работает и зачем нужен (но это не точно).
Ловите отличный гайд: https://to.slurm.io/1Jt97Q
А что вас бесит в кубере? Поделитесь в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
CNCF
The Illustrated Children’s Guide to Kubernetes
Brought to you by… Written by: Matt Butcher and Karen Chu Illustrated by: Bailey Beougher Illustration of Goldie is based on the Go Gopher designed by Renee French Phippy, Goldie, Captain Kube…
🔥2
Недавно я присоединился к программному комитету Podlodka Techlead Crew, и это стало интересным погружением в закулисье онлайн IT-конференций. Если раньше я видел лишь готовое мероприятие, то теперь наблюдаю за непростым процессом его создания.
➡️ Главный инсайт: контент не возникает сам собой. За каждым интересным докладом стоит кропотливая работа по поиску спикеров, способных не просто транслировать знания, но и делать это увлекательно.
Придумывать темы сезона, помогать докладчикам доработать материал, чтобы он лучше заходил целевой аудитории, решать, нужен ли мем на слайде (нужен, конечно!) и думать, как сделать так, чтобы конференция была не просто полезной, но и интересной — все это входит в работу в ПК.
Это как отказоустойчивая инфраструктура: если всё сделать правильно, участники даже не заметят, сколько усилий множества людей вложено, а если нет — сразу появятся вопросы, почему всё сломалось (привет недавнему сбою).
Придумывать темы сезона, помогать докладчикам доработать материал, чтобы он лучше заходил целевой аудитории, решать, нужен ли мем на слайде (нужен, конечно!) и думать, как сделать так, чтобы конференция была не просто полезной, но и интересной — все это входит в работу в ПК.
Это как отказоустойчивая инфраструктура: если всё сделать правильно, участники даже не заметят, сколько усилий множества людей вложено, а если нет — сразу появятся вопросы, почему всё сломалось (привет недавнему сбою).
Please open Telegram to view this post
VIEW IN TELEGRAM
Теперь я не только делаю доклады, но и помогаю делать их другим. И мы приготовили новый интересный сезон.
Как сервисам взаимодействовать между собой надёжно, быстро и понятно? REST, gRPC, события, контракты, версии — деталей много, а универсальных решений нет.
На онлайн-конференции Podlodka Techlead Crew (7–11 апреля) разберёмся, как выстраивать межсервисное взаимодействие: от проектирования API до публикации событий и сравнения протоколов.
В программе:
• Event Storming + DDD: проектируем EDA правильно — Кирилл Ветчинкин расскажет, как выделять правильные события, избавляться от синхронных вызовов и строить событийно-ориентированные системы без боли
• Обратная совместимость в парадигме specification-first — Сергей Константинов покажет, как поддерживать REST API и работать со спецификациями типа OpenAPI
• Интервью: Проектируем API — contract first — Илья Зонов поделится, когда этот подход спасает, а когда мешает. И как версионировать API без боли
• gRPC vs RESTful: битва протоколов — Алексей Романов сравнит два подхода по 10 критериям
И многое другое.
Готовы прокачаться?
Присоединяйтесь! Билеты здесь 🎟
А мой промкод
Как сервисам взаимодействовать между собой надёжно, быстро и понятно? REST, gRPC, события, контракты, версии — деталей много, а универсальных решений нет.
На онлайн-конференции Podlodka Techlead Crew (7–11 апреля) разберёмся, как выстраивать межсервисное взаимодействие: от проектирования API до публикации событий и сравнения протоколов.
В программе:
• Event Storming + DDD: проектируем EDA правильно — Кирилл Ветчинкин расскажет, как выделять правильные события, избавляться от синхронных вызовов и строить событийно-ориентированные системы без боли
• Обратная совместимость в парадигме specification-first — Сергей Константинов покажет, как поддерживать REST API и работать со спецификациями типа OpenAPI
• Интервью: Проектируем API — contract first — Илья Зонов поделится, когда этот подход спасает, а когда мешает. И как версионировать API без боли
• gRPC vs RESTful: битва протоколов — Алексей Романов сравнит два подхода по 10 критериям
И многое другое.
Готовы прокачаться?
Присоединяйтесь! Билеты здесь 🎟
А мой промкод
deeper8
дает скидку в 500р🥳🔥4
И продолжая тему конференций — кто будет на DevOps Conf'2025 7-8 апреля?
Кирилл Борисов и Вячеслав Федосеев в своих каналах разыгрывают два онлайн-билета. Так что если вы хотите попасть на конфу — можно попытать счастья и получить бесплатный билет.
Правила розыгрыша:
🔸 Подписаться на канал Вячеслава «DevOps Bootcamp» и канал Кирилла «Путь SRE»
🔸 Рассказать о самой частой проблеме DevOps-инженера, которую хотелось бы решать как можно реже
📩 Истории присылайте через форму
Сбор историй закрывается 2 апреля в 23:59 мск, а 4 апреля в 12:00 мск Кирилл и Вячеслав объявят двух победителей у себя в каналах.
Удачи!
Кирилл Борисов и Вячеслав Федосеев в своих каналах разыгрывают два онлайн-билета. Так что если вы хотите попасть на конфу — можно попытать счастья и получить бесплатный билет.
Правила розыгрыша:
📩 Истории присылайте через форму
Сбор историй закрывается 2 апреля в 23:59 мск, а 4 апреля в 12:00 мск Кирилл и Вячеслав объявят двух победителей у себя в каналах.
Удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Как быть, если что-то сломалось?
Когда что-то ломается внутри k8s, ты не просто смотришь логи контейнера и сразу видишь проблему.
Нет, это слишком просто и для слабаков. Сначала ты ничего не понимаешь, потом пьешь кофе, потом уходишь на созвон, потом до вечера копаешься с проблемой и уже на следующий день тебе приходит отличная идея, которая (как неожиданно) оказывается шагом в правильном направлении.
➡️ Почему важно изучать любой инструмент, с которым работаешь постоянно?
Спросим капитана очевидность.
Спасибо капитан, очень полезно.
Когда что-то ломается внутри k8s, ты не просто смотришь логи контейнера и сразу видишь проблему.
Нет, это слишком просто и для слабаков. Сначала ты ничего не понимаешь, потом пьешь кофе, потом уходишь на созвон, потом до вечера копаешься с проблемой и уже на следующий день тебе приходит отличная идея, которая (как неожиданно) оказывается шагом в правильном направлении.
Спросим капитана очевидность.
Потому что тогда вы будете понимать, чего ожидать от инструмента, какие возможности он дает и позволит вам не изобретать велосипедов.
Спасибо капитан, очень полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы часто ходим по граблям, потому что когда оно ломается непривычным для нас способом, сложно понять, в какую сторону копать.
Есть замечательный довольно известный гайд, который позволит шаги дебага выстроить в четкий процесс, если вы застряли.
Есть замечательный довольно известный гайд, который позволит шаги дебага выстроить в четкий процесс, если вы застряли.
🔥10