Мой опыт сдачи экзамена CKAD

Логотип Kubernetes с надписью CKAD
Изображение: Логотип Kubernetes, общественное достояние (Wikimedia Commons)

Несколько дней назад я во второй раз сдавал экзамен CKAD — и сдал. Да, в первый раз у меня не получилось; более того, мой первый экзамен длился минут 5… Поэтому мне хочется немного рассказать о том, как всё прошло, — возможно, это поможет вам не повторить мои ошибки. Я посмотрел несколько похожих видео, и, честно говоря, в них не упоминают некоторые важные вещи, о которых стоит знать, прежде чем идти на этот экзамен.

Сначала немного предыстории: почему я решил сдавать и сколько времени это заняло. В июне я выбрал сертификацию CKAD, чтобы как следует разобраться, как работает Kubernetes с точки зрения разработчика. Я не хочу становиться DevOps-инженером, но хочу понимать, как всё устроено, ведь сейчас я работаю с микросервисами, которые разворачиваются с помощью Kubernetes и Argo. Начал я примерно в середине или в конце июня, точно не помню. Уделял подготовке от 30 минут до часа в день. Скорее 30 минут: когда ты отец, больше особо не выкроишь. По моим подсчётам, всего на подготовку ушло от 60 до 90 часов.

Внимательно изучите правила

Чтобы не тратить ваше время, дам несколько советов и расскажу, почему я провалился в первый раз… Ну, на самом деле я не провалился: меня выгнали с экзамена через 5 минут. Одно из правил CKAD, CKA и любой сертификации The Linux Foundation — не разговаривать и не шевелить губами. То есть если у вас есть странная привычка читать задания вслух или просто проговаривать задачу про себя, от неё нужно избавиться. Это запрещено. Проктор может решить, что вы с кем-то разговариваете, и выгнать вас с экзамена… и на этом всё. Это случается не в первый и не в последний раз (на Reddit есть несколько тредов об этом). Я был в полном недоумении, потому что так и не понял, за что меня выгоняют на первом же задании. В первый раз обстановка кажется немного враждебной.

После этого фиаско благодаря ChatGPT и нескольким похожим случаям я лучше понял причину и смог подать жалобу. То есть написал тикет — и мне ответили. Поскольку это был первый раз, мне вернули возможность сдать экзамен ещё раз. Иначе пришлось бы платить снова, а это больше 250 долларов (и это со скидкой). Так что я смог прийти во второй раз и на этот раз позаботился о том, чтобы потренироваться на killer.sh — это самое близкое к реальному экзамену, что вы найдёте. Та первая попытка была в сентябре; я был неплохо подготовлен, и всё равно мой экзамен длился 5 минут. Уверяю вас, это изрядно бьёт по настроению. К тому же The Linux Foundation не славится быстрым решением проблем: ответ пришёл через несколько дней, если не ошибаюсь. Я на неделю отложил CKAD и, по сути, потерял месяц, чтобы всё повторить и пересдать.

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

С другой стороны, экзамен CKAD совсем не простой, хоть и считается начальным; он напомнил мне университетские экзамены. На него даётся 2 часа, и вы не успеете сделать всё. Это значит, что всё, что вы делаете, должно быть сделано правильно, — тут нужна аккуратность. Вы будете немного нервничать, и нервы могут сыграть с вами злую шутку. Отнеситесь к первой попытке как к «ознакомительной»: я не удивлюсь, если из-за среды или нервов вы её провалите. А теперь вернёмся к среде.

Среда не такая, как у вас дома

Скорее всего, вы работаете на компьютере с macOS или, может быть, с Windows; обычно у нас, разработчиков, Mac. Экзаменационная среда — Linux (понятия не имею, какой дистрибутив), поэтому многие привычные команды и сочетания клавиш у вас работать не будут. Мой совет: за неделю до экзамена обязательно пройдите пару раз сессии killer.sh. Они подготовят вас лучше любого курса. Ничего ближе к экзамену нет.

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

У меня, хотя во второй раз я уже знал, чего ожидать, были странные проблемы с vim. Сохранить файл было невозможно. Позже, обсуждая это с ИИ, я пришёл к выводу, что проблема, скорее всего, была в вводе символа «:», поэтому комбинация ESC + :wq срабатывала не всегда. До сих пор понятия не имею, почему так… но экзамен я всё равно вытянул.

Осторожно с монитором. Даже не думайте сдавать экзамен на ноутбуке. Практически обязательно нужен нормальный монитор, а значит, придётся купить веб-камеру. Два экрана иметь нельзя: только один монитор. Сдавать экзамен на маленьком экране вдвое сложнее. Я вас предупредил. Ещё одной моей ошибкой было прийти на экзамен с 13-дюймовым MacBook Air… Я даже не мог нажать CTRL+F в браузере — по-моему, там по умолчанию Firefox.

Прокторы мало чем вам помогут. Как правило, они нужны, чтобы следить за вами; с ними можно общаться в чате, но помогать они не станут. В конце экзамена я попытался спросить, что происходит с vim, и мне просто ответили, что сожалеют, что опыт оказался не лучшим. На первом экзамене всё вообще было очень, очень враждебно: я спрашивал у проктора, что делаю не так, и в результате меня выгнали. Так что особой помощи не ждите. Они довольно строгие, в интернете много жалоб на это, но что есть, то есть.

Управление временем

Тренируйте управление временем на killer.sh — для этого есть инструмент «flag». Знаю, об этом говорят все, но это абсолютно необходимо. Не застревайте ни на одном задании. Сначала делайте лёгкие или те, что кажутся вам лёгкими. Под лёгкими я имею в виду те, что делаются за 5–10 минут без напряга. Скорее всего, таких будет процентов 30–40. К тому же, сделав лёгкие, вы избавитесь от начального волнения.

Будут и другие — простые, но требующие больше времени. Странные оставьте на конец. Главное правило — не застревать: сначала сделайте лёгкое, чтобы получить гарантированные баллы, а потом понемногу повышайте оценку за счёт сложного. Скорее всего, до некоторых заданий вы даже не доберётесь. Более того, всегда попадается вопрос, который даже не входит в программу, — какие-нибудь странные Docker или Helm. Про такие почти наверняка можно забыть… Мне попался вопрос по Docker: собрать образ и проставить ему тег. Я просто не вспомнил команду для тега. Пропустил вопрос, благо оставил его напоследок.

Не тратьте слишком много времени на странные курсы: ChatGPT — ваш друг

Можно использовать, например, известный курс на Udemy, который даёт доступ к KodeKloud для практики. Лично мне он не показался особо нужным, хотя немного помогает; курс у меня есть, но я не прошёл его до конца, потому что там много ненужной воды. Что действительно помогает — разумно использовать любой ИИ: скармливайте ему контекст всех упражнений, которые вы делаете, и пусть он готовит вас к экзамену. У меня был проект в ChatGPT, который генерировал мне упражнения для повторения. ИИ был «накормлен» официальным курсом и упражнениями с killer.sh. То есть он создаёт похожие упражнения и находит ваши слабые места: там, где вы чаще всего ошибались, он давал упражнения, чтобы это исправить.

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

  1. Официальные лабораторные. Обязательно. Прогоните их через ИИ (Gemini, ChatGPT или любой другой), чтобы он адаптировал их под Minikube.
  2. Killer.sh.
  3. ChatGPT, чтобы он придумывал новые задачи на основе двух предыдущих пунктов.
  4. Udemy + KodeKloud.

Составьте бюджет часов. По моим подсчётам, 60 часов достаточно, чтобы прийти на экзамен более-менее подготовленным. Сдаёте, и если не получилось — добавьте ещё часов 20. Около 30 часов — на официальный курс, в основном на лабораторные, прогнанные через Minikube и ChatGPT. Не беритесь поднимать кластер в AWS — это пустая трата времени. Часов 10–15 — на killer.sh и ещё 15 — на повторение с ChatGPT или чем-то подобным. Скажем так: при небольшой дисциплине и 30 минутах — часе в день вы легко справитесь за два месяца. Единственное — нужна регулярность.

Команды, которые нужно знать назубок… и всё с namespace

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

alias kk=kubectl
kubectl run …
kubectl create -f …
kubectl replace -f … --force
# … и т. д.

Составьте свой список, но команды должны выходить у вас естественно.

Это не так уж сложно

Хотя это гораздо сложнее, чем тестовый экзамен любой другой сертификации, он всё равно вполне посильный. Не расстраивайтесь, если провалитесь в первый раз, — это очень частое явление. Экзаменационная среда очень недружелюбная и не всегда работает как надо. Считайте это опытом, не более. Даже если не сдадите, опыт работы с Kubernetes, который вы получите, очень ценен — по крайней мере, для меня это так. По правде говоря, сейчас мне даже не нужна сама сертификация: знания у меня уже есть. Она очень помогла мне понять мою работу. В наше время мне достаточно понимать, как всё устроено; бумажка мне не нужна, хотя лишней она никогда не будет.

Даже если провалитесь дважды, дайте себе время и займитесь чем-нибудь другим. Есть сотни очень ценных и гораздо более простых сертификаций и курсов — например, AWS Cloud Practitioner или AI Practitioner, — которые к тому же можно получить за пару недель.