Certified Kubernetes Application Developer: jak zdać CKAD za pierwszym razem

W tym artykule podam Ci kilka sprawdzonych w boju informacji na temat certyfikacji Kubernetes: CKAD – Certified Kubernetes Application Developer. Certyfikat ten weryfikuję oraz potwierdza umiejętność wdrażania aplikacji w Kubernetes.

Oto co znajdziesz w artykule:

  • Jak przygotować się do egzaminu, by zdać za pierwszym razem
  • Jak wygląda środowisko podczas egzaminu
  • Co muszę umieć, aby zdać
  • Co warto zrobić przed rozpoczęciem zadań na egzaminie
  • Przykładowe zadanie z egzaminu oraz jakie jest moje podejście do rozwiązywania zadań
  • Skąd nauczyć się Kubernetes do certyfikacji CKAD.
  • Porady & tricki – dzięki którym zwiększysz swoją szansę na uzyskanie certyfikatu CKAD

TLDR;

Egzamin jest praktycznym sprawdzeniem wiedzy z Kubernetes, dlatego też jest ceniony na rynku i z pewnością warto mieć go w swoim CV. W przeciwieństwie do innych egzaminów np. chmurowych – gdzie często trzeba wykuć dokumentację na blachę i mieć kupę szczęścia – tutaj bez praktycznej umiejętności Kubernetesa nie ma co podchodzić do egzaminu. Jak wyglądają zatem praktyczne zadania? Skąd nauczyć się praktyki? O tym w dalszej części artykułu.


Egzamin CKAD: Wymagania Językowo-Techniczno-Osobiste

CKAD zdaje się w całości przez przeglądarkę, dlatego przez cały czas trwania egzaminu należy zadbać o stabilne połączenie z internetem. Dodatkowo niezbędna będzie sprawna kamerka oraz mikrofon. 

Aby podejść do egzaminu CKAD, musisz mieć przy sobie ważny dowód osobisty lub inny dokument ze zdjęciem (np. paszport, prawo jazdy). Dlaczego? Ponieważ osoba, która będzie nad Tobą czuwać podczas całego egzaminu poprosi Cię o jego przedstawienie. I może (jak to miało miejsce w moim przypadku) poprosić Cię o okazanie daty ważności dokumentu.

Chcąc uzyskać certyfikat CKAD niezbędna jest minimalna znajomość języka angielskiego. Zawsze przed rozpoczęciem egzaminu ma miejsce rozmowa z supervisorem podczas której wypadałoby rozumieć podstawowe rzeczy o które będzie on nas prosić.

Egzamin musi się odbyć w pustym pomieszczeniu, bez obecności osób trzecich. Warto odpowiednio wcześniej zadbać o porządek na biurku, gdyż nie mogą się na nim znajdować inne rzeczy poza klawiaturą i myszką.

Więcej szczegółów na temat aspektów nietechnicznych egzaminu w dalszej części artykułu.


Technicznie: Jak Wygląda Egzamin?

Tak jak wspominałem egzamin odbywa się w przeglądarce. Interfejs jest podzielony na terminal oraz na część z zadaniami. Zachęcam Cię jednak do tego, abyś sam przekonał się i zobaczył, jak w praktyce wygląda środowisko. Pomoże Ci w tym niniejsze wideo:

Film przedstawiający środowisko CKAD podczas egzaminu

Ważne

  • Możesz uzyskać uprawnienia roota za pomocą polecenia: sudo -i
  • Masz pojedynczy terminal, bez opcji przełączania się pomiędzy tabami
  • Nie działają skróty CTRL + C oraz CTRL + V

Czas trwania egzaminu wynosi 2 godziny. Co najgorsze, wyników egzaminu nie otrzymasz od razu po zakończeniu. Organizatorzy mają na to aż 36 godzin! Ja otrzymałem swoje po jakichś 24 godzinach.


Co Jeszcze Warto Wiedzieć?

Przygotowałem kilka przydatnych linków, które pomogą Ci jeszcze bardziej zrozumieć, co będzie działo się podczas zdawania CKAD:

Jeśli decydujesz się na korzystanie z Vima podczas egzaminu, to zachęcam Cię do ukończenia jakiegoś kursu, dzięki któremu odpowiednio przećwiczysz edycję. W przypadku yamli kluczowe są odstępy znaków.

Mam też dobrą wiadomość dla osób, które boją się Vima jak ognia. Dostępny też jest edytor Nano — jeśli jest dla Ciebie łatwiejszy, to możesz również z niego korzystać. Osobiście polecam jednak przełamać się i spróbować doszkolić się z Vima. Raz poświęcony czas na naukę przyda się na kolejne lata 🙂

