Kubernetes po polsku

Kubernetes po polsku to kurs dostępny za darmo, dzięki któremu:

  • sprawdzisz w praktyce jak działa Kubernetes i jego najważniejsze elementy
  • nauczysz się osadzać na nim efektywnie swoje aplikacje w kontenerach
  • dowiesz się jak łatwo konfigurować i dostosowywać środowisko do wymagań swojej aplikacji

Dlaczego?

W tym wpisie opisuję dlaczego powstał ten kurs i dlaczego w takiej formie.

Zasoby

Część plików wykorzystywanych przeze mnie dostępna jest na dedykowanym repozytorium na githube - https://github.com/cloudowski/kubernetes-po-polsku


Dostępne odcinki

1. Uruchamianie Kubernetes z użyciem Minikube

W tej części opowiadam o łatwych początkach i startu własnej instancji Kubernetes. Pokazuję też jak uruchomić pierwszą aplikację!

Linki:

2. Pody, czyli kontenery i coś więcej

Pody stanowią najmniejszą część jaką zarządza Kubernetes. Stanowią one podstawę wszystkich innych usług i uruchamiają aplikacje w kontenerach ze zdefiniowanych obrazów.

3. Błyskawiczne skalowanie przy pomocy ReplicaSet

Jeśli chcesz swoje apikacje uruchamiać w wielu instancjach na wielu nodach i nie chcesz samodzielnie dbać o to, by dbać o stan tych aplikacji to najlepiej powierzyć to zadanie obiektowi ReplicaSet.

4. Komunikacja pomiędzy usługami - Service

Posiadając wiele replik swojej aplikacji czas najwyższy, aby zacząć z nich korzystać. W końcu koniec z adresami IP, zacznijmy korzystać z dobrodziejstw wbudowanego DNS i load balancera. Czas na omówienie Service.

5. Automatyczny reverse proxy - Ingress

Posiadając wiele aplikacji webowych często wystawiamy je przez reverse proxy. Daje to olbrzymie korzyści jeśli chodzi o konfigurację z jednego, centralnego miejsca, terminowania ruchu ssl, dodatkowego zabezpieczenia opcjami protokołu http i wiele innych. I taką rolę w Kubernetes pełni Ingress.

6. Zarządzanie aplikacją i jej cyklem życia - Deployment

Deployment jest najważniejszym jeśli chodzi o zarządzanie cyklem życia aplikacji obiektem w Kubernetes. To jest również zalecana metoda do uruchamiania nawet najmniejszych aplikacji złożonych z jednego kontenera, który nie będzie skaloway ponad 1 instancję. Całe zarządzanie jest bardzo proste, ale też ile czasu to oszczędza dowie się tylko ten, kto próbował sam stworzyć mechanizm Rolling update lub canary release :-) To nigdy nie było tak proste jak teraz!

7. Konfiguracja aplikacji utrzymywana przez ConfigMap

Jedną z dobrych praktyk dotyczących używania kontenerów jest odseparowanie kodu (utrzymywanego i zapisanego jako obraz kontenera) od konfiguracji. W Kubernetes istnieje dedykowany obiekt, który pozwala nam przetrzymywać dane konfiguracyjne oraz dostarczać je już bezpośrednio do kontenera na kilka sposobów. Tutaj dowiesz się jak dokładnie.

8. Zarządzanie wirtualnymi środowiskami - Namespace

Twórz wirtualne, odseparowane środowiska, którymi możesz zarządzać niezależnie. W tej części pokazuję czym są namespace`y oraz jak ich używać. Z pewnością przydaje się to kiedy będziesz chciał wyjść poza jedno środowisko dla developmentu i tworzyć dedykowane dla produkcji.

9. Instalowanie gotowych aplikacji z paczek przez Helm

Pierwsza część dotycząca Helm. Pokazuję w niej czym jest Helm i jak wykorzystać go do wgrywania aplikacji dostępnych w paczkach Charts na oficjalnych repozytoriach. Dodatkowo dowiesz się jak je łatwo konfigurować dostarczając parametry per instancja aplikacji na przykładach projektów Dokuwiki oraz Gogs.

10. Tworzenie i publikowanie własnych paczek aplikacji dla Helm

Druga część dotycząca Helm. Tym razem dowiesz się jak zbudowany jest Chart, w jaki sposób go możesz samodzielnie utworzyć oraz jak możesz publikować aplikacje we własnym, prywatnym repozytorium i korzystać z niego do deploymentu swoich aplikacji.

11. Kubernetes w chmurze - AWS EKS

Wypuszczamy się w chmurę AWS i testujemy Kubernetes jako usługę - Elastic Kubernetes Service (EKS). Dowiesz się jak łatwo ją postawić i w praktyce pokażę ci, że kod uruchamiany do tej pory na jednym węźle wykorzystasz już na chmurze na wielu węzłach i to pomimo kilku problemów technicznych z mojej strony :-)