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

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


    Игровая площадка 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 Docker на сегодняшний день доступен только по Docker ID, то в случае Kubernetes есть и вторая опция — через аккаунт на GitHub.

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

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


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



    Занимательный 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 доступна лишь одна вводная лабораторная работа, но авторы обещают создавать и новые. Их развитие в Play with Docker позволяет надеяться, что это действительно случится. Желающие же поделиться своим опытом могут это сделать в специальном репозитории проекта.

    P.S.


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

    • +17
    • 9,3k
    • 8

    Флант

    335,19

    Специалисты по DevOps и высоким нагрузкам в вебе

    Поделиться публикацией
    Комментарии 8
      0

      Будущее k8s неотвратимо. Я (как ярый сомневающийся) сейчас уже почти точно решил их попробовать. Спасибо за статью.

        0

        Может быть. А что случится с компаниями, которые не смогут на него перейти?

        0
        а что посоветуете как альтернативу от яро сомневающегося? )
          0
          А есть способ использовать «попробовать докер» и «попробовать k8s» в своём терминале, а не у них на сайте, в вебовском?
            +1

            Установите minukube например и попробуйте.

              0
              В Docker Edge уже встроен k8s который нужно только активировать
              –1
              Сайт K8s замечательно лежит.
                0
                Разве? Я увидел ваш комментарий в момент его появления, и у меня сайт K8s открывается в обычном режиме.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое