Hlavní navigace

Střípky z virtuální konference KubeCon a CloudNativeCon (den první)

18. 8. 2020
Doba čtení: 9 minut

Sdílet

 Autor: KubeCon
Včera nastal dlouho očekávaný (a taktéž odkládaný) den – začala konference KubeCon a CloudNativeCon 2020. Původně se mělo jednat o klasickou konferenci, ovšem kvůli omezením způsobeným koronavirem se nakonec konference pořádá virtuálně.

Obsah

1. Střípky z virtuální konference KubeCon a CloudNativeCon (den první)

2. Témata, kterými se přednášející zabývají

3. Formát virtuální konference

4. Vybrané přednášky z prvního dne

5. From Minikube to Production, Never Miss a Step in Getting Your K8s Ready

6. Help! My Cluster Is On The Internet: Container Security Fundamentals

7. Welcome to CloudLand! An Illustrated Intro to the Cloud Native Landscape

8. Tutorial: Using BPF in Cloud Native environments

9. Panel: Ask me anything about service mesh

10. Vybrané přednášky na zítřek

11. Odkazy na Internetu

1. Střípky z virtuální konference KubeCon a CloudNativeCon (den první)

Konference s plným názvem KubeCon + CloudNativeCon Europe 2020 se původně měla konat již na přelomu března a dubna, a to v Amsterdamu. Ovšem právě v té době se začal mj. i v Evropě rozšiřovat koronavirus, takže nakonec došlo k přesunu termínu konference až na tento týden (17.8 až 20.8) a konference se stala plně virtualizovanou. To lze považovat jak za výhodu, tak i za nevýhodu. Výhodou jsou značné změny v ceníku. Původně stál vstup cca 900 až 1250 euro (v závislosti na době objednání atd.), bez letenky a ubytování. Cena virtuální konference se snížila velmi markantně na několik set Kč (v přepočtu), což pravděpodobně umožnilo, že se nakonec přihlásilo mnohem větší množství lidí (píše se až o 20000 účastnících!). Na druhou stranu se pochopitelně ztratilo kouzlo konferencí umožňující mj. získat užitečné profesní kontakty.

Obrázek 1: Vstupní hala do virtuální konference.

Důležitý je samozřejmě především obsah konference, kterému se budeme věnovat v dalších kapitolách, ale protože se nacházíme na technologickém serveru, zmíním se v krátkosti o technologickém zabezpečení. Tvoří ho webová aplikace s virtuální konferenční budovou, odkazem na sponzory atd. a s rozpisem přednášek a panelových diskuzí. Přednášky jsou řešeny video streamem (pracuje i pro více přednášejících, například u panelových diskusí) doplněným o slajdy, možnost položení dotazů atd. Vše pracuje bez problémů i v Linuxu s poměrně specifickou konfigurací grafického uživatelského rozhraní (to by sice mělo být u webových aplikací naprostou samozřejmostí, ovšem v praxi tomu tak vždy nemusí být – nějaké více či méně závažné problémy se v mém případě vyskytují u většiny aplikací pro videokonference). Pro komunikaci se používá Slack.

Obrázek 2: Stánky sponzorů.

Samotná aplikace pro prezentaci přednášek je pojata poměrně minimalisticky (viz dále přiložené screenshoty), ovšem nalezneme zde prakticky všechny důležité prvky. Prozatím jsem navštívil přibližně pět hodin přednášek a za tu dobu došlo ke třem výpadkům, každý přibližně na deset sekund, což není při uvažovaném počtu 20000 účastníků nijak kritické – spíše naopak, když si uvědomíme, že na běžné konferenci se například řeší připojení notebooků a problémy s videem obecně.

Poznámka: konference se sice virtuálně koná v Amsterdamu, takže časy jsou uvedeny v CEST, ovšem kvůli ohledu na účastníky z USA a Kanady jsou přednášky posunuty tak, aby začínaly až odpoledne, takže výsledkem je kompromis dobrý pro obě strany Atlantiku (ovšem jedna z přednášejících pochází z Tokia).