Jeżeli chodzi o mnie, zdawałem CKAD korzystając z Vima.

Setup Terminala – Duża Oszczędność Czasu

Aby jeszcze bardziej zyskać na czasie, warto odpowiednio przygotować terminal i zastosować kilka skrótów.

Aliasy w terminalu:
export do="-o yaml --dry-run -o yaml"
alias k=kubectl
alias ka="kubectl apply -f"
alias kn='kubectl config set-context --current --namespace '
kn default # set default to default
kn my-namespace # set default to my-namespace

Podczas egzaminu przełączamy się ciągle pomiędzy namespacami. Używamy bardzo dużo kubectl. Dlatego uwierz mi – z pozoru wydające się “błachostki” zaprocentują oszczędnością czasu – nawet kilkunastu, a może kilkudziesięciu minut.

No i najważniejsze: generowanie plików “bazowych” YAML. Na egzaminie nie ma czasu, by pisać je od zera. Można kopiować z dokumentacji i modyfikować, albo czasami szybciej jest wygenerować szablon i go zmodyfikować, np. tak:

kubectl create deployment my-dep --image=busybox -o yaml --dry-run -o yaml > deploy-example.yaml

Stworzy nam się wtedy plik deploy-example.yaml z następującą zawartością:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: my-dep
  name: my-dep
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-dep
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: my-dep
    spec:
      containers:
      - image: busybox
        name: busybox
        resources: {}
status: {}

Następnie edytujemy zgodnie z treścią zadania.

Tworzę plik .vimrc w lokalnym katalogu:
vi ~/.vimrc
set tabstop=2
set expandtab
set shiftwidth=2

Dzięki temu, tworzenie i edycja YAMLi w vimie będzie znacznie przyjemniejsza (tabulacje rulezzz).


Ile kosztuje egzamin?

Szczegóły dotyczące ceny oraz zamawiania egzaminu znajdziesz na oficjalnej stronie Linux Foundation: https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/

Certified Kubernetes Application Developer (CKAD) Exam | Linux Foundation

Na chwilę pisania tego artykułu: (grudzień 2021) koszt egzaminu to 375$. W tej cenie zawiera się darmowy re-take oraz dostęp do środowiska testowego – killer.sh. Więcej szczegółów na ten temat w dalszej części artykułu.


CKAD – przykładowe zadanie z egzaminu Certified Kubernetes Application Developer

Przyjrzyjmy się dokładniej temu, jak może wyglądać przykładowe zadanie, podobne do tego, które będziesz musiał zrobić na egzaminie CKAD. Zadanie wykonuję na środowisku Killer.sh, do którego otrzymasz bezpłatny dostęp po wykupieniu vouchera na egzamin.

Przykładowe zadanie podobne do tego, które może znaleźć się na egzaminie CKAD
Przykładowe zadanie przygotowujące do egzaminu CKAD

Treść zadania:

Create a new PersistentVolume named earth-project-earthflower-pv. It should have a capacity of 2Gi, accessMode ReadWriteOnce, hostPath /Volumes/Data and no storageClassName defined.

Next create a new PersistentVolumeClaim in Namespace earth name earth-project-earthflower-pvc. It should request 2Gi storage, accessMode ReadWriteOnce and should not define a storageClassName. The PVC should bound to the PV corecctly.

Finally create a new Deployment project-earthflower in Namespace earth which mounts that volume at /tmp/project-data. The Pods of that Deployment should be of image httpd:2.4.41-alpine.

Krok 1: PresistentVolume

Naszym celem jest stworzenie wersji PresistentVolume o nazwie: arth-project-earthflower-pv, z capacity 2Gi, accessMode: ReadWriteOnce oraz hostPath /Volumes/Data. Bez definiowania storageClassName.

Na początku tworzymy jakiegoś yamla np. vi 12-pv.yaml.

Pamiętaj, że podczas zdawania egzaminu CKAD możesz korzystać z dokumentacji. Nie będziesz mieć czasu, aby tworzyć yamle od zera i pamiętać wszystkiego o danym obiekcie w Kubernetes. Dlatego możesz wyszukać potrzebną rzecz w dokumentacji, przekopiować ją, a następnie dokonać edycji:

Podczas egzaminu CKAD warto, a nawet należy korzystać z dokumentacji

W tym celu warto skorzystać ze wbudowanego notatnika, który jest dostępny w terminalu:

Gdy już skopiowaliśmy potrzebną nam rzecz, edytujemy skopiowany fragment – zmieniamy nazwę i wywalamy storageClass, claimRef:

W kolejnym kroku musimy uzupełnić wszelkie brakujące informacje. Jeśli nie jesteś pewny, jak określić accessMode, to z pomocą po raz kolejny przychodzi dokumentacja:

