Play with Kubernetes — сервис для практического знакомства с K8s

в 7:22, , рубрики: devops, docker, kubernetes, Блог компании Флант, Серверное администрирование, системное администрирование

Около года мы писали об интересном онлайн-сервисе для самообразования в мире контейнеров — Play with Docker. Его авторы, поддерживаемые компанией Docker Inc, не стояли на месте и последовали за трендами, что мы наблюдаем не только в «узком кругу» Docker, но и в индустрии в целом: они запустили новый аналогичный сервис, посвящённый уже Kubernetes. Итак, встречайте Play with Kubernetes (PWK)!

Play with Kubernetes — сервис для практического знакомства с K8s - 1

Игровая площадка PWK

PWK полностью повторяет идею (и даже интерфейс) своего «прародителя» Play with Docker: его основной сайт — это так называемая «игровая площадка» (playground), предоставляющая в веб-браузере доступ к виртуальной Linux-машине для возможности проведения экспериментов с кластерами Kubernetes. По сути это доступный бесплатно SaaS-аналог Minikube со своими удобствами (работа прямо в браузере) и ограничениями (см. ниже).

Технически для этого используются возможности технологии Docker-in-Docker (DIND), позволяющей запускать контейнеры Docker внутри других контейнеров Docker. (Такой подход к работе с Docker не является рекомендуемым в общем случае, однако имеет право на жизнь в особых применениях, таких как разработка самого Docker и связанных технологий.) Используемые версии программного обеспечения в сервисе:

  • «хостовая» операционная система (на ­узле) — CoreOS 7.4.1708,
  • сервер Kubernetes — 1.8.11,
  • клиент Kubernetes — 1.8.14,
  • Docker — 18.03.1-ce.

Для эмуляции терминала в веб-браузере по-прежнему предлагается JavaScript-реализация xterm.js, для которой доступно небольшое количество настроек (выбор размера шрифта, возможность использования клавиатурных сочетаний из macOS). На площадке действуют прежние, т.е. знакомые по Play with Docker, ограничения: не более 4 часов беспрерывной работы в рамках одной сессии и не более 5 узлов кластера (по 4 Гб RAM у каждого).

Play with Kubernetes — сервис для практического знакомства с K8s - 2

Если вход в площадку Play with Docker на сегодняшний день доступен только по Docker ID, то в случае Kubernetes есть и вторая опция — через аккаунт на GitHub.

Фактический запуск основного сайта Play with Kubernetes — игровой площадки — прошёл «тихо и незаметно» ещё прошлым летом, однако сама по себе она не так интересна, как лабораторные работы. И вот лишь месяц назад состоялся публичный анонс первой такой работы, доступной на ресурсе Play with Kubernetes Classroom.

Лабораторная работа с Kubernetes

В её основу легли труды Jérôme Petazzoni, посвятившего 7 лет своей жизни компании Docker Inc, где он прошёл путь от SRE-инженера до евангелиста и провёл множество семинаров по работе с контейнерами и Kubernetes.

Play with Kubernetes — сервис для практического знакомства с K8s - 3

Занимательный offtopic: Почему Jérôme ушёл из Docker?

Jérôme, которого вы можете знать ещё и по репозиторию уже упомянутого DIND, начинал свой путь в Docker с небольшого стартапа dotCloud, конкурирующего с Heroku (~2011 год). В 2013 году компания присоединилась к Docker Inc и автор, будучи SRE, впервые выступил с докладом на тему контейнеров. Активным же докладчиком он стал уже с 2014 года, в среднем делая по 2 выступления в неделю.

К 2016 году к этим регулярным выступлениям добавились семинары по оркестровке контейнеров… и в это же время Jérôme осознал, что исчерпал свои ресурсы. В октябре его ощущения подтвердились получением диагноза «депрессия». Последовали антидепрессанты и терапия, что привело к видимому улучшению состояния. Однако летом 2017 года Jérôme, принимая участие в исследовании о психическом здоровье, прошёл тест Maslach Burnout Inventory на выгорание и обнаружил, что находится в «красной зоне». Пообщавшись со сведущими в этом вопросе людьми, он пришёл к решению взять перерыв в 2018 году, а перед этим приложил максимум своих усилий к реализации стратегии Docker, направленной на поддержку Kubernetes.

«В 2018 году я собираюсь посвятить время себе. Я изучаю Rust. Я пишу небольшой клон [музыкального инструмента] Ableton для подключения grid-контроллера (вроде Monome или LaunchPad) к Raspberry Pi для воспроизведения живой музыки. Собираюсь пройти ретрит по медитации випассана. Надеюсь быть наставником для тех, кто не получил такое счастье и привилегии, как я сам, и стать лучшим союзником для них. Уход из Docker — первый шаг и самый сложный, но предстоящий путь выглядит замечательно».

Но вернёмся к собственно Play with Kubernetes…

Предлагаемая в онлайн-сервисе лабораторная работа ориентирована на начинающих и посвящена основным концепциям и возможностям Kubernetes:

  • что вообще позволяет делать эта система: запуск контейнеров, балансировка нагрузки, выкатывание новых версий образов, автомасштабирование…;
  • архитектура Kubernetes;
  • ресурсы Kubernetes: узлы, поды, сервисы, пространства имён, секреты;
  • декларативный подход;
  • сетевая модель Kubernetes;
  • и т.п.

Главное же в том, что эта теория подкрепляется практикой, ради чего всё и затевалось. В рамках практической части предлагается запустить свои первые контейнеры и научиться пробрасывать порты для них, создать deployment и масштабировать его, поработать с ресурсами в YAML, познакомиться с лейблами и селекторами… не буду подробно перечислять все этапы — лучше увидеть (и попробовать) их самостоятельно на странице Kubernetes Hands-on Workshop.

Выглядит же прохождение лабораторной работы аналогично тому, как всё было в Play with Docker: слева у вас есть документ-инструкция (в том числе и команды для ввода), а справа — терминал (точнее, их два — для двух узлов Kubernetes), позволяющий «поиграть» в администратора K8s-кластера и видеть, что и как происходит на самом деле. Последнему, безусловно, способствует возможность выполнять произвольные уточняющие команды на любых этапах выполнения работы.

Play with Kubernetes — сервис для практического знакомства с K8s - 4

Вместо заключения

Сейчас в Play with Kubernetes доступна лишь одна вводная лабораторная работа, но авторы обещают создавать и новые. Их развитие в Play with Docker позволяет надеяться, что это действительно случится. Желающие же поделиться своим опытом могут это сделать в специальном репозитории проекта.

P.S.

Читайте также в нашем блоге:

Автор: shurup

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js