Obrázek 3: Pro komunikaci se používá Slack.

2. Témata, kterými se přednášející zabývají

Již „Kube“ v názvu konference dosti přesně naznačuje, že poměrně velká část přednášek je zaměřena na Kubernetes, popř. na technologie, které na Kubernetes navazují. „CloudNative“ je naproti tomu mnohem širší termín, který zahrnuje produkty a technologie, které jsou zmíněny na https://landscape.cncf.io/. Jedná se jak o již zmíněné Kubernetes, tak i o Prometheus, Jaeger (trasování), NATS (streamovací platforma), Helm, Rook, etcd (této databázi bude věnován samostatný článek), Envoy, Fluentd, Argo, Falso, Dragonfly atd. Témata většiny přednášek jsou zaměřena na praktické nasazování služeb a mikroslužeb, jejich správu, zajištění bezpečnosti, jejich monitoring atd. Jen zlomek přednášek je pak zaměřen na vývojáře (což je ovšem s ohledem na hlavní téma konference pochopitelné).

Obrázek 4: Rozhraní webové aplikace pro prezentaci přednášek. Zde je ukázáno, že kromě slajdů je možné zobrazit i větší množství přednášejících.

3. Formát virtuální konference

Přednášky a panelové diskuse jsou rozděleny podle témat a vždy jich několik běží paralelně (kromě keynotes). To na jednu stranu znamená, že se účastníci nebudou nudit – vždy si vyberou zajímavé téma – ale na stranu druhou nejde stihnout vše. To však nemusí příliš vadit, protože přednášky budou umístěny na https://www.youtube.com/ (až se tak stane, budeme čtenáře informovat ve zprávičce). Nyní slibovaná témata:

  1. 101 Track
  2. Application + Development
  3. Case Studies
  4. CI/CD
  5. Community
  6. Customizing + Extending Kubernetes
  7. Experiences
  8. Keynotes
  9. Lightning Talks
  10. Machine Learning + Data
  11. Maintainer Track
  12. Networking
  13. Observability
  14. Operations
  15. Performance
  16. Runtimes
  17. Security + Identity + Policy
  18. Serverless
  19. Service Mesh
  20. Storage
  21. Tutorials

4. Vybrané přednášky z prvního dne

V navazujících kapitolách se pokusím shrnout obsah vybraných přednášek, které proběhly v úvodní den konference. Přednášky jsou zapsány podle času, kdy byly prezentovány, ovšem pokud s Kubernetes nebo nasazováním aplikací v cloudu teprve začínáte, je nejlepší si počkat na zveřejnění videa z přednášky Welcome to CloudLand! An Illustrated Intro to the Cloud Native Landscape s úvodními informacemi „o čem to celé je“.

Obrázek 5: Přednášky a panelové diskuse, které chcete vidět, je možné vložit do vlastního plánovače a poté do kalendáře (resp. vámi používané kalendářové aplikace).

5. From Minikube to Production, Never Miss a Step in Getting Your K8s Ready

V první zajímavé přednášce s názvem „From Minikube to Production, Never Miss a Step in Getting Your K8s Ready“ se její autoři snaží o doplnění informací, které lze získat z běžných tutoriálů, o informace nutné k úspěšnému produkčnímu nasazení služeb a mikroslužeb. V přednášce zmiňují mnohé užitečné postřehy z praxe a přidávají, že Kubernetes je sice velmi elegantní technologie (mj. i díky několika vrstvám abstrakce), ovšem v případě problémů je nutné znát i interní mechanismy, které Kubernetes používá. V přednášce se věnují problematice storage (a vůbec toho, jak se se stavem v Kubernetes pracuje), s nastavením databáze etcd, autoři se zmiňují i o bezpečnosti, tedy jak povolit základní bezpečnostní mechanismy („Kubernetes je lákavý cíl pro útoky“ – zmiňují mj. i útok na Teslu přes cluster hacknutý právě přes Kubernetes API), použitím rolí, modulární architektury atd.

Obrázek 6: Slajdy z přednášky.

