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