Skip to content

Jak zdać egzamin CKAD – Kubernetes Certified Application Developer?

Cześć!

W tym wpisie chciałbym opowiedzieć w jaki sposób zdać egzamin CKAD – Kubernetes Certified Application Developer.

Jaki jest cel tego egzaminu? To doskonały sposób na potwierdzenie umiejętności w posługiwaniu się platformą Kubernetes w codziennej pracy programisty. A dokładniej sprawdzenie czy posiadacz certyfikatu potrafi zaprojektować, zbudować, skonfigurować oraz wystawić aplikację chmurową za pomocą Kubernetes.

Czy egzamin jest trudny? Dla mnie osobiście ten egzamin był najtrudniejszym do jakiego się przygotowywałem, a mam już spore doświadczenie w certyfikatach chmurowych.

Myślę jednak, że trudność zależy od tego jak dużo macie doświadczenia z samym kubernetesem.

Warto też zaznaczyć, że znam osoby, które zdały ten egzamin bez żadnego, wcześniejszego doświadczenia z tą platformą. Więc do odważnych świat należy!

Jak długo trzeba się przygotowywać do egzaminy? Osoby, które mają już dużo doświadczenia praktycznego z K8S będą mogły dość szybko podejść do egzaminu (po kilku tygodniach pracy). Osoby z mniejszym doświadczeniem (takie jak ja) będę potrzebowały przynajmniej 2-3 miesiące przygotowań.

Co ważne egzamin sprawdza Twoją wiedze w praktyce. Nie ma tutaj pytań z odpowiedziami tylko sama praktyka. Dlatego też ważne jest umiejętność szybkiej pracy w konsoli Kubectl.

Zagadnienia wymagane na egzamin:

13%Core ConceptsUnderstand Kubernetes API primitives
Create and Configure Basic Pods
18%ConfigurationUnderstand ConfigMaps
Understand SecurityContexts
Define an application’s resource requirements
Create & consume Secrets
Understand ServiceAccounts
10%Multi-Container PodsUnderstand Multi-Container Pod design patterns (e .g. ambassador, adapter, sidecar)
18%ObservabilityUnderstand LivenessProbes and ReadinessProbes
Understand container logging
Understand how to monitor applications in Kubernetes
Understand debugging in Kubernetes
20%Pod DesignUnderstand how to use Labels, Selectors, and Annotations
Understand Deployments and how to perform rolling updates
Understand Deployments and how to perform rollbacks
Understand Jobs and CronJobs
13%Services & NetworkingUnderstand Services
Demonstrate basic understanding of NetworkPolicies
8%State PersistenceUnderstand PersistentVolumeClaims for storage

Co warto wiedzieć/umieć przed rozpoczęciem nauki

VIM twoim najlepszym przyjacielem 🙂
  • Podstawowa znajomość linuxa. Sam egzamin realizowany jest właśnie w tym środowisku więc warto mieć podstawową wiedzę jak poruszać się po katalogach, tworzyć, edytować i usuwać pliki czy też uruchamiać programy i skrypty.
  • Umiejętność edycji pliku w konsoli. Tutaj najlepiej korzystać z VIMa, który jest domyślnie dostępny na egzaminie. To co jest na plus dla tego narzędzia to podświetlanie składni, które bardzo przydaję się przy edycji plików YAML. Tutaj polecam kurs na Udemy (płatny): https://www.udemy.com/course/vim-essentials/learn/lecture/14397396?start=0#overview oraz kurs na Youtube (bezpłatny) https://www.youtube.com/watch?v=IiwGbcd8S7I&ab_channel=BenAwad . Warto też prawidłowo skonfigurować Vima – więcej w drugiej części poradnika
  • Znajomość formatu YAML. Jest to domyślny format dla plików konfiguracyjnych w Kubernetesie. Właściwie 50% czasy pracy z K8s to właśnie edycji takich plików

Przygotowania

1. Kurs Udemy

Naukę do egzaminu warto rozpocząć od kursu „Kubernetes Certified Application Developer (CKAD) with Tests” dostępnego na platformie Udemy: https://www.udemy.com/course/certified-kubernetes-application-developer/.

Ten kurs to bardzo dobry start w K8S

