Docker i Kubernetes dla programistów
Opis
Wirtualizacja infrastruktury to obecny trend, który rozwiązuje odwieczny problem „u mnie działa” w odniesienie do różnych środowisk: deweloperskich, testowych i produkcyjnych. Począwszy od przeniesienia dowolnej aplikacji do postaci obrazu, z którego można uruchomić kontener na dowolnym systemie, w którym funkcjonuje Docker, a skończywszy na złożonych konfiguracjach środowiska wieloaplikacyjnego (np. w kontekście microservices) z użyciem Kubernetesa. Szkolenie jest dedykowane programistom, którzy pracują nad projektami, gdzie używa się Dockera i Kubernetesa, tak aby w pełni świadomie mogli używać tych narzędzie, jak i również pracować z ich konfiguracją.
Szczegółowy program
Moduł. 1
Wprowadzenie
- Koncepcje wirtualizacji i konteneryzacji
- Pojęcia związane z Dockerem
- Obrazy
- Warstwy
- Kontenery
- Rejestry oraz repozytoria
- Wymagania wobec systemu operacyjnego
- Uruchomienie pierwszego kontenera
Moduł. 2
Używanie kontenerów
- Praca z użyciem CLI
- Pobieranie obrazów
- Przegląd pliku Dockerfile
- Startowanie kontenera
- Kontrolowanie kontenera
- Zatrzymywanie kontenera
- Usuwanie obrazu
- Trwałość danych w kontenerze
Moduł. 3
Współpraca między kontenerami
- Typy trybów sieciowych
- Komendy sieciowe
- Wystawianie i mapowanie portów
- Uzyskiwanie trwałości danych w kontenerze
- Tworzenie i usuwanie wolumenu
Moduł. 4
Praca z Dockerfile
- Struktura pliku Dockerfile
- Instrukcje: FROM, WORKDIR, ADD, COPY, RUN, CMD, ENTRYPOINT, EXPOSE, VOLUME, LABEL, ENV, USER, ARG
- Tworzenie obrazu
- Umieszczanie obrazu
Moduł. 5
Zaawansowane zagadnienia
- Przykładowa aplikacja z użyciem kontenerów
- Tryby uruchamiania kontenerów
- Monitorowanie kontenerów
- Polityki restartów
- Ograniczenia zasobów (pamięć, procesor)
Moduł. 6
Wprowadzenie do Kubernetes
- Architektura Kubernetesa
- Podstawowe obiekty Kubernetesa
- Pod
- ReplicaSet
- Deployment
- Service
- kube-dns
- Namespace
- Node - kubelet, proxy, docker
- Master - etdc, API Server, scheduler
- Narzędzia
Moduł. 7
Praca z Kubernetes
- Uruchomienie minikube
- Podstawowe operacje kubectl
- Stworzenie deploymentu
- Stworzenie service’u
- Interakcja z kontenerem
- Podgląd logów
- Techniki debugowania
- Manualne skalowanie
- Autoskalowanie
- Zdarzenia w klastrze
- Praca z Kubernetes Dashboard
- Dodatkowe narzędzia (add-ons)
Moduł. 8
Deklaratywna konfiguracja
- Etykiety (labels)
- Selektory (selectors)
- Definiowanie usług (services)
- Usługi typu ExternalName
- Usługi typu LoadBalancer
- Usługi typu NodePort
- Wdrożenia
- Cofanie wdrożenia
- Adnotacje (Annotations)
- Mapy konfiguracyjne (ConfigMaps)
- Dane wrażliwe (Secrets)
- Przykłady konfiguracji
Moduł. 9
Cykl życia
- Cykl życia Poda
- Cykl życia kontenera
- Współzależności między Deployment, ReplicaSet oraz Pod
- Wskaźnik Liveness
- Wskaźnik Rediness
- Zakładanie hooka na kontenterze
- Szybkie interaktywne testowanie
- Poprawne zamykanie
Moduł. 10
Procesy, backend i monitoring
- Job/CronJob
- Volumes
- Stateful Set
- Prometheus
- Grafana
- EFK stack
Moduł. 11
Kubernetes na AWS
- Konfiguracja AWS EKS
- Stworzenie klastra
- Konfiguracja klastra
- Modyfikacja ustawień klastra
- Wdrażanie aplikacji
- Instalacja Dashboardu w Kubernetes