Вчерашняя пятница, 13-е, оказалась удачным днём: я сертифицировался на разработчика приложений для Kubernetes (по-научному Certified Kubernetes Application Developer или CKAD).
Для тех, кто не в курсе, Kubernetes (K8s) — это де-факто самая популярная и продвинутая платформа для облачных приложений, изначально созданная в Google и ныне используемая почти в каждой уважающей себя ИТ-компании.
На ней же, кстати, работает и небезызвестный сокращатель ссылок once.to — вообще, Kubernetes просто замечательная платформа: мощная, гибкая и при этом опенсорсная.
Возвращаясь к сертификации: как и в любом деле, здесь есть ряд нюансов, о которых хотелось бы рассказать — возможно, кому-то пригодится.
Цены
Учебный курс Kubernetes for Developers (LFD259) предлагается The Linux Foundation, а соответствующая ему сертификация CKAD — Cloud 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:
Советы
Если и вас угораздит сдавать экзамен Certified Kubernetes Application Developer, могу дать несколько советов.
Закладки
Заранее заготовьте меню с закладками на конкретные примеры кода в документации по Kubernetes и положите это меню на панель закладок, чтобы в два клика открывать требуемое. Моё меню выглядело так:
Здесь были все три разрешённых адреса, но по факту мне понадобилась только документация, а 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
:
Ну и, главное, после сохранения файла не забудьте применить эти изменения в текущей сессии с помощью:
source .bashrc
Спокойствие, только спокойствие
Люди под давлением склонны тупеть. Поэтому старайтесь сохранять спокойствие и уверенность в себе, и всё у вас получится.
Результат
Результат экзамена появляется в течение суток после его окончания: вы получаете ссылку на PDF-файл, а также на соответствующий бэдж на Credly. Некоторое время спустя становятся видны и заработанные вами баллы (score).
Официально сертификация остаётся действительной в течение трёх лет.
Удачи и красивых вам сертификатов! ■
Комментарии