Tento článek představuje výběr výjimečných nástrojů, které lze efektivně integrovat s Kubernetes, čímž se znásobí jeho možnosti a výkon.
V prostředí DevOps je klíčové mít k dispozici spolehlivé nástroje, které minimalizují manuální úkony. Pro každou fázi DevOps a pro různé funkční oblasti existuje široká škála specializovaných nástrojů.
Kubernetes se stal základním kamenem pro nasazování aplikací v kontejnerech. Existuje mnoho nástrojů, které rozšiřují jeho funkčnost a poskytují lepší správu, zabezpečení, monitorování a celkový přehled o clusteru.
Následuje přehled užitečných nástrojů, které pomáhají posílit výkon vašeho Kubernetes.
Pojďme se na ně podívat!
Helm
Helm je správce balíčků pro Kubernetes, který výrazně zjednodušuje používání aplikací a služeb. Ty se dají opakovaně nasazovat v různých scénářích do standardního clusteru Kubernetes. S pomocí Helmu je možné snadno vyhledávat, sdílet a používat software navržený pro Kubernetes.
Helm využívá takzvané Helm Charts, což jsou grafy pro definování, instalaci a aktualizaci komplexních aplikací pro Kubernetes.
Hlavní rysy Helmu:
- Zjednodušuje nasazování aplikací Kubernetes díky grafům.
- Umožňuje snadné aktualizace a rollbacky pomocí upgradů a uživatelských háčků.
- Grafy lze sdílet na veřejných i soukromých serverech.
- Zajišťuje jednoduché vrácení změn jedním příkazem.
- Zvyšuje produktivitu vývojářů a zlepšuje provozní připravenost.
Flagger
Flagger je operátor pro progresivní doručování v Kubernetes.
Automatizuje proces propagace kanárkových nasazení s využitím Istio, App Mesh, Nginx, Linkerd, Contour, Gloo a Skipper pro řízení provozu a Promethea pro analýzu kanárů. Kanárkové nasazení umožňuje zavést novou verzi pro malou skupinu uživatelů, otestovat ji a v případě úspěchu ji uvolnit pro všechny.
Flagger využívá service mesh v clusteru k řízení provozu mezi různými nasazeními. Pro přesun provozu na kanárkové verze monitoruje metriky jako průměrnou dobu trvání požadavků, míru úspěšnosti HTTP požadavků a stav podů.
Flagger také automatizuje analýzu aplikací, propagaci a vrácení změn pro různé strategie nasazování, například kanárkové, A/B testování a blue/green nasazení.
Kubewatch
Kubewatch je open-source monitorovací nástroj pro Kubernetes, který zasílá upozornění přes Slack.
Napsán v jazyce Go a vyvinut společností Bitnami Labs, tento nástroj sleduje zdroje Kubernetes a posílá upozornění, když dojde ke změně.
Kubewatch lze nainstalovat přes kubectl nebo pomocí Helm charts. Je intuitivní, snadno se používá a kromě Slacku podporuje také HipChat, Mattermost, Flock, webhook a SMTP.
Můžete nakonfigurovat, které prostředky Kubernetes má monitorovat, a to nastavením hodnot true nebo false v konfiguračním souboru. Jakmile nastavíte Kubewatch a spustíte modul, začnete dostávat upozornění o událostech v Kubernetes.

Gitkube
Gitkube je nástroj, který pomocí příkazu `git push` umožňuje vytvářet a nasazovat Docker kontejnery v Kubernetes. Skládá se ze tří komponent: Remote, gitkube-controller a gitkubed. Remote obsahuje vlastní zdroje spravované gitkube-controller. gitkube-controller odesílá změny do gitkubed, který následně vytvoří Docker image a nasadí jej.

Klíčové vlastnosti Gitkube:
- Jednoduchá instalace typu „plug and play“.
- Poskytuje řízení přístupu na základě rolí.
- Snadná autentizace pomocí veřejného klíče.
- Podpora jmenných prostorů pro multi-tenancy.
- Nevyžaduje žádné další závislosti kromě kubectl a git.
kube-state-metrics
kube-state-metrics je služba, která generuje metriky stavových objektů nasloucháním Kubernetes API serveru. Používá se ke sledování stavu různých objektů, jako jsou uzly, pody, jmenné prostory a nasazení. Poskytuje nezpracovaná data z Kubernetes API.
Informace poskytované kube-state-metrics:
- Stav cron úloh a úloh.
- Stav podů (připraveno, spuštěno atd.).
- Požadavky na zdroje a jejich limity.
- Kapacita uzlů a jejich stav.
- Specifikace sad replik.
Kamus
Kamus je open-source GitOps nástroj pro šifrování a dešifrování tajemství pro aplikace v Kubernetes. Šifrovaná tajemství vytvořená Kamusem lze dešifrovat pouze aplikacemi běžícími v clusteru. Pro šifrování se používá AES, Google Cloud KMS, Azure KeyVault. S Kamusem můžete začít pomocí Helm Chart.
Kamus zahrnuje dvě utility: Kamus CLI a Kamus init kontejner. Kamus CLI slouží k integraci s šifrovacím API a kamus init kontejner se používá pro integraci s dešifrovacím API.
Běžná tajemství v Kubernetes nejsou šifrovaná, ale kódovaná pomocí base64. Neměly by být ukládány do Git repozitáře v této formě z bezpečnostních důvodů, protože každý s přístupem by je mohl použít. Proto je důležité mít řešení pro šifrování/dešifrování, jako je Kamus. Nabízí také model hrozeb, který se stará o bezpečnost tajemství.
Untrak
Untrak je open-source nástroj, který se používá k vyhledávání a odstraňování nesledovaných zdrojů v Kubernetes. Pomůže vám odstranit soubory z clusteru, které nejsou sledovány.
Když vkládáte manifesty do CI/CD kanálu pomocí kubectl nebo Helm, Kubernetes neví, kdy bude objekt smazán z repozitáře. Jakmile jsou objekty odstraněny, nejsou sledovány a nadále zůstávají v Kubernetes clusteru.
Untrak interně provádí příkazy pomocí jednoduchého konfiguračního souboru untrak.yaml, aby identifikoval zdroje, které již nejsou součástí správy vašeho zdrojového kódu.

Weave Scope
Weave Scope je nástroj pro vizualizaci, monitorování a řešení problémů v Dockeru a Kubernetes.
Poskytuje komplexní přehled o vaší kontejnerizované aplikaci a infrastruktuře, což umožňuje snadno identifikovat a diagnostikovat problémy.
Spouštění aplikací s mikroservisní architekturou v Docker kontejnerech není jednoduché. Komponenty jsou dynamické a obtížně sledovatelné. S Weave Scope je možné snadno řešit úniky paměti, kontrolovat využití CPU a vizualizovat úzká místa v síti.

Klíčové vlastnosti Weave Scope:
- Monitorování Docker kontejnerů v reálném čase.
- Snadná navigace mezi procesy v kontejnerech.
- Zobrazení využití CPU a paměti hostitelem nebo službou.
- Restartování, zastavování nebo pozastavování kontejnerů pomocí CLI přímo z webového prohlížeče Weave Scope.
- Podpora vlastních pluginů pro získání podrobnějších informací o kontejnerech, procesech a hostitelích.
Kubernetes Dashboard
Kubernetes Dashboard je webové rozhraní poskytované Kubernetes. Používá se k nasazování, řešení problémů a správě kontejnerizovaných aplikací v Kubernetes clusteru. Poskytuje informace o clusteru, jako jsou detaily o uzlech, jmenných prostorech, rolích, pracovních zátěžích atd.

Kubernetes Dashboard můžete nasadit pomocí Helm Chart nebo jednoduchého příkazu kubectl:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
Kops
Kops (Kubernetes Operations) je open-source projekt pro rychlé a snadné nastavení produkčních Kubernetes clusterů. Kops se používá pro nasazení clusterů primárně na AWS a GCE.
Vytvoření malého Kubernetes clusteru je snadné, ale se škálováním se zvyšuje složitost a provozní správa může být obtížná. Kops je nástroj, který vám pomůže tyto problémy vyřešit. Uplatňuje konfiguraci řízený přístup a udržuje cluster aktuální a bezpečný.
Kops také nabízí mnoho síťových backendů, což usnadňuje nastavení různých typů clusterů podle vašich potřeb.