Autorem kursu jest Mumshad Mannambeth, który w bardzo metodyczny i przystępny sposób potrafi przekazywać wiedzę. Sam kurs poprowadzi Cię przez wszystkie zagadnienia pojawiające się na egzaminie. Dodatkowo do każdego działu przygotowane są zadania praktyczne, które wykonywane są na platformie KodeKloud. Dzięki temu masz możliwość sprawdzenia czy dobrze zrozumiałeś materiał w środowisku w bardzo zbliżonym do tego, który będzie dostępny na egzaminie.

2. Game of Pods

Po zapoznaniu się i kilkakrotnym zaliczeniu zadań praktycznych warto rozwiązać zadania w ramach kursu Game of Pods: https://kodekloud.com/courses/game-of-pods/

Czy podejmiesz wyzwanie?

Sam kurs jest zestawem wyzwań, które w zabawny sposób sprawdzają praktyczne umiejętności w tworzeniu nowych aplikacji na klastrze, rozwiązywaniu problemów i wielu innych. Zakres umiejętności potrzebnych do rozwiązania zadań pokrywa się z tym na egzaminie CKAD (po za jednym zadaniem, którego celem jest naprawa niedziałającego Node’a). Jeśli będziecie mieli problemy z zadaniami warto zajrzeć na moje rozwiązania dostępne na stronie: https://github.com/czerniga/game-of-pods

3. CKAD exercises

Kolejnym etapem nauki może być rozwiązanie wszystkich zadań dostępnych na githubie: https://github.com/dgkanatsios/CKAD-exercises

Jest to zestaw zadań przygotowanych do wszystkich zagadnień na egzaminie. Do każdego zadania dostępne są też rozwiązania co też umożliwia szybkie zweryfikowanie czy dobrze rozumie się przerobiony materiał.

4. Killer.sh

Ostatnim krokiem powinno być przeprowadzanie próbnych testów na platformie killer.sh. W ramach egzaminu organizator udostępnia dwie, bezpłatne próby na tej platformie.

killer.sh

Test na killer.sh składa się z 20 zadań, które rozwiązuje się w przeglądarce. Portal podczas egzaminu daje dostęp do klastra kubernetes, na którym należy wykonać zadania. W części z nich należy stworzyć komponenty od zera. Pozostałe zadania zazwyczaj polegają na modyfikacji istniejących komponentów.

Platforma testowa udostępnia dwa podejść do testu. Co ważne, w obu przypadkach wykonujemy te same zadania.

Sam test na killer.sh jest trudniejszy niż docelowy egzamin, ale to pozwala szybko sprawdzić czego jeszcze musimy się jeszcze douczyć/powtórzyć przed samym egzaminem. Generalnie jeśli uda wam się zdać ten próbny egzamin, to najprawdopodobniej zdacie też egzamin CKAD.

Egzamin

Podstawowe zasady egzaminu:

  • Egzamin składa się z 19 zadań, które trzeba rozwiązać w przeciągu 2 godzin
  • Każde pytanie ma swoją wagę procentową. Większość z nich ma wyceniane jest na kilka procent (najniższe miało 2%). Na moim egzaminie zdarzyło się jednak, że jedno zadanie miało wagę aż 13%.
  • Egzamin realizowany jest zdalnie za pomocą platformy online w przeglądarce. Przed rozpoczęciem egzaminu konieczne będzie zainstalowanie specjalnego pluginu do przeglądarki.
  • Podczas egzaminu jesteśmy obserwowani przez proktora. Dlatego też przed egzaminem trzeba opróżnić miejsce, w którym zdaje się egzamin z wszystkich niepotrzebnych rzeczy. Ważne też jest aby podczas egzaminu nikt nie wchodził do pomieszczenia, w którym jesteście.
  • Do zdania konieczne jest zdobycie 66% punktów
  • Zadania oceniane są również jeśli nie są zrealizowane w całości
  • Wynik egzaminu jest przesyłany drogą mailową po egzaminie. Tutaj trzeba się uzbroić w cierpliwość bo może to potrwać nawet 36h. W moim przypadku było to ok 24h.
  • W przypadku nie zdania egzaminu przysługuje nam drugie podejście za darmo.
  • Podczas egzaminu można mieć otwarte dwie zakładki. W jednej będziecie mieć stronę z egzaminem. W drugiej natomiast można mieć otwartą stronę z oficjalną dokumentacją Kubernetes. Otwieranie innych stron/zakładek jest zabronione!
  • Podczas egzaminu można skorzystać notatnika wbudowanego w platformę.
  • Koszt egzaminu to 375$

Wskazówki

Poniżej przedstawiam wskazówki, które powinny wam pomóc podczas egzaminu:

  • Egzamin jest sprawdzaniem w 100% praktycznym. Dlatego najważniejsze jest sprawne i szybkie tworzenie obiektów w kubernetesie. Musisz koniecznie nauczyć się tworzyć obiekty za pomocą komend. To zawsze będzie szybsze niż kopiowanie Yamli z dokumentacji. Warto zajrzeć na stronę https://kubernetes.io/docs/reference/kubectl/cheatsheet/ gdzie podano przykłady komend.
  • W związku z tym, że zadania są różnie punktowane można przyjąć różne strategie kolejności rozwiązywania.
    • zadania wykonywać po kolei.
    • zadania wykonywać w kolejności od tych wycenianych najwyżej do tych wycenianych najniżej
  • W przypadku problemów z zadaniem najlepiej je pominąć. Szczególnie jeśli zadanie jest wyceniane na 2-3 procenty. Jeśli po wykonaniu wszystkich zadań będzie czas, to można do nich wrócić.
  • Jak już pisałem wyżej podczas egzaminu macie dostępo do notatnika. Przyda się on nie tylko do kopiowania i wklejania yamli. Warto w nim przygotować listę pytań z informacją które zadania już zostały wykonane, które trzeba sprawdzić, itp. Dzięki temu będziecie mogli szybko wrócić do zadań, w których mieliście problemy. Moja lista wyglądała mniej więcej tak:
1. 4% OK
2. 6% Check
3. 13% No OK
....
19. 7%
  • Przed rozpoczęciem egzaminu warto przygotować sobie środowisko do pracy. Oprócz uruchomienia aliasu dla kubectl i włączenia auto podpowiadania ważne też jest właściwe skonfigurowanie Vima oraz użycie przydatnych aliasów, które przyspieszą pracę. Ja zastosowałem poniższe komendy na starcie egzaminu. Nie trzeba uczyć się ich na pamięć, wystarczy je skopiować do schowka przed samym egzaminem. Po starcie egzaminu wchodzimy do notatnika i wklejamy je tam. Proktor nie powinien mieć z tym problemów.
sudo -i
source <(kubectl completion bash)
echo "source <(kubectl completion bash" >> ~/.bashrc
alias k=kubectl
complete -F __start_kubectl k

alias change-ns="kubectl config set-context --current --namespace "
alias current-ns="kubectl config view --minify | grep namespace"
export d="-oyaml --dry-run=client"

alias kap="k apply -f"
alias ker="k explain --recursive"
alias kgp="k get pods -o wide --show-labels"
alias kdp="k describe pod"
alias krun="k run tmp --restart=Never --rm --image=nginx:alpine -i -- curl"
echo $':set number\n:set et\n:set sw=2 ts=2 sts=2' >> ~/.vimrc
  • W każdym zadaniu podana jest komenda zmieniająca kontekst na właściwy dla zadania. Jest to istotne z tego powodu, że podczas egzaminów wykorzystywane są 2, 3 osobne klastry. Dlatego zawsze na początku zadania wykonajcie tą komendę.
  • Oprócz kontekstu drugą najważniejszą sprawą jest odpowiedni namespace. W większości zadań namespace zostanie podany w treści (czasami trzeba go odszukać bo jest sprytnie ukryty w zadaniu). Jeśli nie podano wprost przestrzeni to zadanie należy wykonać w namespace default. Jest to bardzo ważne! Ja niestety nie doczytałem tej reguły i w efekcie nie zdałem egzaminu w pierwszym zadaniu (zabrakło 3% .. 🙂 ). Dlatego pamiętajcie: zawsze sprawdzajcie kontekst i namespace dla zadania.
  • W około połowie zadań nasze zadanie będzie polegało na edycji istniejących już obiektów czy plików. Dlatego ważne jest doczytanie do końca zadania przed wykonaniem jakiegokolwiek kroku. W niektórych zdaniach jest często wprost napisane, że danych obiektów i plików nie można edytować.

Podsumowanie

Jest to bez wątpienia trudny egzamin. Jednakże poświęcony czas na naukę zwróci się w postacie sporej wiedzy na temat kubernetes i podstawowej pracy z tą platformą. Dlatego też bardzo zachęcam do tego wyzwania !

Published inCertyfikatyKubernetes

One Comment

  1. Dobry artykuł, będę czytał bloga 🙂 Jak podejdę w końcu do tego egzaminu, to na pewno się przyda:)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *