В прошлом году у организации CNCF (Cloud Native Computing Foundation), помогающей развиваться таким Open Source-проектам, как Kubernetes и Prometheus, появилась программа сертификации CKA (Certified Kubernetes Administrator). В начале этого лета мы решили в ней поучаствовать и получили первые сертификаты для своих сотрудников. О том, что это, зачем и как происходит, с удовольствием рассказываем всем любопытствующим читателям хабры.

Предисловие


За минувшие годы проект Kubernetes стал по-настоящему большим, собрав вокруг себя многочисленных заинтересованных лиц: как вендоров, так и пользователей (системных администраторов и разработчиков), и сторонних энтузиастов. Это привело к логичному витку в его становлении — необходимости в стандартизации и сертификации.

Так начали появляться программы для партнёров, стандарты для дистрибутивов K8s и, конечно, экзамены для специалистов.

В марте 2017 года впервые была опубликована программа экзамена CKA, репозиторий с которой поддерживается по сей день (в последний раз он обновлялся в начале этого года). Главное его содержимое — это одноимённый PDF-документ:



… из которого можно узнать, какие темы затрагивает экзамен и как эти темы распределены (в процентах) по всему заданию.

15 июня того же года CNCF объявила о начале бета-тестирования экзамена. Ещё тогда пять наших инженеров подали заявки на участие в этом мероприятии:



… однако никакого ответа почему-то не получили… И мы дождались официального старта экзамена, чтобы поучаствовать в нём уже «полноценно».

Зачем нам это?


Довольно популярной реакцией у многих на получение каких бы то ни было сертификатов является вопрос «Зачем?»:



Не претендуя на открытие Америки и универсальность нашего ответа на этот вопрос, просто зафиксируем его здесь для тех, кому он нужен:

  1. Свои знания и навыки полезно проверять, а в данном случае тест был подготовлен «самой главной» организацией (CNCF при поддержке родительской The Linux Foundation), что даёт основания полагаться на профессионализм и объективность. (К слову, уже доступны и экзамены по Kubernetes от других компаний — подробнее об этом см. в конце статьи.)
  2. Несмотря на то, что наличие сертификатов не гарантирует каких-то контрактов, а многим такие формальности и попросту безразличны, это всё равно дополнительный аргумент в маркетинге и на рынке даже для тех случаев, когда «вас уже и так знают».
  3. Участие в подобных инициативах — очевидная помощь для проекта Kubernetes и связанного с ним сообщества.

Подготовка


Сразу оговорюсь, что сдача экзамена подразумевает подписание соглашения, которое включает в себя пункт о конфиденциальности, запрещающий разглашать подробности о заданиях. Поэтому мы весьма ограничены в рассказе о том, какие конкретно вопросы вас ожидают и как к ним готовиться…

Тем не менее, уже упомянутый PDF-документ содержит довольно подробный перечень тем, «куда стоит копать». Мы создали внутренний документ по подготовке к экзамену, в который также вошли следующие ссылки:

  • подробное (27 стр.) руководство Candidate Handbook, обновлённое в августе этого года и содержащее исчерпывающие инструкции об экзамене и технике его прохождения (как осуществляется регистрация, какие инструменты доступны во время экзамена и что с ними можно делать, какова политика пересдачи…);
  • лаконичные (3 стр.) советы по прохождению экзамена — они были обновлены в июле 2018 г. и рассказывают только о технике (частично дублируя фрагменты Handbook): возможности доступного терминала, используемая версия Kubernetes (1.11), общие сведения об ожидающих вас в заданиях кластерах и тому подобное;
  • в качестве основного инструмента для подготовки мы рассматривали каталоги ресурсов, сгруппированных по официальным темам: раз и два;
  • не нуждающийся в особом представлении Kubernetes The Hard Way;
  • простые способы получить тестовый кластер с Kubernetes: Katacoda и Play with Kubernetes (о последнем мы уже писали в блоге).

Кроме того, мы особо обращаем внимание сотрудников на понимание следующих вопросов:

  • как пользоваться встроенными фильтрами kubectl;
  • весь цикл деплоя приложения без использования Helm;
  • как диагностировать работоспособность кластера.

Наконец, в англоязычном интернете уже можно найти ряд других публикаций, посвящённых этой теме. В них представлены [незначительные] дополнения — где-то к подготовке, а где-то и к самому процессу экзамена. Например:


Ещё одно, как бы «остающееся за кадром», требование для многих будет очевидным, но всё же. Единственный официальный язык для экзамена CKA — английский. Это означает, что вы: а) должны читать и понимать все технические вопросы в заданиях, б) должны обладать минимальным разговорным английским для того, чтобы понимать устные указания экзаменатора во время сеанса и следовать им.