Obrázek 7: Slajdy z přednášky.

6. Help! My Cluster Is On The Internet: Container Security Fundamentals

Další přednáška, která dnes byla prezentována, se jmenuje „Help! My Cluster Is On The Internet: Container Security Fundamentals“. A název této přednášky je dosti přiléhavý, protože jsou v ní zmíněna pravidla, která je vhodné při nasazování aplikací dodržovat. Některá pravidla a doporučení sice mohou znít dosti přízemně (to přece „každý ví“), ovšem – alespoň podle tvrzení autorů – nejsou vždy dodržována, což samozřejmě může vést k potenciálně značným problémům. Autor kromě jiného zmiňují i použití základních obrazů distroless, které neobsahují plnohodnotný operační systém s mnoha potencionálními cíli útoku (SSH atd.). Zmiňuje rozpor mezi použitím základního obrazu s operačním systémem (řekněme Alpine Linuxu) s mnoha užitečnými nástroji a distroless obrazu vhodného například pouze pro spuštění nativní aplikace přeložené z programovacího jazyka Go.

Obrázek 8: CVE, které se vztahují přímo ke Kubernetes a tudíž mohou ovlivnit bezpečnost clusterů.

Dále autor upozorňuje, že CI/CD musí být nastaveno tak, aby dokázalo bez problémů nasadit aplikaci s novými obrazy (což znamená, že se DevOps nebudou této operace obávat), že se nemá používat hostPath (připojené přes volbu volumes/hostPath) ani hostNetwork (kontejner přistupuje ke zdrojům uzlu, zde konkrétně k síti, tedy může použít i ssh atd.). Navrhuje taktéž oddělení clusteru od Internetu, například přes VPN, použití Secrets, použití RBAC a skupin (Groups) a zejména způsobům mapování rolí a skupin („co když někdo odejde?, nebo změní tým?, popř. jen změní roli v týmu“).

Obrázek 9: Úvodní slajd této přednášky.

Obrázek 10: Další slajd této přednášky (mimochodem si povšimněte, jak je umístění slajdů a videa variabilní).

7. Welcome to CloudLand! An Illustrated Intro to the Cloud Native Landscape

Nosným tématem této přednášky je věta „Tell me about Cloud Native!“ Jedná se tedy o úvodní přednášku vysvětlující základní termíny z oblasti, kterou dnes poněkud nepřesně nazýváme „Cloud Native“. Autorka nejdříve vysvětluje, z jakého důvodu vlastně cloud vznikl a jaké výhody může přinášet (nevýhody nejsou zmíněny :-), rozdíl mezi virtuálním strojem a kontejnerem atd. Následuje příklad architektury aplikace postavené na mikroslužbách a následuje demo jednoduché aplikace představující butik (demo obsahuje backend i frontend).

Obrázek 11: Serverovna na úvodním slajdu přednášky.

V přednášce jsou vysvětleny i další termíny, samozřejmě orchestrace (když se jedná o přednášku na KubeConu), logingu, tracingu, co znamená function as a service, infrastructure as code (což je pro neznalé asi nejvíce zavádějící název), service mesh atd.

Obrázek 12: Live demo nemusí vždy dopadnout dobře.

Obrázek 13: Backend už není tak jednoduchý, jak býval :-)

8. Tutorial: Using BPF in Cloud Native environments

Přednáška nebo spíše workshop „Using BPF in Cloud Native environments“ byl věnován použití technologie BPF (Berkeley Packet Filter) v prostředí Kubernetes, zejména ve chvíli, kdy nástroje dostupné v Kubernetes nedávají dostatečně podrobné odpovědi v případě hledání problémů (pomalé čtení, ztráta paketů atd.). Autor ukazoval, jak je možné použít již připravené nástroje k řešení některých specifických problémů, které mohou v cloudu nastat. Jedná se například o nástroj kubeclt-trace založený na bpftrace

