Сертификация Kubernetes Application Developer

Автор: Дмитрий Канн Чтение на 6 мин
Этот пост  на английском

Вчерашняя пятница, 13-е, оказалась удачным днём: я сертифицировался на разработчика приложений для Kubernetes (по-научному Certified Kubernetes Application Developer или CKAD).

Для тех, кто не в курсе, Kubernetes (K8s) — это де-факто самая популярная и продвинутая платформа для облачных приложений, изначально созданная в Google и ныне используемая почти в каждой уважающей себя ИТ-компании.

На ней же, кстати, работает и небезызвестный сокращатель ссылок once.to — вообще, Kubernetes просто замечательная платформа: мощная, гибкая и при этом опенсорсная.

Возвращаясь к сертификации: как и в любом деле, здесь есть ряд нюансов, о которых хотелось бы рассказать — возможно, кому-то пригодится.

Сертификат CKAD.
Сертификат CKAD.

Цены

Учебный курс Kubernetes for Developers (LFD259) предлагается The Linux Foundation, а соответствующая ему сертификация CKADCloud Native Computing Foundation (CNCF), которая же рулит самим Kubernetes и множеством сопутствующих проектов.

И курс, и экзамен проводятся исключительно в онлайн-формате, в настоящее время цены такие:

  • Курс Kubernetes for Developers$299
  • Экзамен Certified Kubernetes Application Developer$375

Если брать курс вместе с экзаменом (как делал я), то можно сэкономить сотню, обойдётся это удовольствие в $575 — для компании это, конечно, мелочь. Периодически у них ещё бывают акции со скидками — гуглите.

Курс Kubernetes for Developers

Обучение на курсе самостоятельное, язык — английский. Материала там примерно на неделю добросовестной работы по вечерам: презентации, лабораторные работы, в конце каждой главы короткий тест.

Для практических заданий вам потребуется создать кластер Kubernetes с двумя узлами — это принципиально важно. Для этого можно либо воспользоваться облачным провайдером (AWS или GKE, что может быть небесплатно), либо, если у вашего компьютера достаточно памяти, просто поднять на нём пару виртуальных машин на VirtualBox — как я и сделал.

В качестве ОС лучше выбрать Ubuntu 18.04 LTS (она же используется и на экзамене). С курсом идут два скрипта, автоматически настраивающих узлы как control plane и worker, но для того, чтобы они успешно отработали, есть два условия:

  • Узлы должны иметь минимум по 2 CPU (настраивается в свойствах виртуальной машины).
  • На узлах должен быть отключен своп (отредактировать /etc/fstab, закомментировав строчку со своп-разделом, и перезагрузить ВМ).

Пробный экзамен

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

В пакет входит одна бесплатная пересдача в случае провала, а также два сеанса с пробным экзаменом.

Пробный экзамен проводится на базе killer.sh, в целом производящей благоприятное впечатление: тебе даётся виртуальный терминал с bash и 36 часов на завершение двадцати заданий. В описании подчёркивается, что задания в пробном экзамене сложнее, чем в настоящем — но вот на этот счёт я с ними не соглашусь.

Демо-версию экзамена при желании можно пройти второй раз, но вопросы там будут все те же самые. Правильность решения заданий оценивается по нескольким пунктам автоматизированными проверками: на существование подов, сервисов, на содержимое файлов и т.п. Поскольку время на нём было неограниченно, я решал все задания досконально, и управился примерно за два с половиной часа — с максимальным результатом, 98/98.

Фрагмент результатов пробного экзамена.
Фрагмент результатов пробного экзамена.

Реальный экзамен

У настоящего экзамена очень строгие правила: нужно быть одному в помещении, на столе и стенах не должно быть ничего лишнего, все гаджеты должны быть убраны куда подальше и т.п.

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

Проводит экзамен компания PSI, действующая независимо от CNCF и не имеющая отношения к собственно содержимому экзамена.

