Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
24 ноября закончился Слёрм Мега, продвинутый интенсив по Kubernetes. Следующая Мега пройдет в Москве 18-20 мая.
Идея Слёрма Мега: заглядываем под капот кластера, разбираем в теории и на практике тонкости установки и конфигурации production-ready кластера («the-not-so-easy-way»), рассматриваем механизмы обеспечения безопасности и отказоустойчивости приложений.
Бонус Меги: те, кто проходит Слёрм Базовый и Слёрм Мега, получают все знания, необходимые для сдачи экзамена на CKA в CNCF и скидку 50% на экзамен.
Отдельное спасибо Selectel за то, что предоставили облако для практики, благодаря чему каждый участник работал в собственном полноценном кластере, а нам не пришлось за это добавлять к цене билета лишние 5 тысяч.
Кто такие Бондарев и Селиванов, рассказывать не буду, кому интересно, читайте здесь.
Слёрм Мега. Первый день.
В первый день Слёрма Мега мы нагрузили участников 4 темами. Павел Селиванов рассказал о процессе создания отказоустойчивого кластера изнутри, о работе Kubeadm, а так же о тестировании и траблшутинге кластера.
Первый кофебрейк. Обычно «звонок для учителя», но на Слёрме, пока ученики пьют кофе, преподаватели продолжают отвечать на вопросы.
И несмотря на то, что над головой Павла Селиванова витает облачко «Перерыв II», уйти на перерыв ему не судьба.
Сергей Бондарев и Марсель Ибраев ждут своей очереди выходить к кафедре.
В перерыве я подошёл к Сергею Бондареву и спросил: «Что бы ты посоветовал всем инженерам Kubernetes по своему опыту работы с кластерами наших клиентов?»
Сергей дал простую рекомендацию: «Закрывайте доступ из интернета к API-серверу. Потому что периодически находятся угрозы безопасности, которые позволяют получить доступ к кластеру неавторизованным пользователям.»
Спустя пару минут и бутылку минералки Павел Селиванов бросился в бой с тенью темой «Авторизация в кластере при помощи внешнего провайдера», а именно LDAP (Nginx + Python) и OIDC (Dex + Gangway).
В следующий перерыв свой совет инженерам Kubernetes дал Марсель Ибраев, спикер Слёрма, Certified Kubernetes Administrator: «Скажу вроде банальную вещь, но учитывая насколько часто я с этим сталкиваюсь, есть подозрение, что это не все учитывают. Не стоит слепо верить всяким How-To из Интернета, в которых расскажут, как классно работает то или иное решение. В контексте Кубернетес это приобретает особый смысл. Ибо Кубернетес сложная система и добавление в нее решения, которое не было протестировано в конкретно вашем проекте и вашей инсталляции кластера, может привести к печальным последствиям, несмотря на то, что в Интернете писали про его крутость. Даже просто сам Кубернетес без взвешенного подхода может навредить вашему проекту, «что русскому хорошо, то немцу смерть». Поэтому тестим, проверяем, обкатываем любое решение перед тем, как внедрить его у себя. Только так вы учтете все нюансы, которые могут возникнуть».
После обеда вступил в бой Сергей Бондарев. Его тема Network policy, а именно введение в CNI и Network Security Policy.
В интернете полно статей о Network Policy. Среди админов встречается мнение, что без Network Policies можно обойтись, но безопасники очень любят этот инструмент и требуют, чтобы Network Policies были включены.
Штурвал Kubernetes у Сергея Бондарева перехватил Павел Селиванов с темой «Безопасные и высокодоступные приложения в кластере». Есть у него любимые темы: PodSecurityPolicy, PodDisruptionBudget, LimitRange/ResourceQuota.
Тема Меги, с которой Павел выступал на DevOpsConf: как легко и быстро сломать кластер Kubernetes и получить все права за 5 минут.
После рассказа, как легко взламывается кластер Kubernetes, скептично настроенные админы говорят: «Ага, я же говорил, ваш Кубернетес — дырявая фигня». Павел объясняет, что настроить безопасность в кластере можно, и это несложно, просто по умолчанию настройки безопасности отключены. Подробности в расшифровке доклада.
— Кто сломал кластер? Вот он сломал кластер! Мне отсюда прекрасно видно!
На Слёрмах не бывает всё просто и легко, чтобы не скучалось. Но этот раз Telegram решил показать всем пятую точку:
Марсель Ибраев, [22 нояб. 2019 г., 16:52:52]:
Коллеги, в данный момент наблюдаются сбои в работе Телеграм, имейте это ввиду
На этом яркий и наполненный практическими знаниями первый день завершился. На второй день будет ещё больше практики, запуск кластера БД на примере PostgreSQL, запуск кластера RabbitMQ, управление секретами в Kubernetes.
Слёрм Мега. Второй день.
Ведущий начал второй день бодрым объявлением: «С утра, как выразился вчера Павел, нас ждёт настоящий хардкор. Выражаясь языком хирургов, мы влезем в кишки Кубернетеса!»
Массовик-затейник — это отдельная история. Одна из проблем Слёрма — люди от информационной перегрузки отключаются и засыпают. Мы всегда искали способ что-то с этим сделать, и на прошлом Слёрме хорошо показали себя небольшие игры с аудиторией. В этот раз мы наняли специально обученного человека. В чате много прикалывались над «интересными конкурсами», но факт остается фактом — таких бодрых участников мы еще не видели.
Марселю Ибраеву пришли на помощь — и он начал изучать Stateful приложения в кластере. А именно запуск кластера БД на примере PostgreSQL и запуск кластера RabbitMQ.
После обеда приступил к K8S Сергей Бондарев. И темой его была «Хранение секретов». Его прикрывали Малдер и Скалли. Изучали управление секретами в Kubernetes и Vault. А так же «The truth is out there».
Что и продолжалось до самого позднего вечера, когда Павел Селиванов заговорил о Horizontal Pod Autoscaler
Слёрм Мега. Третий день.
Резко и бодро с самого утра Сергей Бондарев растормошил аудиторию резервным копированим и восстановлением после сбоев. Бэкап и восстановление кластера с применением Heptio Velero и etcd проверили лично.
Сергей продолжил тему ежегодной ротации сертификатов в кластере: продление сертификатов control-plane с помощью kubeadm. Перед самым обедом, чтобы нагулять участникам аппетит или отбить его окончательно, Павел Селиванов поднял тему деплоя приложения.
Рассматривались инструменты темплэйтирования и деплоя, а заодно стратегии деплоя.
Павел Селиванов рассказал новую тему: Service Mesh, установка Istio. Тема оказалась настолько богатой, что по ней можно делать отдельный интенсив. Обсуждаем планы, следите за анонсами.
Главное, чтобы всё правильно работало. Потому что наступило время практики:
построение CI/CD, чтобы одновременно запустить деплой приложения и обновление кластера. В учебных проектах все работает хорошо. А жизнь порой полна неожиданностей.
May the Slurm be with you!