Przygotowania oraz sam egzamin CKAD już za mną. Przyszedł więc czas na podsumowanie i spisanie doświadczeń, które być może komuś z was pomogą zdać ten egzamin. W tym wpisie postaram się przybliżyć Ci jak wygląda certyfikacja z Kubernetesa. Przedstawię Ci materiały, z których będziesz w stanie dobrze przygotować się na egzamin CKAD, oraz zamieszczę kilka wskazówek, które z pewnością przydadzą Ci się na samym egzaminie.
Jak wygląda egzamin CKAD ?
Program certyfikacji Kubernetesa jest rozwijany przez Cloud Native Computing Foundation (CNCF), w kolaboracji z The Linux Foundation. To właśnie ten organ jest wystawcą certyfikatu, który niedługo mam nadzieję zdobędziesz. Jeśli masz już jakieś doświadczenie z certyfikacjami cloudowymi to wiedz, że w przypadku certyfikacji Kubernetesa jest zgoła inaczej. Wszystkie egzaminy z Kubernetesa (CKAD, CKA, CKS) są w 100% praktyczne. Nie spotkasz się tutaj z żadnymi zamkniętymi czy otwartymi pytaniami. Egzamin polega na rozwiązaniu zadań na klastrze Kuberntesowym, który zostanie ci udostępniony w trakcie egzaminu. Twoim jedynym narzędziem pracy będzie terminal. Tak, terminal. Dlatego właśnie bardzo ważne jest sprawne posługiwanie się nim oraz narzędziami silnie z nim związanymi jak chodź vim.
Według mnie taka forma certyfikacji jest o wiele ciekawsza niż zestaw pytań wielokrotnego wyboru. Po pierwsze w ramach przygotowań nauczysz się nie tylko teorii, ale nabędziesz umiejętności, które z pewnością przydadzą Ci się w późniejszej pracy z k8s. Jeśli natomiast masz już spore doświadczenie w pracy z Kubernetesem, może się okazać, że nie musisz się wiele przygotowywać aby podejść do takiego egzaminu.
Egzamin to przede wszystkim walka z czasem. Dostajemy 19 zadań, które musimy rozwiązać w 2 godziny. Każde z pytań ma odpowiednią wagę procentową. Od zadań za 2% po zadania nawet za 13%. Często waga ta nie jest adekwatna do złożoności zadania. Spotkasz się z zadaniami, których rozwiązanie będzie kwestią wykonania dwóch poleceń w konsoli, a trafią się też bardziej skomplikowane wymagające poświęcenia kilku minut.
Jak wygląda środowisko egzaminacyjne CKAD ?
Egzamin jest realizowany w trybie zdalny za pomocą platformy Training Portal. Poniżej załączam poglądowy rysunek, przedstawiający jak wygląda środowisko na którym będzie odbywał się egzamin.
1 – Egzamin jest zdawany w przeglądarce. Oprócz głównego okna z egzaminem, masz możliwość korzystanie z jednej dodatkowej zakładki, w której możesz mieć otwartą jedną z poniższych domen
https://kubernetes.io/docs/
https://kubernetes.io/blog/
https://github.com/kubernetes/
2 – W tym miejscu będzie widoczny pasek pokazujący pozostały czas do końca egzaminu (bez dokładnych minut). Obok timer będzie również wybieraczka, dzięki której będziesz mógł przełączać się między zadaniami.
3 – Na egzaminie będziesz musiał działać na kilku klastrach k8s. Przy każdym pytaniu w tej sekcji pojawi się polecenie do ustawienia odpowiedniego kontekstu. Szalenie ważnym jest użyć to polecenia przed każdym zadaniem, aby nie wykonać zadania na nieodpowiednim klastrze
4 – W tym polu będzie widoczna treść zadania oraz jego waga punktowa. W zadaniach często będą podawane nazwy dla zasobów które masz utworzyć. W łatwy sposób klikając w nazwę możesz ją skopiować do schowka po czym wkleić do terminala.
5 – Pasek funkcyjny. W tym miejscu będziesz miał dostęp do czatu z protektorem, otworzenia notatnika, bądź przycisku kończącego egzamin przed czasem. O tym jak przydatny może być notatnik dowiesz się w dalszej części wpisu.
6 – Okno terminala. Jest ono wystarczająco duże i czytelne. Niestety brak możliwości otworzenia kolejnego okna. Jest natomiast opcja skorzystania z narzędzia tmux, które pozwala podzielić terminal na kilka okien.
Podstawowe informacje dotyczące egzaminu CKAD
- 19 zadań do wykonania
- 2 godziny na wykonanie zadań
- Pytania są punktowane procentowo. W moim przypadku, wystąpiło jedno zadanie za 13%, kilka za 6% – 9%, większość za 2% – 6%
- Odniosłem wrażenie, że waga punktów nie zawsze odzwierciedlała skomplikowanie zadania. Zadanie za 13% było dość proste, z kolei zdarzały się zadania za 4% wymagające poświęcenia sporej ilości czasu
- Zadania z egzaminu są punktowane cząstkowo. Możemy nie wykonać w pełni całego zadania, a otrzymać część punktów za poprawnie wykonane kroki.
- Do zdania egzaminu potrzebne jest uzyskanie 66%
- Na wyniki z egzaminu czeka się do 36h
- W przypadku nie zdania egzaminu mamy możliwość skorzystania z drugiego podejścia za darmo. Konieczne będzie ponowne ustalenie terminu
- Koszt egzaminu to 300$. Często zdarzają się programy, w których CNCF aktualizuje egzamin i wtedy za darmo jest możliwość przystąpienia do beta-egzaminu, w którym również mamy możliwość zdobycia certyfikatu
- Certyfikat jest ważny 3 lata
- Egzamin odbywa się pod okiem proktora, który przed egzaminem będzie chciał dokładnie zobaczyć Twoje stanowisko egzaminacyjne. Żadne przedmioty osobiste, zegarki czy nawet obrazy/plakaty na ścianach nie są dopuszczalne.
- Możliwe jest korzystanie z dodatkowego monitora. Oba ekrany będziesz musiał udostępnić proktorowi.
- W przypadku systemów Windows schowek działa jedynie pod skrótem Ctrl+Insert & Shift+Insert w przypadku MacOS jest to standardowy Cmd+C & Cmd+V
Jak przygotować się do egzaminu CKAD ?
Materiałów w internecie na temat Kubernetesa jest od groma. Nie sztuką jest więc samo znalezienie materiałów do nauki, a wyselekcjonowanie tych najbardziej wartościowych. Poniżej wylistuję Ci materiały, które moim zdaniem dobrze przygotują Cię do certyfikacji. W moim przypadku przygotowanie do egzaminu było jednocześnie pierwszą stycznością z pracą na k8s. Wcześniej był mi znajomy jedynie sam koncept tej platformy. Spędziłem na przygotowaniach około 2 miesięcy, ale nie były to zbyt intensywne i regularne przygotowania. Pozwoliło mi to jednak zaliczyć egzamin za pierwszym podejściem i zdobyć wynik 99%.
- Kurs Udemy & KodeKloud – niche nie zwiedzie Cie to, że to kurs z Udemy. Moim zdaniem jest to jedno z lepszych źródeł przygotowujących do certyfikatu. Kurs składa się z materiałów video, które pokrywają zakres materiału potrzebny do CKAD. Co cenniejsze, w ramach kursu uzyskamy dostęp do platform KodeKloud, na której autor przygotował dla nas zestaw praktycznych egzaminów oraz ćwiczeń. Te Mock Exams oraz Lightening Labs to najlepsza sposób na przygotowanie się do egzaminu, gdyż bardzo dobrze odzwierciedlają to z czym spotkamy się na egzaminie. Ja swoje przygotowania oparłam głównie o tą platformę.
- Baza zadań – przygotowania do egzaminu to praktyka, praktyka i jeszcze raz praktyka. Musisz opanować do perfekcji używanie kubectl oraz edycje yamli. Mało tego, musisz to robić szybko, wręcz automatycznie. Na egzaminie czytając pytanie, w locie musisz je interpretować, a Twoje palce już muszę wiedzieć jakie komendy zaraz będą wpisywać. Aby to wyćwiczyć polecam Ci załączoną bazę pytań. Zadania te możesz realizować na platformie KodeKloud z kursu Udemy. Alternatywnie możesz zainstalować lokalnie minikube bądź postawić Kubernetesa gdzieś w chmurze.
- Killer.sh CKAD Simulator – symulator egzaminu. Fajny sposób na weryfikacje czy jesteśmy już gotowi do egzaminu. Zadania celowo są trudniejsze od tych z egzaminu. Osobiście nie korzystałem, ale słyszałem kilka dobrych opinii na temat tego symulatora
CKAD Tips & Tricks
Pora na najciekawszy punkt tego wpisu. Wrzuce tutaj kilka wskazówek, które mam nadzieję przydadzą Ci się podczas egzaminu
- notatki – Mega pomocne narzędzie podczas egzaminu. Jeszcze przed wystartowaniem testu możemy w nim wylistować numery pytań wraz z ich wagą, a w trakcie egzaminu sukcesywnie uzupełniać status wykonanego zadania. U mnie to wyglądało to tak:
1. 6% OK # nie zrobione
2. 13% NOK # zrobione
3. 2% CHECK # zrobione/wymaga weryfikacji
...
N. 4% OK
Zamiast notatnika możesz zastosować tą metodę z plikiem tekstowym, którego będziesz edytował za pomocą vima. Istnieje bowiem możliwość, że w przypadku restartu środowiska, zawartość notatnik zniknie.
- Konfiguracja środowiska. Tak jak zapewne konfigurujesz sobie swoje własne środowisko aby łatwiej i szybciej Ci się na nim pracowało tak niezbędnym jest skonfigurowanie środowiska egzaminacyjnego, aby ugrać dzięki temu cenne minuty. Poniżej pełna konfiguracja, którą popełniłem przed przystąpieniem do zadań.
sudo -i # od razu po przejściu do konsoli polecam przełączyć się na roota, aby nie zaskoczył nas brak jakiegoś dostępu
# 1. Konfiguracja ~/.bashrc
# Poniższą konfigurację znajdziesz na:
# https://kubernetes.io/docs/reference/kubectl/cheatsheet/#kubectl-autocomplete
# Konfiguracje aliasów musi zapamiętać
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 <nazwa_namespace>" # Zmiana namespace
alias current-ns="kubectl config view --minify | grep namespace" # Wyświetla aktulany namespace
# Możesz pokusić się też o kilka dodatkowych aliasów, np:
alias kap="kubectl apply -f"
alias kgp="k get pods -o wide --show-labels"
# 2. konfiguracja ~/.vimrc.
# Poniższa konfiguracja odpowiednio ustawi tabulacje i wcięcia, aby pliki yaml z którymi będziemy pracować miały poprawną strukturę
set nu et sw=2 ts=2
- Dokumentacja – dokumentacja Twoim najlepszym przyjacielem na egzaminie. To w niej znajdziesz yamlowe definicje wszystkie obiektów. To w niej możesz szukać szczegółowej konfiguracji. W niej znajdziesz również cheatsheet z komendami. Aby sprawnie się po niej poruszać podczas przygotowania ucz się szybko znajdować w niej informacje. Najlepiej używając wyszukiwarki na jej stronie. Możesz również przygotować sobie własny katalog zakładek do Chrome, lub skorzystać z jednego z gotowców. Osobiście jednak zachęcam Cię do stworzenia własnego podczas przygotowań do egzaminu – łatwo wtedy się w nim odnajdziesz
- Namespace – już o tym wspominałem, ale powtórzę jeszcze raz. Trzeba zwracać uwagę na namespace. Najlepiej przed każdym zadaniem po ustawieniu kontekstu od razu sprawdzić wymagany w zadaniu namespace i go ustawić. Jeśli nie jest on podany w treści zadania to powinniśmy ustawić default.
- Nie trać czasu – jeśli zablokowałeś się na jakimś zadaniu, nie trać czasu na debugowanie, zwłaszcza jeśli to zadanie za małą ilość %. Oznacz w notatniku to zadanie aby wrócić do niego później. Nie weryfikuj też każdego zadania zaraz po wykonaniu. Do tego też lepiej wrócić na koniec, jeśli wystarczy Ci czasu.
- Zanim przystąpisz do zadania przeczytaj jego treść w pełni. Banalny porada, ale wiedz, że sam się na tym potknąłem. Przeczytałem część zadania po czym zacząłem robić je zgodnie ze znanym mi schematem. Później dopiero doczytałem, że nie mogę wykonać kroków, które poczyniłem i zadanie należy wykonać w inny sposób.
- Vim – jeśli nie miałeś wcześniej z nim romansu, chodź trochę się z nim zaprzyjaźnij. Na egzaminie będzie sporo pracy z plikami yaml. Sprawne poruszanie się w vim będzie grało na Twoją korzyść. Wystarczy, że zapoznasz się z podstawowymi funkcjami, takimi jak, kopiuj, wklej, cofni, przejdź do końca lini oraz znajdź słowo w pliku.