Начинается процесс с длительной процедуры контроля на вшивость: нужно показать на камеру свой паспорт, потом продемонстрировать комнату, рабочий стол и даже под ним, убрать телефон и наручные часы, показать, что в ушах нет наушников. При этом ты не видишь и не слышишь экзаменатора — его (её) с тобой общение производится исключительно через чат. А за тобой, конечно, наблюдают постоянно. Эта процедура инициации отняла намного больше времени, чем я ожидал — минут 35.

Потом, наконец, начинается экзамен. Тебе даётся два часа и 15-20 вопросов (мне выпало 19).

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

Команды для переключения между кластерами приводятся тут же, и в целом интерфейс экзамена похож на тестовый killer.sh, но всё же несколько другой. Меня, например, напрягала некоторая неотзывчивость терминала — задержка реакции на клавиши была около полусекунды. Да и цветовая схема в терминале оставляет желать лучшего в плане контрастности.

Двух часов мне едва-едва хватило на мои 19 заданий. Забавно, что в последнем из них мне нужно было создать CronJob, который должен был запускаться ежеминутно — и запуститься он не успел, так как через полминуты время вышло, и экзамен окончился (мне это напомнило мой экзамен по голландскому, где мне не хватило секунды, чтобы ответить на последний вопрос).

Так или иначе, экзамен я сдал с первого раза, результат — 98 баллов (наверное, из 100). Для прохождения же достаточно было 66:

Результаты моего экзамена CKAD.
Результаты моего экзамена CKAD.

Советы

Если и вас угораздит сдавать экзамен Certified Kubernetes Application Developer, могу дать несколько советов.

Закладки

Заранее заготовьте меню с закладками на конкретные примеры кода в документации по Kubernetes и положите это меню на панель закладок, чтобы в два клика открывать требуемое. Моё меню выглядело так:

Моё меню закладок для экзамена CKAD.
Моё меню закладок для экзамена CKAD.

Здесь были все три разрешённых адреса, но по факту мне понадобилась только документация, а GitHub и блог не пригодились — но это, видимо, зависит от заданий.

Настройка терминала

В самом начале экзамена потратьте пару минут, чтобы настроить ваш виртуальный терминал и тем самым сэкономить уйму времени впоследствии.

Во-первых, вам придётся редактировать множество файлов .yaml, для чего нужен редактор. На машине будет предустановлен vim, и, если вы так же, как и я, собираетесь использовать его, есть смысл первым делом создать в домашнем каталоге файл .vimrc со следующим содержимым:

set ts=2 sts=2 sw=2 et nu hls

Это задаёт отступы в 2 пробела и включает нумерацию строк и подсветку результатов поиска.

Во-вторых, вы будете постоянно использовать команду kubectl. Я встречал рекомендации сократить её до k с помощью алиаса, но советчики забывали о том, что при этом вы потеряете возможность автодополнения.

Чтобы автодополнение работало и с короткой версией, нужно добавить в самый конец .bashrc следующее:

alias k=kubectl
source <(kubectl completion bash)
complete -o default -F __start_kubectl k

На экзамене нельзя пользоваться никакими сторонними файлами или записями, поэтому вышеприведённое нужно заучить наизусть. Самую последнюю команду, кстати, заучивать необязательно: её можно получить, набрав kubectl completion bash | tail — эта строчка будет в самом конце, нужно будет лишь скопировать её часть до буквы k:

Как получить команду для автодополнения алиаса k.
Как получить команду для автодополнения алиаса k.

Ну и, главное, после сохранения файла не забудьте применить эти изменения в текущей сессии с помощью:

source .bashrc

Спокойствие, только спокойствие

Люди под давлением склонны тупеть. Поэтому старайтесь сохранять спокойствие и уверенность в себе, и всё у вас получится.

Результат

Результат экзамена появляется в течение суток после его окончания: вы получаете ссылку на PDF-файл, а также на соответствующий бэдж на Credly. Некоторое время спустя становятся видны и заработанные вами баллы (score).

Официально сертификация остаётся действительной в течение трёх лет.

Удачи и красивых вам сертификатов! ■

Подписаться на обновления блога:

Комментарии

Поделиться: