Laboratorium 12

Uruchomienie opracowanej metody z wykorzystaniem środowiska Kubernetes

Przypomnijmy diagram planowanego systemu: image

W trakcie obecnego laboratorium zaczniemy prace nad Etapem IV.

Wykorzystując poznane narzędzie Helm oraz platformę Kubernetes opracujemy chart Helmowy dla naszego systemu.

Zadanie 12.1: Przygotowanie charta Helmowego (12 pkt)

W poniższych zadaniach kompletnie pomijamy komponenty z Etapu III!

a) Sprawdź, które komponenty opracowanej aplikacji (service w Docker-Compose) są dostępne jako gotowe charty Helmowe.

b) Dla pozostałych komponentów przygotuj obrazy Dockerowe - m.in. mechanizm pobierania danych z Etapu I oraz Detekcja języka, Wektoryzacja tekstu i zapis do bazy danych z Etapu II. Następnie wybierz jedną z opcji:

  • A: udostępnij obrazy na platformie Docker Hub

  • B: zbuduj obrazy na maszynach typu worker w ramach, utworzonego podczas ostatnich zajęć, klastra K3s

c) W repozytorium utwórz chart Helmowy dla naszej aplikacji:

  • dodaj gotowe charty komponentów z punktu a)

  • dla każdego komponentu z punktu b) utwórz odpowiednie szablony Helmowe (deployment, service, configmap itd. - w zależności od potrzeb)

  • zadbaj o wolumeny danych (dla uproszczenia użyj hostPath, ale pamiętaj, że w rzeczywistych zastosowaniach należy użyć odpowiedniej Storage Classy, np. EBS, Cinder, NFS)

d) Do odpowiednich komponentów dodaj próbki liveness and readiness, które pozwolą sprawdzić Kubernetesowi czy aplikacja nadal działa poprawnie.

Zadanie 12.2: Wdrożenie aplikacji (3 pkt)

  • Zainstaluj przygotowany chart Helmowy w klastrze K3s

  • Sprawdź czy wszystko działa poprawnie

  • Zmień wybraną wartość w pliku values.yaml (np. liczba replik komponentu detekcji języka)

  • Przeprowadź rolling update

  • Sprawdź czy zmiana została poprawnie zaaplikowana

  • Odwróć zmiany i wróć do poprzedniej wersji aplikacji (rollback)

Zadanie 12.3: Poprawność działania aplikacji (3 pkt)

  • Sprawdź, że dane są zbierane na bieżąco

  • Pokaż, że Grafana działa i wyświetla dane na bieżąco

  • Pokaż, że Redash działa i wyświetla dane na bieżąco