ProHoster > Блог > Администрирование > Мой опыт и советы по сдаче экзамена Certified Kubernetes Application Developer (CKAD)
Мой опыт и советы по сдаче экзамена Certified Kubernetes Application Developer (CKAD)
Совсем недавно я успешно сдал экзамен Certified Kubernetes Application Developer (CKAD) и получил сертификат. Сегодня хочу рассказать о самой процедуре сертификации и о том, как я к ней готовился. Для меня это был интересный опыт сдачи экзамена онлайн под пристальным наблюдением экзаменатора. Тут не будет ценной технической информации, статья имеет сугубо повествовательный характер. Также у меня не было большого бэкграунда в работе с Kubernetes и не было совместной подготовки с коллегами, я учился и тренировался сам в свободное от работы время.
Я достаточно молод в области веб-разработки, но я сразу понял, что без хотя бы элементарных знаний Docker и K8s далеко не уедешь. Прохождение курса и подготовка к подобного рода экзамену мне показались хорошей точкой входа в мир контейнеров и их оркестрации.
Если вы все еще думаете, что Kubernetes это слишком сложно и это не для вас, прошу под кат.
Что это такое?
Есть два типа сертификации по Kubernetes от Cloud Native Computing Foundation (CNCF):
Certified Kubernetes Application Developer (CKAD) — проверка способности проектировать, создавать, настраивать и публиковать cloud native-приложения для Kubernetes. Экзамен длится 2 часа, 19 заданий, проходной балл 66%. Требуются весьма поверхностные знания основных примитивов. Стоимость $300.
Certified Kubernetes Administrator (CKA) — проверка навыков, знаний и компетентности для выполнения обязанностей администраторов Kubernetes. Экзамен длится 3 часа, 24 задания, проходной балл 74%. Требуются более глубокие знания построения и настройки систем. Стоимость также $300.
Программы сертификации CKAD и CKA были разработаны фондом Cloud Native Computing Foundation с целью расширения экосистемы Kubernetes за счет стандартизированного обучения и сертификации. Этот фонд создан Google в партнерстве с Linux Foundation, которому и был в свое время передан Kubernetes в качестве начального технологического вклада и который поддерживают такие компании, как Microsoft, Apple, Facebook, Cisco, Intel, Red Hat и многие другие (с) Wiki
Короче говоря, это экзамены от “главной организации” по Kubernetes. Конечно, есть сертификации и от других фирм.
Зачем?
Наверное это самый противоречивый пункт во всей этой затее. Не хочу разводить холивар на тему нужности сертификатов, мне просто хочется верить, что наличие подобного рода сертификата положительно повлияет на мою стоимость на рынке труда. Все субъективно — никогда не знаешь, что именно послужит переломным моментом в решении принять вас на работу.
PS: работу не ищу, сейчас меня все устраивает… ну разве что с релокейтом куда-нибудь в США
Подготовка
В тесте CKAD 19 вопросов, которые распределены по темам следующим образом:
13% – Core Concepts
18% – Configuration
10% – Multi-Container Pods
18% – Observability
20% – Pod Design
13% – Services & Networking
8% – State Persistence
На платформе Udemy есть просто шикарный курс от одного индуса под именем Mumshad Mannambeth (ссылка будет в конце статьи). Действительно очень качественный материал за небольшую плату. Особенно круто то, что по ходу курса предлагается выполнять практические упражнения в тестовой среде, таким образом вы нарабатываете навык работы в консоли.
Я прошел весь курс и прорешал все практические упражнения (не обошлось конечно без подглядывания в ответы), а непосредственно перед экзаменом еще раз пересмотрел все лекции на увеличенной скорости и повторно прошел два последних пробных экзамена (mock exams). Заняло у меня это около месяца в спокойном темпе. Этого материала мне вполне хватило, чтобы уверенно сдать экзамен с результатом в 91%. В одном задании где-то ошибся (NodePort не заработал), и нескольких минут не хватило, чтобы довыполнить еще одно задание с подключением ConfigMap из файла, хотя решение знал.
Как проходит экзамен
Экзамен проходит в браузере, с включенной веб камерой и расшаренным экраном. Правила экзамена требуют, чтобы в комнате не находилось посторонних людей. Я сдавал экзамен, когда в стране уже ввели режим самоизоляции, поэтому мне было важно найти тихий промежуток времени, чтобы в комнату не вошла жена или не закричал ребенок. Я выбрал глубокую ночь, благо выбор времени доступен на любой вкус.
В самом начале экзаменатор требует показать ваш Primary ID содержащий фото и ФИО (на латинице) — у меня это был заграничный паспорт, и развернуть веб камеру на рабочий стол и комнату, чтобы убедиться в отсутствии посторонних предметов.
В основном окне, кроме текста заданий, терминала и чата с экзаменатором, доступно еще окно для заметок, куда можно копировать какие-то важные имена или команды — пару раз пригодилось.
Советы
Используйте алиасы, чтобы сэкономить время. Вот чем пользовался я:
export ns=default # переменная для нэймспейса
alias ku='kubectl' # укорачиваем основную команду
alias kun='ku -n=$ns' # kubectl + namespace
alias kudr='kun --dry-run -o=yaml' # очень нужные флаги, чтобы генерить yaml описание для объекта
Запомните комбинации флагов для команды run, чтобы быстро генерить yaml для разных объектов — pod/deploy/job/cronjob (хотя запоминать их совсем не обязательно, можно просто посмотреть помощь с флагом -h):
kudr run pod1 --image=nginx --restart=Never > pod1.yaml
kudr run deploy1 --image=nginx > deploy1.yaml
kudr run job1 --image=nginx --restart=OnFailure > job1.yaml
kudr run cronjob1 --image=nginx --restart=OnFailure --schedule="*/1 * * * * " > cronjob1.yaml
Используйте сокращенные имена ресурсов:
ku get ns # вместо namespaces
ku get deploy # вместо deployments
ku get pv # вместо persistentvolumes
ku get pvc # вместо persistentvolumeclaims
ku get svc # вместо services
# и т.д., полный список можно подсмотреть по команде:
kubectl api-resources
Грамотно распределите время на выполнение всех заданий, не зависайте на чем-то одном, пропускайте вопросы и идите дальше. По началу я думал, что выполняю задания в очень высоком темпе и завершу экзамен досрочно, но в итоге не успел доделать два задания. На самом деле время на экзамен отведено впритык, и все 2 часа проходят в напряжении.
Не забывайте переключать контекст — в начале каждого задания дана команда на переключение, чтобы работать в нужном кластере.
Также следите за нэймспейсом. Для этого я использовал еще один хак:
alias kun='echo namespace=$ns && ku -n=$ns' # при выполнении каждой команды первой строкой у меня выводился текущий нэймспейс
Не спешите оплачивать сертификацию, дождитесь скидок. Автор курса часто скидывает на почту промокоды со скидками 20-30%