Egzamin CKA – Certified Kubernetes Administrator: Jak zdać certyfikat i na co uważać?

Niedawno zdałem egzamin CKA za pierwszym podejściem, uzyskując wynik 85%. W tym artykule chciałbym podzielić się swoimi doświadczeniami oraz udzielić wskazówek, jak skutecznie przygotować się do tego egzaminu. Po krótkim wprowadzeniu przejdziemy do konkretnych porad, które z pewnością podniosą Was na duchu i pomogą w osiągnięciu sukcesu. Dowiedzcie się jak zdać CKA za pierwszym podejściem.

Egzamin Certified Kubernetes Administrator (CKA) jest oficjalnym certyfikatem oferowanym przez Linux Foundation we współpracy z Cloud Native Computing Foundation (CNCF). Certyfikat ten potwierdza, że osoba go posiadająca dysponuje umiejętnościami i wiedzą niezbędną do zarządzania klastrami Kubernetes.

Egzamin składa się z 17 zadań, a czas na jego wykonanie wynosi 120 minut. Próg zdawalności wynosi 66%.

Czego potrzebujesz aby zacząć ćwiczyć do egzaminu? Przed rozpoczęciem praktyki do egzaminu ważne jest, abyś opanował podstawy Kubernetesa, Dockera, systemu Linux oraz networkingu. Powinieneś być zaznajomiony ze wszystkimi podstawowymi obiektami, takimi jak deploymenty, pody, serwisy, configMaps, ingress. Również niezbędne jest, abyś znał polecenia do zarządzania tymi obiektami.

Części składowe Kubernetes

W trakcie przygotowań zapoznasz się zarówno z rzadziej, jak i częściej używanymi obiektami oraz komendami. Ważne jest, aby dokładnie zrozumieć ich działanie i zastosowanie w różnych scenariuszach. Regularne ćwiczenie i praktyczne zastosowanie tych komend znacznie zwiększy Twoje szanse na sukces podczas egzaminu.

Jak efektywnie ćwiczyć i przygotować się na Certified Kubernetes Administrator

„You know how you get to Carnegie Hall, don’t you? Practice.”

Jeśli masz już wiedzę teoretyczną, zacznij ją przekładać na praktykę. Certyfikat ten jest egzaminem praktycznym, więc tylko dzięki praktyczne możesz zdać CKA. Możesz zastanawiać się, gdzie ćwiczyć zdobyte umiejętności – tu z pomocą przychodzi KillerCoda.

KillerCoda to interaktywna platforma edukacyjna, która oferuje praktyczne laboratoria i ćwiczenia w środowisku Kubernetes. Platforma ta jest szczególnie przydatna dla osób przygotowujących się do egzaminu Certified Kubernetes Administrator, ponieważ umożliwia ćwiczenie rzeczywistych scenariuszy administracyjnych i rozwiązywanie problemów w klastrach Kubernetes.

KillerCoda jest w pełni darmowa – wystarczy założyć konto. Oprócz scenariuszy związanych z CKA, oferuje również wiele innych ćwiczeń, które pozwolą Ci przygotować się do różnych  certyfikacji np. CKS lub LFCS. Dzięki temu możesz zdobyć praktyczne doświadczenie, które jest niezbędne do pomyślnego zdania egzaminu.

Screenshot strony głównej KillerCoda

Scenariusze i przykładowe zadania, które musisz znać

Egzamin CKA obejmuje różne aspekty administracji Kubernetes, w tym:

  • Podstawy Kubernetes:
    • Architektura Kubernetes
    • Składniki klastra i ich funkcje
  • Instalacja i konfiguracja klastra:
    • Instalacja klastra za pomocą narzędzi takich jak kubeadm
    • Konfiguracja sieci
    • Konfiguracja kubeconfig
  • Zarządzanie klastrami:
    • Składniki klastra (etcd, kontroler, scheduler)
    • Skalowanie i aktualizacja klastra
  • Rozwiązywanie problemów:
    • Diagnozowanie problemów z klastrem i aplikacjami
    • Użycie narzędzi takich jak kubectl i journalctl do diagnozowania problemów
  • Podstawowe zasoby Kubernetes:
    • Pod, ReplicaSet, Deployment, Namespace, ConfigMap, Secret
  • Zaawansowane zasoby Kubernetes:
    • StatefulSet, DaemonSet, Job, CronJob
  • Sieć Kubernetes:
    • Podstawy CNI (Container Network Interface)
    • Pod i Service networking
    • Network policies
  • Bezpieczeństwo klastra:
    • RBAC (Role-Based Access Control)
    • Pod Security Policies
    • Zarządzanie certyfikatami i bezpieczeństwo komunikacji
  • Persistent Storage:
    • Persistent Volumes (PV) i Persistent Volume Claims (PVC)
    • Storage Classes
  • Monitorowanie i logowanie:
    • Monitorowanie klastrów i aplikacji
    • Konfiguracja i zarządzanie logowaniem

Przykładowe zadania, które pomogą zdać CKA:

Przenieś wszystkie logi z deploymentu A który znajduje się w namespace B do /var/logs/example 

kubectl get deploy -n B 

kubectl edit deploy A -n B (sprawdzanie kontenerów w deploymencie)

kubectl -n B logs deploy/A -c (nazwa kontenera) >> /var/logs/example 

kubectl -n B logs deploy/A -c (nazwa kontenera2) >> /var/logs/example

Zrób auto-scale istniejącego deploymentu A w namespace B na 80% obciążenia CPU i ustaw minimum 3 repliki i max 5 replik

kubectl -n B autoscale deploy A –min=3 –max=5 –cpu-percent=80

Na klastrze są uruchomione pody na różnych namespacach, db pods z namespace Project-a powinny być dostępne tylko z service pods które są uruchomione na namespace Project-b

Trzeba dać labels dla namespaces

kubectl label namespace project-a namespace=project-a

kubectl label namespace project-b namespace=project-b

potrzebujemy teraz labels podów, żeby odpowiednio ustawić network-policies

kubectl get pods -n project-a –show-labels

kubectl get pods -n project-b –show-labels

vim policy.yaml

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: network-policy
  namespace: project-a
spec:
  podSelector:
    matchLabels:
      app: db
  policyTypes:
  – Ingress
  ingress:
    – from:
        – namespaceSelector:
            matchLabels:
              namespace: project-b
          podSelector:
            matchLabels:
                app: service

kubectl apply -f policy.yaml

Stwórz Poda o nazwie my-busybox z imagem busybox:1.31.1. W podzie powinna się uruchamiać  komenda sleep na 4800 sekund. Upewnij się ze pod działa na node01

kubectl run my-busybox –image=busybox:1.31.1 –command sleep 4800

W tym scenariuszu jest taki haczyk, że ten pod odpali się na nodzie master, co widać po wpisaniu kubectl get pods -o wide ponieważ worker node01 ma ustawione schedulingDisabled.

kubectl uncordon node01

kubectl delete pod my-busybox

Ponownie tworzymy kontener 

kubectl run my-busybox –image=busybox:1.31.1 –command sleep 4800

Scheduler już go ustawi na worker nodzie ponieważ użyliśmy „uncordon”.

Dokumentacja – Twój najlepszy przyjaciel

Przeglądając przykładowe zadania, możesz zastanawiać się, skąd znam te wszystkie komendy i czy na egzaminie musisz je pamiętać.

Tutaj z pomocą przychodzi dokumentacja, która jest dostępna w trakcie egzaminu. Dodatkowo, dokumentacja zawiera podstronę o nazwie „kubectl Quick Reference”, którą można również znaleźć jako „cheat sheet”. Jest to niezwykle pomocne kompendium zawierające najważniejsze komendy i ich opisy.

Podobnie jak na maturze z matematyki, gdzie dostępna była karta wzorów, podczas egzaminu CKA dokumentacja pełni podobną funkcję oferując przydatne komendy i przykłady w formacie YAML. Korzystanie z niej może znacząco ułatwić rozwiązywanie zadań.

Dokumentacja Kubernetes

Pamiętaj, że umiejętność korzystania z dokumentacji jest kluczowa, szczególnie na egzaminie. Jeśli dokładnie przepracujesz wszystkie zadania na KillerCodzie, korzystając z dokumentacji, na egzaminie będziesz się czuł pewnie i swobodnie.

Typowe pułapki i jak ich unikać

Sprawdzanie poprawności plików YAML

Na początku upewnij się, że Twoje pliki YAML i komendy są prawidłowe. Zawsze kopiuj gotowe fragmenty z dokumentacji i edytuj je zgodnie z wymaganiami konkretnego zadania. Taki prosty błąd może sprawić, że finalnie nie uda Ci się zdać CKA.

Zadania wieloetapowe

Zadania egzaminacyjne często składają się z kilku etapów. Może się zdarzyć, że pomimo poprawnego pliku YAML lub komendy, Twój zasób się nie utworzy. Pamiętaj, że rozwiązywanie problemów to również część egzaminu.

Radzenie sobie z typowymi problemami

  • Taints (Plamy): Są to znaczniki przypisywane do węzłów klastra, które wskazują, że dany węzeł jest „zanieczyszczony” i nie powinny na nim działać pody, chyba że mają one odpowiednie toleracje. Taints są opcjonalne i służą do kontrolowania i planowania podów na danym węźle.
  • Tolerations (Toleracje): Toleracje to atrybuty przypisywane do podów, które pozwalają im działać na węzłach z przypisanymi taints (plamami). Dzięki toleracjom, pody mogą być uruchamiane na węzłach, które normalnie byłyby wykluczone z działania bez odpowiednich toleracji. Toleracje są przypisywane bezpośrednio do podów, co oznacza, że określają one, które pody mogą działać na węzłach oznaczonych jako „zanieczyszczone”.
  • Naprawa kubelet: Często kubelet nie jest włączony lub ma podaną niepoprawną ścieżkę do pliku konfiguracyjnego.
  • Literówki w plikach YAML: Nawet pojedyncza literówka może zabrać cenne minuty egzaminu. Z mojego doświadczenia, literówki najczęściej występują w nazwie obrazu lub w nazwie PVC w podzie/deploymencie.
  • Kontekst: Przed każdym zadaniem upewnij się, że ustawiłeś prawidłowy kontekst. Jest on zawsze podany na górze treści zadania i należy go skopiować do terminala. To główny warunek przystąpienia do zadania.