Сколько занимает подготовка? Ответ предсказуем: всё очень индивидуально. Для иллюстрации приведу несколько примеров:

  • Наш технический директор Дмитрий Столяров (distol), который по своей натуре предпочитает весьма тщательно готовиться к чему то ни было, суммарно потратил 8 часов.
  • Один из наших инженеров, который пришёл в нашу компанию без знаний Kubernetes и, по его словам, «потратил на акклиматизацию к Kubernetes вообще полгода-год(?)», перед самим экзаменом готовился около 6 часов.
  • Но если это было про людей, которые имеют практический опыт работы с Kubernetes, есть и обратная сторона… В сети нам попался радикально другой пример специалиста, который купил курс подготовки к экзамену от The Linux Foundation и потратил на всё это около 4-5 недель.

К слову, вот этот онлайн-курсKubernetes Fundamentals (LFS258). Он включает в себя материалы на 35 часов (они доступны в течение года после оплаты) по следующим темам:



Стоимость — 299 USD, а вместе с экзаменом CKA — 499 USD (получается экономия в 100 USD). В качестве предварительной подготовки к этому курсу авторы упоминают бесплатный Introduction to Kubernetes (LFS158), про который мы писали в блоге. Однако напомню, что у наших инженеров нет опыта прохождения LFS258 (в том числе и в рамках подготовки к CKA).

Последний штрих: для того, чтобы экзамен состоялся, потребуется стабильный интернет и работающая веб-камера, которую легко перемещать в любые направления, как того потребует «надзиратель» (Proctor).

Процесс


«Создателям экзамена удалось достичь уникального состояния экзаменующегося: полагаться можно только на себя, никакой помощи извне. Проктор (человек вообще не из IT-сферы) не понимает ничего из того, что происходит в экзамене, а лишь внимательно смотрит на ваш экран и веб-камеру. В вебку попросил даже ушной канал показать».

— впечатление от экзамена глазами нашего инженера Андрея Климентьева (zuzzas).

В упомянутом соглашении к экзамену есть довольно строгие требования к месту его проведения и самому процессу. В частности, локация не должна быть публичной, комната должна быть приватной (не допускаются люди кроме самого кандидата) и хорошо освещена (но без яркого света от окон/ламп позади кандидата), рабочий стол должен быть совершенно пуст (без любых устройств, бумажек и т.п.). Запрещено общаться с кем бы то ни было, использовать сторонние устройства, записи, блокноты, документацию (кроме официальной технической документации проекта Kubernetes)… Кандидату запрещается даже есть и пить (для этого можно запросить перерыв):

«Меня за выпивание воды наказали. А я даже не задумывался над этим, потому что очень люблю гидрировать себя».zuzzas

А вот ещё более «пугающий» опыт со слов distol:

«Самым страшным для меня — оказался запрет «закрывать лицо». Многие люди, когда думают, делают вот так или вот так. А мне нужно разминать виски/брови, причем я делаю это одной рукой — примерно вот так; только рука закрывает все лицо. Соответственно, мне сделали два раза замечания в начале и я весь экзамен тратил существенные усилия, чтобы держать руки на клавиатуре».

Своим коллегам вторит и Андрей Половов (driusha):

Самым тяжёлым оказалось ожидание некого страшного экзамена и сама процедура сдачи на западный манер, где списывать считается постыдным. Во время экзамена приходилось получать замечания за, казалось бы, безобидные поступки: привычка бормотать под нос свои мысли и — самое неприятное для меня — взгляд в сторону для разминки глаз…

Непосредственная сдача экзамена занимает 1,5 часа.

Итог


Касательно технического содержимого экзамена впечатления у нас такие:



Или вот от driusha:
«Суть же экзамена оказалась вполне посильной любому, кто имел реальный опыт работы с Kubernetes. Если это про вас, то ваши шансы очень высоки».

На что ещё советуют обратить внимание наши кандидаты по итогам сдачи CKA, так это на грамотное планирование/распределение времени на выполнение заданий.

В конце экзамена результаты определяются автоматически, однако они не становятся доступными до их проверки вручную. E-mail с финальным результатом приходит в течение 36 часов после сдачи.



Если сдать CKA сразу не удалось, то в стоимость экзамена включена одна бесплатная попытка пересдачи. Впрочем, никому из наших специалистов она пока что не потребовалась. Успехов и вам!

Дополнение


