Kurzy a certifikace Open Source
Provoz Kubernetes - infrastruktura, build a nasazení
Cena (bez DPH)
Kubernetes se během několika let vyvinul v komplexní řešení pro orchestraci kontejnerů s nepřeberným množstvím integračních postupů. Nicméně, stále se nejedná o platformu, která je připravená pro přímé uživatelské použití a vyžaduje znalosti celého systému. Školení se zaměřuje na provoz Kubernetes platformy - od instalace clusteru přes build a nasazení aplikací až po monitoring, logování a zálohování. V neposlední řadě je kladen důraz na zabezpečení clusteru.
Lektor kurzu

Tomáš se věnuje Kubernetes od doby kdy ke spuštění kontejnerů byl potřeba jeřáb a deployment v Normandii neznamenal spustit kontejnery na severu Francie. Postupně se bavil provozováním Cephu pro/v Kubernetes na ČVUT FIT, OpenStacku v Kubernetes (a obráceně) pro Mirantis.
Více o lektorovi
Potom si rozsypal po světě několik tisíc clusterů a vyráběl systém pro jejich deployment a řízení v F5/Volterra. Nyní pomáhá matematikům uklízet kontejnery v Second Foundation. Neustále balancuje mezi programováním, architekturou a DevOps světem, takže ve volném čase chytá rovnováhu, psy, vítr, snaží se odletět daleko a nakonec bezpečně přistát.
Cílová skupina
- Vývojáři aplikací
- Cloud Platform Engineer
- Projektanti IT systémů
Cíle kurzu
Školení je postaveno jako deep dive kurz, kde jsou vyžadovány předchozí zkušenosti s touto technologií. Zaměříme se na instalaci a návrh clusteru, nasazování aplikací pomocí GitOps, build a podepisování imagů, logování, monitoring, zálohování a zabezpečení clusteru. Většina témat je demonstrována na živém prostředí a každý účastník dostane příležitost vyzkoušet si příklady na vyhrazeném clusteru.
Hloubka jednotlivých témat bude přizpůsobena znalostem a požadavkům účastníků.
Osnova
Kubernetes cluster
- Instalace Kubernetes clusteru - container runtime, certifikáty, control plane, CNI, CSI
- Kubernetes komponenty (etcd, apiserver, scheduler, controller-manager, proxy, kubelet)
- Instalace HA clusteru pomocí kubeadm
- Managed Kubernetes v public cloudu - na co se ptát
- Kubernetes on-prem - storage, overlay vs. routovaná síť, HA architektura
- Terraform vs. nativní nástroje
Nasazení aplikací
- Použití CRD
- Kustomize
- FluxCD
- ArgoCD - komponenty, konfigurace, deklarativní nastavení, app of apps, ApplicationSet generátory
- Argo Workflows a Argo Events
- Porovnání nástrojů pro nasazení
Security
- Bezpečnost infrastruktury, clusteru, kontejnerů a aplikací
- Skenování zranitelností imagů (Trivy)
- Šifrování Kubernetes objektů v etcd
- Kubernetes audit
- Autentizace a autorizace pro aplikace v clusteru
- RBAC - pravidla a best practices
- Policy pomocí Gatekeeper (OPA)
Síťování
- CNI - síť v Kubernetes
- Cilium - Hubble, WireGuard šifrování
- Odposlech a debugging provozu podů
- Ingress - Traefik
- Network policies
- Best practices pro nastavení clusteru
Logování
- Sběr logů z kontejnerů, nodů a control plane komponent
- Loki - architektura, Promtail, labely
- Čtení logů ze systemd
- Analýza logů z kontejnerů a infrastruktury
- Best practices pro logování
Monitoring
- Prometheus federace
- Grafana - dashboardy pro Kubernetes a Loki
- Alertmanager - routes, receivers, inhibit rules, silences
- Node-exporter, Blackbox-exporter, Kube-state-metrics
- Správa alertů pomocí Karma
- Přehled o využití prostředků kontejnery
Build
- Build imagů ze zdrojového kódu (Podman, Buildah)
- Úložiště pro kontejnerové image (registry)
- Podepisování a ověřování imagů (cosign)
Zálohování
- Obnova konfigurace clusteru
- Disaster recovery a přesun aplikací mezi clustery (Velero)
- Zálohy aplikací mimo cluster
- Zálohování etcd
Certifikáty
- Certifikáty pro control plane a nody
- Rotace certifikátů pro Kubelet
- Rotace CA certifikátu
- Podepisování certifikátů v Kubernetes (CSR)
Multicluster
- Komunikace mezi clustery
Předpoklady na účastníka
- Základní kurz Kubernetes
- Základní terminologie a architektura Kubernetes (pod, svc, deployment, ...)
- Základy síťování (IP adresa, subnet)
- Použití terminálu pro spuštění příkazů
- Práce s Gitem
Požadavek na BYOD
- Libovolný operační systém schopný spustit kubectl
- SSH klient
- Webový prohlížeč