Návrh Školení
Den 1 – Kontejnery a správa obrazů
Úvod do platform kontejnerů
- Srovnání tradičního nasazování aplikací s nasazováním založeným na kontejnerech
- Kontejnery a virtualizace
- Kontejnerové runtime a kontejnerové enginy
- Role Dockeru, Kubernetesu a OpenShifu
- Běžné architektury platform kontejnerů
- Postupy vývoje, testování a produkce
Práce s kontejnery
- Spuštění a správa kontejnerů
- Životní cyklus kontejneru
- Spouštění, zastavování a odstraňování kontejnerů
- Spouštění příkazů uvnitř kontejnerů
- Prostředové proměnné
- Mapování portů
- Logy kontejnerů
- Využívání zdrojů a zkoumání procesů
Stavba obrazů kontejnerů
- Struktura obrazů a vrstvy
- Vytváření Dockerfile a Containerfile
- Výběr základních obrazů
- Přidávání závislostí aplikací
- Konfigurace vstupních bodů (entry points) a příkazů
- Cache obrazů
- Snížení velikosti obrazů
- Stavba reprodukovatelných obrazů
Registry kontejnerů
- Veřejné a soukromé registry
- Označování (tagging) a verzování obrazů
- Odesílání a stažení (push/pull) obrazů
- Autenticace obrazů
- Retence a úklid obrazů
- Základní aspekty bezpečnosti obrazů
Síťování a úložiště kontejnerů
- Koncepty sítě kontejnerů
- Bridge síťování
- Publikování portů
- Komunikace mezi kontejnery
- Bind mounts a svazky (volumes)
- Perzistentní data kontejnerů
- Úvahy ohledně zálohování
Praktická cvičení
- Spuštění a zkoumání kontejnerů
- Vytvoření obrazu aplikace
- Konfigurace portů a prostředových proměnných
- Publikování obrazu do registru
- Uložení perzistentních dat mimo kontejner
Den 2 – Architektura Kubernetesu a workloady
Základy Kubernetesu
- Účel orchestrace kontejnerů
- Architektura Kubernetesu
- Komponenty ovládací roviny (control plane)
- Pracovní uzly (worker nodes)
- API server
- Scheduler
- Manageři (controllers)
- Stav klastru a cílový stav
- Komunikace s klastr pomocí kubectl
Zdroje Kubernetes
- Pods
- ReplicaSets
- Deployments
- Namespaces
- Popisky (labels) a anotace
- Selektory
- Deklarativní definice zdrojů
- YAML manifesty
Nasazování aplikací
- Vytváření a správa Deploymentů
- Škálování workloadů
- Aktualizace obrazů kontejnerů
- Plynulé aktualizace (rolling updates)
- Vracení zpět (rollbacks)
- Historie nasazení
- Restartování workloadů
- Správa replik aplikací
Konfigurace aplikací
- ConfigMaps
- Secrets
- Prostředové proměnné
- Konfigurační soubory
- Oddělení kódu aplikace od konfigurace
- Správa nastavení specifických pro prostředí
Správa zdrojů
- Žádosti o CPU a paměť
- Limity CPU a paměti
- Kvóty zdrojů
- Omezující rozsahy (limit ranges)
- Dopad na plánování (scheduling)
- Diagnostika selhání souvisejících se zdroji
Praktická cvičení
- Nasazení kontejnerizované aplikace
- Vytvoření a aktualizace manifestů Kubernetes
- Škálování aplikace
- Provedení plynulé aktualizace a rollbacku
- Konfigurace aplikace pomocí ConfigMapů a Secretů
- Aplikace požadavků a limitů zdrojů
Den 3 – Síťování, úložiště a bezpečnost v Kubernetesu
Síťování v Kubernetesu
- Model sítě klastru
- Komunikace mezi pods
- Objev služeb (service discovery)
- DNS uvnitř klastru
- Služby ClusterIP
- Služby NodePort
- Služby LoadBalancer
- Koncepty ingress
- Vzorce vystavení aplikací
Síťové politiky
- Ovládání provozu mezi workloady
- Pravidla pro příchozí a odchozí provoz (ingress/egress)
- Kontrola provozu na základě namespace
- Testování síťové konektivity
- Odstraňování problémů s komunikací služeb
Perzistentní úložiště
- Dočasné a perzistentní úložiště
- Objemy (volumes)
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamické zprovisionování
- Přístupové režimy
- Strategie zpětného získání (reclaim policies)
- Úložiště pro aplikace se stavem (stateful)
Kontrola přístupu v Kubernetesu
- Koncepty autenticace a autorizace
- Kontrola přístupu na základě rolí (RBAC)
- Role a ClusterRoles
- RoleBindings a ClusterRoleBindings
- Service účty
- Přístup na nejmenší nezbytné právo (least-privilege)
- Zkoumání účinných oprávnění
Bezpečnost workloadů
- Bezpečnostní kontexty (security contexts)
- Spouštění kontejnerů jako nenewroot uživatel
- Schopnosti Linuxu (capabilities)
- Read-only souborové systémy
- Práce s tajnými údaji (secrets)
- Původ obrazů (image provenance)
- Obecná rizika konfigurace
Praktická cvičení
- Vystavení aplikace pomocí služeb Kubernetes
- Konfigurace ingress
- Obmezení provozu pomocí síťové politiky
- Zprovisionování perzistentního úložiště
- Konfigurace oprávnění RBAC
- Spouštění workloadu s vhodným bezpečnostním kontextem
Den 4 – Práce s prostředím OpenShift
Úvod do OpenShiftu
- OpenShift jako aplikační platforma založená na Kubernetesu
- Zdroje Kubernetes v prostředí OpenShift
- Architektura klastru OpenShift
- Projekty a namespace
- Uživatelé platformy a service účty
- Práce s webovou konzolí
- Práce s CLI OpenShift
Správa projektů a přístupu
- Vytváření a správa projektů
- Přiřazování oprávnění uživatelů
- Role na úrovni projektu
- Administrační přístup
- Kvóty zdrojů
- Omezující rozsahy (limit ranges)
- Service účty
- Přezkum zdrojů projektu
Nasazování aplikací
- Nasazování obrazů kontejnerů
- Vytváření aplikačních workloadů
- Správa nasazení (deployments)
- Škálování aplikací
- Aktualizace verzí aplikací
- Rollbacks
- Správa konfigurace aplikací
- Práce s tajnými údaji (secrets)
Vystavení aplikací
- Služby v OpenShiftu
- Trasy (routes)
- Koncepty TLS
- Vnitřní a vnější přístup k aplikacím
- Názvy hostitelů a certifikáty
- Diagnostika problémů s trasami a službami
Úložiště v OpenShiftu
- Objemové nároky (Persistent Volume Claims)
- StorageClasses
- Připojení úložiště k workloadům
- Stateful workloady
- Práva přístupu k úložišti
- Odstraňování problémů s připojením objemů
Plánování a správa uzlů
- Popisky a selektory
- Selektory uzlů (node selectors)
- Štítky a tolerance (taints and tolerations)
- Koncepce afinity a anti-afinity
- Umístění workloadů
- Omezení (cordon) a vyprazdňování (drain) uzlů
- Úvahy ohledně údržby uzlů
Praktická cvičení
- Přístup do prostředí OpenShift
- Vytvoření a konfigurace projektu
- Nasazení a vystavení aplikace
- Konfigurace přístupu uživatelů a service účtů
- Připojení perzistentního úložiště
- Škálování a aktualizace běžícího workloadu
Den 5 – Provoz, monitorování a odstraňování chyb
Monitorování platformy
- Monitorování zdraví klastru a aplikací
- Metricí zdrojů
- Zdraví uzlů
- Stav workloadů
- Kapacita a využití zdrojů
- Identifikace výkonových omezení
Logování a události
- Logy kontejnerů
- Logy pods
- Logy předchozích kontejnerů
- Události Kubernetes
- Zprávy aplikací a platformy
- Filtrování a interpretace operačních dat
Zdravotní kontroly (Health Checks)
- Startup probes
- Readiness probes
- Liveness probes
- Navrhování užitečných zdravotních koncových bodů (endpoints)
- Diagnostika selhání probe
- Předcházení zbytečným restartům aplikací
Odstraňování chyb workloadů
- Pods ve stavu Pending
- Selhání stažení obrazu
- Smrtící smyčky (crash loops)
- Nezpracované prostředové proměnné
- Neúspěšné připojení objemů
- Nedostatek zdrojů
- Chyby oprávnění
- Problémy s konektivitou služeb a tras
- Problémy s DNS
- Selhání spuštění aplikace
Operační bezpečnost
- Revizí oprávnění
- Používání service účtů
- Bezpečné nakládání s odhlásovacími údaji (credentials)
- Praktiky bezpečnosti obrazů
- Síťová izolace
- Audit přístupu k platformě
- Aplikace principu minimálního privilegia
Údržba a správa životního cyklu
- Rutinní kontroly platformy
- Údržba uzlů
- Úvahy ohledně zálohování aplikací
- Zálohování konfigurace
- Plánování aktualizací
- Správa změn
- Testování aktualizací
- Plánování rollbacků
- Koncepce zotavení z havárie
Závěrečný praktický workshop
Účastníci dokončí end-to-end operační scénář:
- Sestavení a označení (tagging) obrazu kontejneru.
- Publikování obrazu do registru.
- Nasazení aplikace do Kubernetesu nebo OpenShiftu.
- Konfigurace nastavení aplikace a odhlásovacích údajů.
- Vystavení aplikace.
- Připojení perzistentního úložiště.
- Konfigurace oprávnění přístupu.
- Přidání zdravotních kontrol.
- Škálování a aktualizace aplikace.
- Diagnostika a vyřešení zavedeného selhání.
Formát kurzu
- Interaktivní přednášky a technické diskuse.
- Demonstrace lektorem.
- Rozsáhlá praktická cvičení.
- Workshopy administrace a odstraňování chyb založené na scénářích.
- Praktická práce v prostředí kontejnerů, Kubernetesu a OpenShiftu.
Možnosti úpravy kurzu
- Kurz lze přizpůsobit stávající infrastruktuře, poskytovateli cloudu a nástrojům kontejnerů účastníků.
- Výraznost témat Docker, Kubernetes a OpenShift lze upravit podle zkušeností týmu.
- Praktická cvičení lze přizpůsobit aplikacím, procesům nasazování a operačním požadavkům organizace.
Upozornění na ochrannou známku
OpenShift je ochranná známka společnosti Red Hat, Inc. Toto nezávisle vyvinuté školení není spojeno, schváleno ani autorizováno společností Red Hat.
Požadavky
Účastníci by měli mít:
- Zkušenosti s používáním Linuxového příkazového řádku.
- Základní znalosti správy systémů nebo DevOps.
- Obecné pochopení síťových konceptů.
- Znalost procesů nasazování softwaru.
Předchozí zkušenosti s Dockerem, Kubernetesem nebo OpenShiftem jsou vítané, ale nejsou povinné.
Reference (7)
Reda vysvětlil a zjednodušil mnoho pojmů.
Eric Van Wyk
Kurz - Docker, Kubernetes and OpenShift 3 for Administrators
Přeloženo strojem
Laboratoře byly nejlepší. Byly velmi praktické a poskytly přímočaré zkušenosti. Osobně si myslím, že je to nejefektivnější způsob, jak skutečně pochopit kurz a aplikovat koncepty, které byly probrané.
Hishaam Johnstone
Kurz - Docker, Kubernetes and OpenShift 3 for Administrators
Přeloženo strojem
Oceňuji ochotu pomoci a dále vysvětlit, když nebyla jistota
Letlotlo Miffi
Kurz - Docker, Kubernetes and OpenShift 3 for Administrators
Přeloženo strojem
Adriano předmět velmi důkladně studoval, což je styl, který preferuji nejvíc, tedy méně o příkazech a více o mechanismech za nimi. Provedené scénáře byly dobře podpořeny praktickými příklady, což pomohlo hodně k pochopení prezentovaného materiálu.
Mariusz BANASZCZYK - Sopra Steria
Kurz - Docker, Kubernetes and OpenShift for Administrators
Přeloženo strojem
Profound knowledge of Adriano. Explanation of basic concepts
Tomasz Szalankiewicz - LPP SA
Kurz - Docker, Kubernetes and OpenShift for Administrators
Přeloženo strojem
Obecně se mi přednášející líbil.
Josif Kovacevic - ANZ
Kurz - Docker, Kubernetes and OpenShift for Administrators
Přeloženo strojem
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Kurz - Docker, Kubernetes and OpenShift for Administrators
Přeloženo strojem