Evgeny Rudinsky
Evgeny Rudinsky Cloud Architect @ Nordcloud

Как сдать CKAD (Certified Kubernetes Application Developer)

Как сдать CKAD (Certified Kubernetes Application Developer)

За последний год я участвовал в десятке интересных проектов где использовался Docker и Kubernetes. Замечательно то, что я смог разобраться с технологиями на примерах из реального мира - от the hard way до управляемого AKS, от ручного приема манифеста yaml / json до полностью автоматизированного CI / CD с использованием Azure DevOps (или / и некоторых других инструментов) со всякими наворотами. Я почти уверен, что для любого технического специалиста практики имеет решающее значение и всегда является приоритетом, особенно в такой сложной и деликатной теме, как микросервисы.

Tl;dr .. Несколькими месяцами ранее я нашёл Cloud Native Computing Foundation (CNCF) с двумя интересными экзаменами - CKAD и CKA и понял, что мне нужно сесть и сдать их, поскольку это именно то, чем я занимаюсь. Иногда, особенно когда вы имеете дело с чем-то новым, вы действительно хотите изучить чужую конфигурацию и убедиться, что вы на правильном пути или / и внести улучшения в свою конфигурацию. В этой статье я хотел бы выделить некоторые вещи, которые мне очень помогли (сначала я сдавал CKAD). Я не буду нарушать NDA, поэтому в статье вы не найдете конкретных вопросов, которые встречаются на экзамене.

Важно! Убедитесь, что вы делаете это не только из-за сертификата. Вам это действительно не нужно, если вы не используете / не планируете использовать эту технологию в своей повседневной деятельности. Все движется так быстро, поэтому, если вы пройдете его сегодня и будете заниматься чем-то другим в течение следующих месяцев, вам, вероятно, придется заново изучать много нового.

Сертифицированный разработчик приложений Kubernetes (CKAD)

Успешному кандидату будет комфортно пользоваться:

  • OCI-совместимая среда выполнения контейнера, например Docker или rkt;
  • Концепции и архитектуры облачных приложений;
  • Язык программирования, например Python, Node.js, Go или Java.

Экзаменационная программа включает следующие категории вопросов (их ихпримерное распределение):

  • 13% - Основные концепции;
  • 18% - Конфигурация;
  • 10% - многоконтейнерные контейнеры;
  • 18% - наблюдаемость;
  • 20% - Дизайн капсул;
  • 13% - Услуги и сети;
  • 8% - Постоянство состояния.

Самая большая проблема - время! У вас 120 минут и 19 задач (~ 6,5 минут на задачу). Проходной бал - 66 из 100.

Рекомендации для CKAD

Используйте alias-ы. Например:


alias k="kubectl"
alias kgd="k get deploy"
alias kgp="k get pods"
alias kgn="k get nodes"
alias kgs="k get svc"

Пример использования выше:


kpg -ns web-development # get all pods from web-development namespace
kgs nginx -o yaml --export # exports yaml for gninx service

Если вы хотите изменить редактор текста по умолчанию для объектов в K8s, измените переменную env:


export KUBE_EDITOR="nano" # this sets editing resource to use nano

Знайте, как использовать генератор для получения ресурсов в yaml / json. См. Пример ниже, эти четыре ниже дают вам другой тип объекта.


kubectl run nginx --image=nginx --replicas=3 --restart=Never --dry-run -o yaml
kubectl run nginx --image=nginx --replicas=3 --restart=Always --dry-run -o yaml
kubectl run nginx --image=nginx --replicas=3 --restart=OnFailure --dry-run -o yaml
kubectl run nginx --image=nginx --replicas=3 --restart=OnFailure --schedule="0/1 * * * *" --dry-run -o yaml

NB! Обратите внимание на вопрос. Если они просят вас создать pod, создавайте его, а не deployment. Я использовал генератор и выводил в файл с номером задачи, а затем переходил в файл манифест и производил дальнейшие настройки (например, если некоторые из спецификаций невозможно добавить с помощью CLI).

Пример конфигурации в Azure

Для CKAD (поскольку он в основном ориентирован на объекты Kubernetes и способы их работы) я бы рекомендовал развернуть управляемый кластер в Azure. Даже для тестирования он не такой уж и дорогой (цена за месяц с учетом круглосуточной работы). Чтобы поиграть с разными типами объектов, у меня есть небольшое приложение, написанное на nodejs, и я объяснил, как его можно развернуть в AKS. В этом примере также есть pipeline для Azure DevOps (YAML), который использует ACR (Реестр контейнеров) для хранения созданных образов и извлечения из куба, а также имеет шлюз приложений для входа.

Azure Price - стоимость работы с AKS и дополнительными сервисами в Azure

Удачи!

comments powered by Disqus