Jak zarządzać czasem podczas egzaminu

  1. Jeżeli jakieś zadanie zajmuje Ci więcej niż 15 minut, przejdź do następnego. Nie trać cennego czasu na jedno zadanie, jeśli możesz zdobyć punkty za inne.
  2. W trakcie egzaminu masz dostęp do przeglądarki, w której możesz mieć otwartą tylko dokumentację. Naucz się sprawnie poruszać po dokumentacji i korzystaj z funkcji wyszukiwania słów kluczowych (Ctrl + F). Dzięki temu szybko znajdziesz potrzebne informacje.
  3. Po wykonaniu każdego zadania postaraj się zweryfikować, czy zrobiłeś je poprawnie. Dzięki temu będziesz mógł kontynuować egzamin z mniejszym stresem, mając pewność, że Twoje wcześniejsze odpowiedzi są poprawne.
  4. Korzystaj z gotowych plików YAML z dokumentacji i edytuj je pod konkretne zadanie. Dzięki temu zmniejszysz ryzyko popełnienia błędów i zaoszczędzisz czas.
  5. Generuj pliki YAML używając komend takich jak np. kubectl run nginx –image=nginx –dry-run=client -o yaml > pod.yaml, a następnie edytuj je pod konkretne zadanie. To podejście pozwoli Ci szybko uzyskać poprawną strukturę pliku YAML i dostosować ją do wymagań zadania.

Czego można spodziewać się na egzaminie

10 najczęściej pojawiających się typów zadań oraz ich punktacja:

  1. Upgrade clustra do konkretnej wersji — około 12%
  2. ETCD Backup i Restore — około 12%
  3. Przyłączenie węzła do clustra — około 8%
  4. Cluster Troubleshooting (najczęściej kubelet) — około 8%
  5. Przeniesienie podów na inny węzeł — około 8%
  6. PersistantVolume i PersistantVolumeClaim — około 6%
  7. Wystawienie poda przez nodePort — około 6%
  8. DaemonSet — około 6%
  9. NetworkPolicy — około 6%
  10. Roles i RoleBinding — około 6%

Format zadań i przebieg egzaminu. Jak wygląda środowisko na egzaminie?

Do panelu należy wejść godzinę przed rozpoczęciem egzaminu. Wówczas osoba nadzorująca przeprowadzi kontrolę Twojego środowiska. Musi ona upewnić się, że masz odpowiednie warunki, aby zdać CKA bez oszustw.

Przygotuj odpowiednio pokój, usuń wszystkie rzeczy z biurka. Zostaniesz poproszony o obrócenie kamery dookoła stanowiska pracy, aby udowodnić, że nie dysponujesz żadną ściągawką ani inną formą pomocy. W moim przypadku kontrola trwała 30 minut – musiałem schować słuchawki do szafy.

Format zadań jest idealnie odwzorowany na KillerCodzie, niestety warunki techniczne podczas egzaminu bywają problematyczne. Przed egzaminem czytałem o regularnych utratach połączenia i spowolnieniach, ale mimo wszystko nie chciałem w to wierzyć i uznałem to za wymówkę osób, które nie zdały. Niestety, gdy sam usiadłem do egzaminu, przekonałem się, że nie są to opinie odbiegające od rzeczywistości. Środowisko egzaminacyjne działa naprawdę wolno!

Finalnie udało mi się zdać egzamin, jednak z powodu problemów technicznych zdołałem rozwiązać tylko 15 z 17 zadań, wszystkie poprawnie, uzyskując 85%.

Ostatnie wskazówki przed egzaminem CKA

Zachowaj spokój i pamiętaj, że zawsze masz drugie darmowe podejście. W pakiecie egzaminacyjnym otrzymasz również dostęp do egzaminu próbnego, który jest znacznie trudniejszy niż rzeczywisty egzamin. Przepracuj wszystkie możliwe scenariusze na KillerCodzie. Zapoznaj się dokładnie z dokumentacją, aby sprawnie się po niej poruszać podczas egzaminu. Powodzenia! 

Gdzie znaleźć darmowe materiały do egzaminu CKA

Oto lista stron wraz z załącznikami, które pomogły mi zdać CKA:

https://kubernetes.io

https://www.youtube.com/@kubernetesway

https://killercoda.com

Udostępnij

Facebook
Twitter
LinkedIn
Picture of Filip Rak

Filip Rak

Dodaj komentarz

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