Pull to refresh

Мой опыт и советы по сдаче экзамена Certified Kubernetes Application Developer (CKAD)

Reading time 5 min
Views 13K
Совсем недавно я успешно сдал экзамен 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 содержащий фото и ФИО (на латинице) — у меня это был заграничный паспорт, и развернуть веб камеру на рабочий стол и комнату, чтобы убедиться в отсутствии посторонних предметов.

Во время экзамена допустимо держать открытой еще одну вкладку браузера с одним из ресурсов: ​https://kubernetes.io/docs/​, ​https://github.com/kubernetes/​ или https://kubernetes.io/blog/​. У меня это была документация, ее вполне хватило.

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

Советы


  1. Используйте алиасы, чтобы сэкономить время. Вот чем пользовался я:
    export ns=default # переменная для нэймспейса
    alias ku='kubectl' # укорачиваем основную команду
    alias kun='ku -n=$ns' # kubectl + namespace
    alias kudr='kun --dry-run -o=yaml' # очень нужные флаги, чтобы генерить yaml описание для объекта
  2. Запомните комбинации флагов для команды 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
  3. Используйте сокращенные имена ресурсов:
    ku get ns # вместо namespaces
    ku get deploy # вместо deployments
    ku get pv # вместо persistentvolumes
    ku get pvc # вместо persistentvolumeclaims
    ku get svc # вместо services
    # и т.д., полный список можно подсмотреть по команде: 
    kubectl api-resources
  4. Грамотно распределите время на выполнение всех заданий, не зависайте на чем-то одном, пропускайте вопросы и идите дальше. По началу я думал, что выполняю задания в очень высоком темпе и завершу экзамен досрочно, но в итоге не успел доделать два задания. На самом деле время на экзамен отведено впритык, и все 2 часа проходят в напряжении.
  5. Не забывайте переключать контекст — в начале каждого задания дана команда на переключение, чтобы работать в нужном кластере.
    Также следите за нэймспейсом. Для этого я использовал еще один хак:
    alias kun='echo namespace=$ns && ku -n=$ns' # при выполнении каждой команды первой строкой у меня выводился текущий нэймспейс
  6. Не спешите оплачивать сертификацию, дождитесь скидок. Автор курса часто скидывает на почту промокоды со скидками 20-30%
  7. Выучите наконец vim :)

Ссылки:


  1. www.cncf.io/certification/ckad — собственно сама страница сертификации
  2. www.udemy.com/course/certified-kubernetes-application-developer — очень хороший курс для подготовки, все понятно и с иллюстрациями
  3. github.com/lucassha/CKAD-resources — полезные ссылки и заметки про экзамен
  4. habr.com/ru/company/flant/blog/425683 — рассказ от коллег по Хабру о сдаче более сложного экзамена CKA
Tags:
Hubs:
+3
Comments 2
Comments Comments 2

Articles