cAdvisor
cAdvisor je open-source nástroj pro monitorování kontejnerů. Slouží k pochopení výkonnostních charakteristik a využití prostředků kontejnery běžícími v clusteru.
Funguje na úrovni uzlu a automaticky detekuje všechny kontejnery běžící na konkrétním uzlu. Shromažďuje statistiky o paměti, systému souborů, CPU a síti. Poskytuje webové rozhraní s aktuálními daty všech kontejnerů v clusteru.
Pro začátek s cAdvisor je potřeba spustit jeho Docker image google/cadvisor a poté k němu můžete přistupovat na adrese http://localhost:8080 ve webovém prohlížeči.

Kubespray
Kubespray je nástroj, který kombinuje Ansible playbooks a Kubernetes pro správu životního cyklu Kubernetes clusteru.
S pomocí Kubespray můžete rychle nasadit cluster a přizpůsobit parametry implementace clusteru, například režimy nasazení, síťové pluginy, konfiguraci DNS, verze komponent, certifikáty atd.
Stačí spustit jeden Ansible playbook a váš cluster bude připravený. S Kubespray lze snadno škálovat a upgradovat Kubernetes cluster.
K9s
K9s je terminálový nástroj s otevřeným zdrojovým kódem, jehož dashboard zvládne vše, co webové uživatelské rozhraní Kubernetes. Používá se pro navigaci, monitorování a správu aplikací nasazených v Kubernetes clusteru.

Funkce K9s:
- Sledování clusteru v reálném čase.
- Přizpůsobení zobrazení podle zdroje.
- Snadná identifikace problémů se zdroji clusteru.
- Podpora řízení přístupu na základě rolí (RBAC).
- Vestavěné benchmarky pro ověření výkonu zdrojů.
Kubetail
Kubetail je jednoduchý bash skript, který slouží k agregaci logů z více podů do jednoho streamu.
Je velmi užitečný pro snadné ladění.
Nejnovější verze Kubetail má funkce zvýraznění a filtrování. Tato funkce umožňuje barevné odlišení protokolu. Kubetail je možné nainstalovat pomocí Homebrew jedním příkazem. Výchozí hodnoty lze přidat do proměnných prostředí, které Kubetail čte, například KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS atd.
PowerfulSeal
PowerfulSeal je open-source nástroj pro chaos engineering v Kubernetes clusterech, napsaný v Pythonu.
Chaos engineering se používá k ověření stability systému simulací problémových situací. PowerfulSeal vkládá selhání do Kubernetes clusteru, aby se problémy objevily co nejdříve.
Je inspirován Netflix Chaos Monkey a používá se ke zlepšení odolnosti Kubernetes. Inženýři s jeho pomocí záměrně narušují systém, aby otestovali jeho chování.
PowerfulSeal pracuje ve třech režimech: Autonomní, Interaktivní a Label.
V autonomním režimu spouští scénáře z definovaného souboru pravidel. V interaktivním režimu informuje o komponentách clusteru, které se ručně pokoušíte narušit. V režimu label se pomocí štítků zabíjí cílené objekty v clusteru, jako jsou pody.

Popeye
Popeye je čisticí nástroj, který funguje jako dezinfekce pro Kubernetes clustery.

Prohledává cluster a hlásí problémy související s konfiguracemi a prostředky. Pomáhá dodržovat osvědčené postupy v Kubernetes, aby se předešlo běžným problémům.
Tento nástroj je dostupný pro Windows, Linux a macOS. V současné době pracuje pouze s nody, pody, jmennými prostory a službami. S Popeye je možné snadno identifikovat mrtvé nebo nevyužité zdroje, neshody portů, pravidla RBAC, využití metrik a mnoho dalšího.
Závěr
Nástroje DevOps hrají klíčovou roli v úspěchu každého projektu. Doufám, že vám výše uvedený přehled pomůže efektivněji spravovat Kubernetes.