Poznámka: materiály k tomuto tématu jsou dostupné na adrese https://github.com/kinvolk/cloud-native-bpf-workshop. Téma BPF a bpftrace bylo, i když ve stručnosti, probráno i na LinuxDays (https://github.com/tisnik/pre­sentations/tree/master/li­nuxdays2019/tracing).

Obrázek 14: Live demo.

9. Panel: Ask me anything about service mesh

Poslední prezentace nebyla běžnou přednáškou ale panelovou diskusí, v níž čtyři pozvaní odborníci debatovali na téma „service mesh“. Na rozdíl od některých jiných panelových diskusí zde byla zachována struktura otázka-odpovědi (postupně se vytvářel slajd s otázkami). Zajímavá byla informace o tom, že mnoho společností vytvořilo či zakoupilo řešení, které se podobá service mesh, ovšem jedná se mnohdy o řešení, která dobře neškálují (či neškálují vůbec), mohou být dosti problematická z hlediska bezpečnosti a velmi komplikovaná na údržbu. Bohužel nebylo možné toho zajímavé téma v naplánovaném čase celé dokončit.

Root tip

Obrázek 15: Panelová diskuse je webovou aplikací plně podporována.

Poznámka: service mesh se budeme podrobněji zabývat v samostatném článku.

10. Vybrané přednášky na zítřek

První den konference byl spíše zahřívací a pomalejší, ovšem v úterý (tedy v den, kdy by měl vyjít tento článek) můžeme čekat velmi zajímavé přednášky a panelové diskuse, například:

  1. Elephant on Wheels: Petabyte-scale AI @ LinkedIn
  2. Prometheus Introduction
  3. 34 Truths We Learned About Kubernetes and Edge
  4. Go? Bash! Meet the Shell-operator
  5. CNCF Research User Group
  6. Cloud Native Policy Deep Dive

11. Odkazy na Internetu

  1. Stránka s informacemi o KubeConu a CloudNativeConu 2020
    https://events.linuxfounda­tion.org/kubecon-cloudnativecon-europe/
  2. Kubernetes
    https://kubernetes.io/
  3. Kubernetes na Wikipedii
    https://en.wikipedia.org/wi­ki/Kubernetes
  4. Kubecon – seznam konferencí atd.
    https://www.cncf.io/community/kubecon-cloudnativecon-events/
  5. Cloud Native Computing Foundation (CNCF) GitHub repositáře
    https://github.com/cncf
  6. CVEs: Kubernetes/Kubernetes: Vulnerability Statistics
    https://www.cvedetails.com/pro­duct/34016/Kubernetes-Kubernetes.html?vendor_id=15867
  7. Cloud Native BPF Workshop (repo)
    https://github.com/kinvolk/cloud-native-bpf-workshop
  8. Cloud Native BPF Workshop (slajdy)
    https://github.com/kinvolk/cloud-native-bpf-workshop/blob/master/slides.pdf
  9. OpenShift
    https://www.openshift.com/
  10. openSUSE Kubic
    https://kubic.opensuse.org/
  11. OpenShift na Wikipedii
    https://en.wikipedia.org/wi­ki/OpenShift
  12. Kubernetes na stránkách SUSE
    https://www.suse.com/solu­tions/kubernetes/
  13. What is Kubernetes?
    https://kubernetes.io/doc­s/concepts/overview/what-is-kubernetes/
  14. Berkeley Packet Filter
    https://en.wikipedia.org/wi­ki/Berkeley_Packet_Filter
  15. Trasování v Linuxu (slajdy)
    https://github.com/tisnik/pre­sentations/blob/master/li­nuxdays2019/tracing/linux_tra­cing.pdf
  16. Cloud Native Landscape
    https://github.com/cncf/landscape
  17. CNCF TrailMap
    https://raw.githubusercon­tent.com/cncf/trailmap/mas­ter/CNCF_TrailMap_latest.png
  18. CNCF Cloud Native Interactive Landscape
    https://landscape.cncf.io/

Autor článku

Pavel Tišnovský vystudoval VUT FIT a v současné době pracuje ve společnosti Red Hat, kde vyvíjí nástroje pro OpenShift.io.