Jeśli nie jesteś pewny jak podczas egzaminu CKAD określić accessMode, to z pomocą po raz kolejny przychodzi dokumentacja.

Określamy hostPath na ten, który jest wymagany w zadaniu: /Volumes/Data. Doklejamy capacity i zmieniamy je na 2Gi. W zadaniu nie ma mowy o ReclaimPolicy, więc je usuwamy.

Gdy mamy już wszystko gotowe, kopiujemy zawartość notatnika, wklejamy ją do terminala i zapisujemy.

Teraz możemy zrobić:

kubectl apply -f 12-pv.yaml

Ważna rzecz: Przed rozpoczęciem ćwiczeń do egzaminu CKAD, warto przygotować aliasy o których wspominałem wyżej. To samo tyczy się ustawień Vima – sugerowałbym Ci ustawić go identycznie przed rozpoczęciem egzaminu (jeśli korzystasz z Nano, to poniższy element Cię nie dotyczy):

set tabstop=2
set expandtab
set shiftwidth=2
Krok 2: PresistentVolumeClaim w Namespace

W kolejnej części zadania musimy utworzyć nowy PresistentVolumeClaim w Namespace earht i nazwać go: earth-project-earthflower-pvc. Powinien mieć 2Gi storage.

Przechodzimy do dokumentacji i szukamy Persistent Volume, który posłuży nam jako baza. Następnie skopiowany fragment odpowiednio edytujemy, tworzymy vi 12-pvc.yaml i wklejamy:

Krok 3: Tworzymy Deployment

Ostatnia część zadania polega na stworzeniu nowego Deploymentu o nazwie: project-earthflower w Namespace earth, który następnie musimy podłączyć do następującej ścieżki w kontenerze: /tmp/project-data. Potrzebujemy również Poda z obrazem httpd:2.4.41-alpine.

Jak możesz się już domyślać, w tym celu ponownie skorzystamy z dokumentacji i odszukamy przykładowego Deploymentu, który następnie modyfikujemy. Gdy mamy już to zrobione, szukamy definicji Poda, którego będziemy mogli użyć.

Po edycji tworzymy nowy plik, a następnie wklejamy zawartość z notatnika. Całość powinna wyglądać w następujący sposób:

W kolejnym kroku musimy dostosować tabulatory oraz spacje. W tym celu używamy skrótu SHIFT + V, zaznaczamy interesujący nas fragment, a następnie używamy skrótu SHIFT + > na klawiaturze, który odpowiednio przeniesie nam tabulacje:

Teraz całość powinna prezentować się następująco:

Całość prezentuje się dobrze, ale musimy dodać jeden tabulator w wolumenach (volumes), w tym celu klikamy “INSERT” i odpowiednio je przesuwamy.

Pamiętaj o tym, aby ZAWSZE na samym końcu sprawdzić, czy całość działa tak, jak powinna. W ten sposób unikniesz nieprzyjemnych niespodzianek podczas egzaminu.

Szkolenie, które przygotuje Cię do certyfikacji CKAD: Certified Kubernetes Application Developer

Kubernetes Maestro

Szkolenie Kubernetes Maestro przeznaczone jest dla osób chcących nauczyć się KUBERNETES od PODSTAW i/lub poszerzyć dotychczasową wiedzę o dobre praktyki. Dla Programistów, DevOps-ów oraz wszystkich osób, które chcą:

nauczyć się od podstaw Kubernetes i zrozumieć orkiestrację kontenerów
✅ poszerzyć swoją wiedzę związaną z kontenerami o:
bezpieczeństwo, dobre praktyki,  dodatkowe narzędzia ułatwiające pracę z Kubernetes
uzyskać certyfikat CKAD: Certified Kubernetes Application Developer

Kubernetes Maestro

Wykonasz dużo praktycznych ćwiczeń oraz poznasz Kubernetes “Best Practices” 

Wykonasz dużo praktycznych ćwiczeń, od prostych deploymentów, aż po ZAAWANSOWANE schematy pokrywające bezpieczeństwo kontenerów czy konfigurację sieciową pomiędzy kontenerami

✅ Przetestujesz w praktyce zagadnienia takie jak: Rolling update, Blue-green deployment czy Canary release
✅ Nauczysz się jak zapewnić stabilność aplikacjom działającym w Kubernetes poprzez przydzielanie odpowiednich limitów oraz wymuszeń

Więcej szczegółów znajdziesz na stronie KubernetesMaestro.pl.


KONIEC info o Kubernetes Maestro 😎

Spróbuj swoich sił przed egzaminem na środowisku Killer.sh – Za Darmo

