Podstawy Docker i Kubernetes
Szkolenie rozszerzające program Fundamenty Kubernetes o elementy podstaw kontenerów i Dockera.
Grupa docelowa
Warsztaty te przeznaczone są dla osób zaczynających pracę z Kubernetes, w szczególności dla:
- programistów zajmujących się tworzeniem skonteneryzowanych aplikacji
- administratorów i inżynierów DevOps zarządzających platformą dla kontenerów i wspierających zespoły developerskie
Wymagania
Ze względu na charakter praktyczny wymagane jest, aby uczestnicy
- poruszali się swobodnie w linuksowym środowisku linii poleceń
- byli zaznajomieni z typowymi narzędziami typu ssh, vim (lub inny edytor tekstu dostępny w linuksie)
Korzyści dla uczestników
Uczestnicy po szkoleniu będą:
- rozumieli czym są kontenery i w jaki sposób różnią się od tradycyjnych aplikacji działających na zwykłych systemach operacyjnych
- rozumieli czym jest efemeryczność kontenerów i jakie są tego konsekwencje dla budowy oraz uruchamiania aplikacji
- potrafili obsługiwać kontenery z wykorzystaniem dockera
- potrafili odczytać najważniejsze informacje o działających kontenerach i aplikacji w nich uruchomionych
- potrafili zbudować obraz kontenera z aplikacji według najlepszych praktyk
- rozumieli czym są obrazy i ich warstwy, aby móc budować mniejsze i bezpieczniejsze obrazy
- potrafili opublikować zbudowany obraz kontenera w zdalnym rejestrze
- potrafili uruchomić aplikację wraz z serwisem typu baza danych i ustawić odpowiednią komunikację między nimi
- potrafili korzystać z podstawowego narzędzia do zarządzania obiektami na dowolnym klastrze Kubernetes (kubectl)
- znali architekturę Kubernetes i będą mogli wykorzystać to do budowy odpornych na awarie systemów
- rozumieli najważniejsze obiekty, ich cechy, sposób działania i potrafili dzięki temu tworzyć własne zestawy konfiguracji obiektów lub modyfikować już istniejące
- potrafili uruchomić na klastrze i szybko skalować skonteneryzowane aplikacje na wielu węzłach
- potrafili odseparować aplikacje w ramach oddzielnych środowisk
- potrafili w natywny i efektywny sposób konfigurować aplikacje działające na klastrze
- potrafili zidentyfikować działające na klastrze aplikacje oraz zdiagnozować podstawowe problemy
- potrafili użyć odpowiedniego typu usługi (Service) do ustawienia komunikacji między aplikacjami wewnątrz klastra oraz wystawić je dla klientów spoza
- potrafili wykorzystać mechanizm Ingress do wystawiania aplikacji wielomodułowej pod jednym punktem dostępu z różnymi kontekstami
- rozumieli system zarządzania wolumenami i potrafili przechowywać dane aplikacji na zewnętrznej przestrzeni dyskowej dla aplikacji stanowych (tzw. Stateless)
- potrafili wdrażać aplikacje w stylu rolling-update, wycofywać je (rollbacks) oraz kontrolować
- potrafili wdrożyć aplikacje dostępne jako paczki Helm Charts (np. bazy danych) jako usługi gotowe do użycia na klastrze
Program
Dzień 1
- Czym są kontenery i co je wyróżnia
- Uruchamianie kontenerów z gotowych obrazów
- Budowanie obrazów kontenerów z wykorzystaniem najlepszych praktyk
- Publikacja obrazów w zdalnych rejestrach i zarządzanie wersjami
- Dostarczanie konfiguracji dla skonteneryzowanych aplikacji
- Uruchamianie aplikacji złożonych z wielu kontenerów
Dzień 2
- Uruchamianie kontenerów z gotowych obrazów
- Budowanie obrazów kontenerów z wykorzystaniem najlepszych praktyk
- Architektura klastra i podstawy działania Kubernetes
- Obiekty, instancje i grupy API
- Uruchamianie lokalnego klastra Kubernetes
- Konfiguracja i obsługa narzędzia kubectl do zarządzania klastrem
- Zarządzanie środowiskiem dla wielu projektów (namespaces)
- Zarządzanie obiektami w Kubernetes
- Kontener a Pod i jego możliwości
- Skalowanie skonteneryzowanych aplikacji
Dzień 3
- Podłączanie się i korzystanie ze zdalnych klastrów
- Wykorzystanie obiektów
namespace
do izolacji środowisk - Zapisywanie danych na trwałych wolumenach (persistent storage)
- Podstawowe zarządzanie logami i monitoring skonteneryzowanych aplikacji
- Komunikacja wewnątrz klastra z użyciem obiektu Service
- Wystawianie usług na zewnątrz z wykorzystaniem Ingress
- Zarządzanie wdrażaniem aplikacji z poziomu kodu (Deployment) i gotowych paczek Helm