Существует ещё несколько программ сертификации по Kubernetes. Во-первых, в самой CNCF подготовили экзамен для разработчиков — Certified Kubernetes Application Developer (CKAD). В нём кандидатов проверяют на «способности проектировать, создавать, настраивать и публиковать cloud native-приложения для Kubernetes», что подразумевает наличие навыков определения ресурсов для приложения и использования основных примитивов для последующей работы с ними (т.е. сборки, мониторинга, диагностики проблем). Стоимость — 300 USD.

Во-вторых, уже появились экзамены от других вендоров:

  1. Kubernetes & Docker KCM100 от Mirantis. В момент появления (декабрь 2016 года) позиционировалась как первая в мире сертификация, формально не зависящая от поставщика. Состоит из 30 вопросов, в которых соотношение по Docker / Kubernetes — 20 к 80 %. Стоимость — 600 USD.
  2. EX280 от Red Hat, что полностью звучит как Red Hat Certified Specialist in OpenShift Administration. Легко догадаться, что вопросы экзамена посвящены не upstream-дистрибутиву Kubernetes, а OpenShift (если говорить точнее, то текущая версия основана на Red Hat OpenShift Container Platform 3.9). Стоимость — 450 USD.

Но лично мы к ним всерьёз не присматривались — по крайней мере, на настоящий момент времени.

P.S.


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