Od czerwca 2021 każdy, kto zarejestrował się na egzamin CKA, CKAD, CKS ma bezpłatny dostęp do środowiska killer.sh – gdzie można otrzymać dwie „próby” egzaminu. Środowisko jest bardzo zbliżone do realnego środowiska na egzaminie. Z każdej próby możesz skorzystać w dowolnym momencie i będzie ona dostępna przez 36 godzin od uruchomienia.

Po wykupieniu vouchera na egzamin możesz spróbować swoich sił na prezentowanym powyżej testowym środowisku Killer.sh, nawet zanim jeszcze ustalisz datę egzaminu.

Polecam Ci skorzystać z jednego podejścia przed ustaleniem konkretnej daty egzaminu CKAD, aby się z nim zapoznać. A drugi raz w momencie, gdy będziesz czuć, że jesteś już gotowy, aby zaplanować egzamin. Wtedy jeszcze raz przejdź przez wszystkie ćwiczenia, wróć i ustal konkretny termin.

Zadania na środowisku Killer.sh są trochę “trudniejsze”, aby jeszcze lepiej Cię przygotować. Jeśli się z nimi uporasz w przewidzianym czasie, istnieje wysokie prawdopodobieństwo, że egzamin pójdzie Ci gładko.


Nadchodzi start egzaminu….

Do 15 minut przed zaplanowanym czasem rozpoczęcia egzaminu klikamy “Take Exam”. Chwilę później powinieneś usłyszeć głos supervisora, który poinformuje Cię o rozpoczęciu procesu weryfikacji. Po uwierzytelnieniu supervisor poinformuję Cię, że cały proces przeszedł pomyślnie, wtedy klikasz „Launch Exam” i zaczyna się zabawa.

Gdyby coś poszło nie tak np. nagle przerwałoby Ci połączenie z internetem, czy wystąpiły inne problemy techniczne, to:

1. Od razu klikasz „Online- Click here to get help” lub

2. Możesz przejść do “Support Menu” i zadzwonić (telefonem).

CKAD Etap 2. Wymagania Podczas Egzaminu

Tak jak wspominałem wcześniej, musisz odpowiednio dostosować całe pomieszczenie w którym przebywasz. Oto kilka warunków, które należy spełnić:

  • Dobre oświetlenie.
  • Czyste biurko: nie mogą się na nim znajdować żadne kartki, elektronika itd.
  • Puste ściany: żadnych kartek, czy rysunków na ścianach, które mogłyby nawiązywać do tego, jak wygląda architektura Kubernetes.
  • Podczas trwania całego egzaminu CKAD nie wolno się odzywać. Może to zostać odebrane tak, jakbyśmy prosili kogoś z zewnątrz o pomoc.

Przejdźmy do tego z jakich materiałów można korzystać. Możesz mieć otwartą dokumentację Kubernetesa i jest to podstawa jeśli chodzi o zdawanie egzaminu:

Dobra znajomość poruszania się po dokumentacji będzie czymś, co zdecydowanie zagra na Twoją korzyść. Dlaczego? Ponieważ korzystanie z gotowych materiałów znacząco przyśpieszy całą pracę. Zapewniam Cię, że w trakcie egzaminu nie będziesz miał czasu na tworzenie yamli od zera.

Jeśli na którejś z powyższych stron będzie umieszczony jakikolwiek link zewnętrzny, to pod żadnym pozorem go nie klikaj! Zabronione jest również korzystanie z: https://discuss.kubernetes.io/ 

Warto odpowiednio wcześniej przygotować zakładki jak np. tutaj:

Pasek zakładek, które ułatwiają pracę podczas zdawania egzaminu CKAD

W ten sposób ułatwiasz sobie życie 🙂

Czy Jest Trudno?

Jeśli skorzystasz z powyższych rad i poświęcisz trochę czasu na solidne przygotowanie, to podczas egzaminu nic nie powinno Cię zaskoczyć i uzyskanie certyfikatu Certified Kubernetes Application Developer nie będzie żadnym Rocket-Science 🙂

Dostajesz praktyczne zadanie i musisz je rozwiązać (coś zbliżonego do zadań w realnym projekcie). Nie ma tutaj pytań i odpowiedzi z przypadku, które nawiązuje do “kruczków z dokumentacji” – jak to często bywało na innych egzaminach, które do tej pory zdawałem.

Tak więc: Życzę Ci powodzenia! I pamiętaj: nie taki CKAD straszny jak go malują, pod warunkiem, że się przyłożysz i potrafisz działać pod presją czasu.

PS. Pamiętaj, że Kubernetes Maestro jest szkoleniem, które nie tylko przygotuje Cię do certyfikacji CKAD od strony merytorycznej, ale także nauczy Cię jak wdrażać aplikacje w Kubernetes na produkcji.





.

Leave a Comment

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