Nauczę Cię jak wdrażać aplikacje w Kubernetes na produkcji, nawet jeśli nigdy nie miałeś styczności z konteneryzacją.

Kubernetes Maestro

Agenda Kubernetes Maestro

01.01    Pierwsze kroki z Kubernetes — wprowadzenie
01.02    Jak przejść przez szkolenie, by wynieść z niego jak najwięcej
01.03    Klaster — po co i dlaczego?
01.04    Czym jest Kubernetes
01.05    Kubernetes z perspektywy wdrażania aplikacji
01.06    Jak działa Kubernetes
01.07    Control plane
01.08    Data plane
01.09    Zastosowania Kubernetes
01.10    Konfiguracja i przygotowanie lokalnego środowiska do nauki
01.11    Środowiska do nauki w chmurze
01.11A: Zmiana w uwierzytelnianiu z klastrem w chmurze
01.12    Optymalizacja kosztów — jak się uczyć za darmo
01.13: Zadanie do samodzielnego wykonania
01.14: Kubeconfig – konfiguracja dostępów do wielu klastrów 

02.01    Kubernetes Big Picture — wprowadzenie
02.02    Najmniejsza jednostka w Kubernetes — Pod
02.03    Kontener vs Pod - cechy wspólne i różnice dla znających Dockera
02.04    Format YAML
02.05    Podejście imperatywne vs deklaratywne
02.06    Omówienie ReplicaSet
02.07    Deployment Big Picture
02.08    Logiczny podział klastra z namespaces
02.09    Wdrożenie pierwszej aplikacji w Kubernetes
02.10    Wdrożenie aplikacji mikroserwisowej w praktyce
02.11    Podsumowanie & Co dalej 

03.01    Konfiguracja i wzorce — wprowadzenie
03.02    Przekazywanie argumentów
03.03    Zmienne środowiskowe
03.04    Sposoby na przekazywanie konfiguracji do kontenerów     
03.05    Przekazywanie konfiguracji w praktyce – sposób 1
03.06    Przekazywanie konfiguracji w praktyce – sposób 2
03.07    Jobs — teoria & praktyka
03.08    CronJobs — teoria & praktyka
03.09    Dobre praktyki & podsumowanie 

04.01    Networking — wprowadzenie
04.02    Container Network Interface (CNI)
04.03    Wprowadzenie do Kubernetes Service
04.04    Jak działają poszczególne Kubernetes Service
04.05    ClusterIP w praktyce
04.06    NodePort w praktyce
04.07    LoadBalancer w praktyce
04.08    Ingress - czym jest i jak działa
04.09    Ingress w praktyce
04.10    Podsumowanie & Co dalej 

05.01    Trwałość i przechowywanie danych — wprowadzenie
05.02    Przechowywanie danych — Big Picture
05.03    Volumeny
05.04    Multi-container pod
05.05    PersistenVolumes & PersistentVolumeClaims
05.06    Storage Class - po co i dlaczego
05.07    Container Storage Interface (CSI) 

06.01    Projektowanie aplikacji
z myślą o Kubernetes — wprowadzenie
06.02    Wprowadzenie do Cloud Native
06.03    Co oznacza Cloud Native w praktyce
06.04    Aplikacje stanowe vs bezstanowe
06.05    Aplikacje typu multi-instance
06.06    Jak podejść do architektury aplikacji z myślą o Kubernetes
06.07    Droga od kodu do wdrożenia w Kubernetes
06.08    Konteneryzacja aplikacji w praktyce
06.09    Błędy początkujących 

07.01    Wdrażanie aplikacji bezstanowych — wprowadzenie
07.02    ReplicaSet vs DeamonSets — różnice i zastosowania
07.03    DeamonSet w praktyce
07.04    Zarządzanie zasobami — limity i wymuszenia
07.05    Liveness i Readiness
07.06    Rolling update w praktyce
07.07    Agregowanie logów
07.08    Dobre praktyki
07.09    Wdrożenie aplikacji mikroserwisowej w praktyce
07.10    Debuggowanie i rozwiązywanie problemów aplikacji bezstanowych
07.11    Debuggowanie – CrashLoopBackOff 

08.01    Wdrażanie aplikacji stanowych — wprowadzenie
08.02    Przykłady aplikacji stanowych
08.03    Dlaczego potrzebujemy innego mechanizmu niż Deployment
08.04    Sposób na aplikacje stanowe w Kubernetes
08.05    Headless Service
08.06    Wdrożenie aplikacji stanowej w praktyce
08.07    Gdzie przechowywać stan aplikacji
08.08    Kubernetes Operator & CRD — wprowadzenie
08.09    Bazy danych i Kubernetes
08.10    Wdrożenie bazy danych w Kubernetes w praktyce
08.11    Skalowanie bazy danych oraz weryfikacja odporności na błędy w praktyce
08.12    Błędy początkujących
08.13    Dobre praktyki
08.14    Debuggowanie i wdrażanie aplikacji stanowych z wykorzystaniem PodAffinity 

09.01    Bezpieczeństwo — wprowadzenie
09.02    Jak "pod spodem" działają kontenery w Kubernetes
09.03    Ograniczanie uprawnień roota w kontenerze
09.04    Mechanizmy bezpieczeństwa kontenerów w Kubernetes
09.05    Security Context w praktyce
09.06    Dlaczego zwracać uwagę na uprawnienia kontenerów
09.07    Wykrywanie niepoprawnej konfiguracji
09.08    Service Account — wprowadzenie
09.09    Domyślny Service Account w praktyce
09.10    Tworzenie własnych Service Account & Role Binding
09.11    Polityki bezpieczeństwa dla Podów
09.12    Polityki sieciowe
09.13    Ograniczanie ruchu sieciowego Podów w podejściu multi-tenant
09.14    Skanowanie obrazów pod kątem bezpieczeństwa
09.15    Bezpieczeństwo — polecane narzędzia oraz co dalej 

10.01    Strategie wdrożeń i automatyzacja — wprowadzenie
10.02    Strategia wdrażania na produkcji nr 1 - Canary release
10.03    Strategia wdrażania na produkcji nr 2 - Blue-green deployment
10.04    Wprowadzenie do Helm
10.05    Helm w praktyce
10.06    Tworzenie własnych Helm Chart w praktyce
10.07    Automatyzacja — czyli tradycyjne CI / CD
10.08    Automatyczne budowanie i skanowanie obrazów
10.09    Automatyczne deployment aplikacji
10.10    Automatyczny deployment z użyciem Helm
10.11    Tradycyjne CI/CD – wady i zalety
10.12    Wprowadzenie do GitOps
10.13    GitOps w praktyce 

11.01    Kubernetes na produkcji — wprowadzenie
11.02    Kubernetes we własnej infrastrukturze
11.03    Kubernetes w chmurze
11.04    Przenoszenie istniejących rozwiązań z Docker do Kubernetes — sposób 1
11.05    Przenoszenie istniejących rozwiązań z Docker do Kubernetes — sposób 2
11.06    Integracja z prywatnym rejestrem obrazów — sposób 1
11.07    Integracja z prywatnym rejestrem obrazów — sposób 2
11.08    Wprowadzenie do OPA
11.09    Wymuszanie dobrych praktyk bezpieczeństwa za pomocą polityk
11.10    Chaos engineering
11.11    Monitoring klastrów Kubernetes
11.12    Co dalej
 

damian[at]szkoladockera.pl