Комментарии (22)


  1. denaspireone
    10.10.2018 12:00

    Однако запрет на отвод глаз и разминка висков или лба это конечно сильно…


    1. HappyGroundhog
      10.10.2018 13:45

      Зависит от проктора. Я всё собираюсь написать про сдачу LFCS, там схожие требования. Я просто закрывал глаза и втыкал их тогда в потолок «на подумать». Вообще проктор, если вы несколько раз смотрите в одну и ту же сторону просто попросит вас показать камерой что там у вас. Каких-то проблем с «прикрыть глаза и помассировать их руками недолго» я тоже не замечал. Я вообще с проктором столкнулся только на этапе «похлопайте в ладоши», потому как немного видимо занизил звук на камере, чтобы не мешал фоновый шум за окном.


  1. scruff
    10.10.2018 20:06

    Всё по типу Red Hat из архитекторской линейки. Весьма годная тенденция проведения экзамена — почти face2face, хотя и весьма дорогая из-за этого. Сам готовлюсь к Ansible (EX470) и скоро узнаю все прелести «не закрывай лицо» и «в туалет только по разрешению». Судя по отзывам это будет присутствовать.


  1. Ipeacocks
    10.10.2018 21:16

    Половина вещей в статусе альф-бета (немного утрирую конечно), но сертификация уже есть. Я к тому, что поменятся могут даже достаточно основные функции.


    1. shurup Автор
      11.10.2018 05:55

      Конечно, утрируете… и с какой целью? Kubernetes — система, готовая для использования в production. Да, она молода и развивается сильно активнее (=меняется чаще и больше), чем, скажем, какой-нибудь Linux-дистрибутив enterprise-класса. Однако можно подумать, что в новых крупных релизах RHEL никогда не меняются даже основные функции и поэтому по нему тоже нельзя сертифицировать.


      1. Ipeacocks
        11.10.2018 15:31

        Ок, все конечно субьективно. Я смотрел на оригинальный Ингресс в начале этого года (январь 2018), мне нужно было изменять анотации github.com/kubernetes/ingress-nginx/blob/nginx-0.9.0/docs/user-guide/annotations.md и была только бета-ветка. Потом, (июнь-июль) я увидел уже другую доку по иному адресу github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md, где анотации уже другие: старые не работают, но и очевидных проблем к8с не показывает при применении старых yaml-ов. Да, они прямо писали, что Ингресс не полностью зрелый и все может измениться. Но блин, эта тема стоит в списке сертификации.

        > Однако можно подумать, что в новых крупных релизах RHEL никогда не меняются даже основные функции и поэтому по нему тоже нельзя сертифицировать.

        Да, но как часто выходят новые релизы RHEL? Например RHEL 6 сапортится с 2011 до ~2025, что демонстрирует зрелость продукта. А Куберентис релизят раз в квартал, часто переписывают/кардинально изменяют подсистемы (CoreDNS, CRI, IPVS т.д.). Не уверен, что в сертификации для него вообще есть большой смысл. Разве что шилдик для сотрудников компании, которые предоставляют услуги на К8с (и это не значит, что это плохо).


        1. zuzzas
          11.10.2018 15:40

          Смущает новый префикс? Нас тоже, потому что много внутренних обвязок на старый были завязаны. Нам помогла CLI опция : --annotations-prefix ingress.kubernetes.io


          1. Ipeacocks
            11.10.2018 17:01

            Я не говорю, что мы проблему не решили, я веду о том, что kubernetes (в часности ingress как его часть) not mature. И по not mature производится сертификация.


  1. ALexhha
    11.10.2018 00:45

    А какой срок действия сертификата? Есть ли что то подобное как у RedHat, например, если получил CentOS5, то с выходом 7ки твой сертификат уже не действителен?


    1. shurup Автор
      11.10.2018 05:59

      На данный момент у CKA написано (упомянутый agreement, пункт «3.2 Certification Period») вот так:

      Certifications expire 24 months from the date that the Program certification requirements are met by a candidate. Candidates must meet Certification renewal requirements prior to the expiration date of their certification in order to maintain active certification. If Certification renewal requirements are not met before the expiration date, Certification will be deemed revoked without further action by The Linux Foundation and this Agreement shall terminate effective as of the expiration date, subject to the provisions of Section 12.3.


      1. scruff
        11.10.2018 06:44

        А где проходил сам экзамен? В Москве уже есть киоски для сдачи СКА?


        1. shurup Автор
          11.10.2018 07:08

          В тексте написано про веб-камеру и «надзирателя» — CKA сдаётся только онлайн.


          1. scruff
            11.10.2018 08:43

            Прошу прощения, возможно не догоняю. On-line значит где угодно, хоть дома?


            1. shurup Автор
              11.10.2018 08:46

              Да! Там даже перечислены требования к помещению, в котором вы должны при этом находиться.


              1. scruff
                11.10.2018 08:48

                Спасибо, детально глянул «Agreement» по этой части.


  1. scruff
    11.10.2018 06:36

    «суммарно потратил 8 часов.» Всегда удивлялся способностям таких людей. Это уникумы!!! У меня на подготовку к подобному экзамену ушло бы минимум полгода. К примеру, к RHCE (ex300) я готовился около года, и то кое-как получилось сдать со 2-й попытки, первая попытка была «разведка боем». Отсутствие технологий в моём продакшне + сложность экзаменов дает о себе знать (((((. Спасает только упорство и желание развиваться.


    1. shurup Автор
      11.10.2018 07:12

      «Отсутствие технологий в моём продакшне» — да, это явный ключ. В нашем случае сдавали люди с реальным опытом работы с Kubernetes. Впрочем, и другой вариант у нас тоже приведен:

      «В сети нам попался радикально другой пример специалиста, который купил курс подготовки к экзамену от The Linux Foundation и потратил на всё это около 4-5 недель».


      1. scruff
        11.10.2018 07:24

        Подскажите, если, допустим у меня практический опыт в том же самом Kubernetes нулевой, но экзамен сдан (опять же благодаря упёртости и энтузиазму) — может ли это быть плюсом в поиске работы в DevOps? Или же всё индивидуально?


      1. scruff
        11.10.2018 08:04

        … К предыдущему моему комментарию — если взять Вас, как работодателя — рассматривали бы Вы такого кандидата?


        1. shurup Автор
          11.10.2018 08:27

          Во многом всё индивидуально, т.к. к нам регулярно приходят люди без опыта в Kubernetes, а уже внутри мы их «прокачиваем». Если мы ищем с каким-то конкретным навыком (например, Kubernetes), то реальный опыт важнее сертификатов. Но если такое требование не является обязательным, то и сертификат без опыта, конечно, тоже будет плюсом.


  1. gitKroz
    11.10.2018 15:38

    Растолкуйте, пожалуйста, почему вокруг такое большое внимание к Kubernetes, и такое маленькое к OpenShift? (Под вниманием понимаю количество статей, конференций, описаний опыта получения сертификатов и т. п.)


    1. shurup Автор
      11.10.2018 15:50

      Основной ответ на этот вопрос на поверхности: сравните объём внимания к Linux и конкретно к RHEL… Потому что Kubernetes — это основа и как бы umbrella для всех появляющихся вендорских дистрибутивов. Поэтому всё общее внимание (включая мероприятия, статьи и т.п.) поддерживаются и Red Hat, и Google, и всеми другими вендорами (да ещё и сторонними энтузиастами-компаниями, которые за upstream). А вся движуха вокруг OpenShift может быть только от Red Hat (ну, и некоторых её партнёров — только не самых крупных, а таких, у которых ещё нет собственных дистрибутивов).

      И дополнительный ответ уже больше с «личной» стороны: мы не любим vendor lock-in и клиентам такое предлагать по умолчанию не будем (хотя и можем взяться за обслуживание, если у них есть собственные основания делать именно и только так).