1
Vývoj / Zkušenosti s cloudem a Kubernetes
« kdy: 01. 06. 2020, 10:33:26 »
Jaké jsou vaše zkušenosti s kubernetes? Přesunul jsem během posledního půl roku několik aplikací do různých cloudů (AWS EKS, DigitalOcean K8) a... mám z toho takové rozporuplné pocity.
Plusy:
Ale...
Můj pocit: deployment aplikací - super. Spolehlivost, schopnost dohledat problém - strašné. Když něco nefunguje, tak je to na dlouho. Jaké jsou vaše zkušenosti?
Plusy:
- Opravdu funkční CI/CD od začátku do konce, to je moc fajn
- Odpadá problém s udržováním serverů, kompatibility knihoven/balíčků atd.
- Snadné vytvoření testovacího prostředí
- Ingress + letsencrypt.... moc příjemná kombinace
Ale...
- (nesouvisí s K8) - o365 SMTP servery jsou nespolehlivé; takže musím implementovat vlastní frontu odesílání zpráv (původně jsem to dával MTA lokálně)... ale to je asi obecně vlastnost cloudu - develop for failure
- Navzdory tomu, že se jedná o pár malých aplikací, tak musím nainstalovat všechny možné i nemožné nástroje pro monitoring, které najdu. Což znamená rozchodit si vedle elastic, kibanu, prometheus, filebeat na nodech, posílání kubernetes eventů (!!!!!! - jak je možné, že tohle K8 není schopno vůbec logovat standardně?) abych vůbec tušil, co se tam děje. V podstatě kvůli malému prostředí musím instalovat enterprise log management. Ne, že by to nebylo "dobré", ale normálně to bez toho jde. V K8 to bez toho vůbec nejde.
- Neschopnost reportovat pád Cron úlohy. Existuje možnost to napsat do pravidel promethea (- který mám nainstalovaný integrací z gitlabu, takže to nejde customizovat..?), která je hodně přes ruku. Ale teď jsem rozchodil stahování eventů, možná to půjde vytáhnout z toho. V každém případě - tohle je šílené.
- Vypnutý swap. V jednom případě mi několik let běžely 4 aplikace na jednom t2.micro (1GB paměti), HAProxy na t2.nano (512MB). Prakticky bez výpadku. Totéž mi teď běží na 3-nodovém K8 clusteru (3x2GB), a už jsem několikrát narazil na OOM, která pozabíjí půlku prostředí. Smutné je, že jsem to zatím nebyl schopen dohledat....
- Žádný fencing ve standardní instalaci. Pro jednoduchost jsem si rozeběhl Postgres v K8. Bohužel nějak došlo k panicu cilia, což odřezalo node od sítě. Databáze (StatefulSet) běžela na tomto nodu - a konec. Všechno dole. Pokud by byl nakonfigurovaný Fencing, tak stačilo ten izolovaný node vypnout/rebootovat a bylo by to v pohodě. Fencing/STONITH je naprosto základní součástí jakéhokoliv clusterovacího řešení za posledních 20 let... to, že to součástí K8 není (někdo si dal práci a udělal na to projekt, ale myslím, že tam nemá Cloud služby) na mě vrhá dojem, že ta technologie je hlavně "cool"
Můj pocit: deployment aplikací - super. Spolehlivost, schopnost dohledat problém - strašné. Když něco nefunguje, tak je to na dlouho. Jaké jsou vaše zkušenosti?