
Nie všetky serverové platformy, aj tie najvýkonnejšie a najškálovateľnejšie, spĺňajú všetky potreby tak, ako sú. Hoci Kubernetes funguje skvele sám o sebe, môže mu chýbať potrebná súčasť na dosiahnutie úplnosti. Vždy nájdete špecifický prípad, ktorý ignoruje vašu potrebu, alebo situáciu, v ktorej Kubernetes nefunguje pri predvolenej inštalácii — napríklad podpora databáz alebo fungovanie CDN.
A práve tu prichádzajú na scénu doplnky, rozšírenia a iné vychytávky pre tento orchestrátor kontajnerov, podporované širokým spoločenstvom. V tomto článku sa pozrieme na 11 najlepších vecí, ktoré sme našli. Nám osobne sú veľmi zaujímavé a plánujeme sa s nimi podrobne oboznámiť — rozobrať ich na drobné súčiastky a pozrieť sa, čo je vo vnútri. Niektoré z nich výborne doplnia akýkoľvek klaster Kubernetes, iné zase pomôžu vyriešiť konkrétne úlohy, ktoré nie sú realizované v typickej dodávke Kubernetes.
Gatekeeper: správa politík
Projekt (OPA) poskytuje možnosť vytvárať politiky nad cloudovými aplikačnými stromami v Kubernetes, od ingress po service mesh. ponúka natívnu možnosť pre Kubernetes automaticky vynucovať politiky v klastri a poskytuje kontrolu akýchkoľvek udalostí alebo zdrojov, ktoré porušujú politiku. To všetko je riadené relatívne novým mechanizmom Kubernetes, správcom prístupu Webhooks, ktorý sa spúšťa pri zmene zdrojov. S Gatekeeperom sa politiky OPA stávajú ďalšou súčasťou stavu vášho klastra Kubernetes bez potreby neustáleho dohľadu.
Gravity: Prenášateľné klastry Kubernetes
Ak chcete nasadiť aplikáciu v Kubernetes, mnohé aplikácie majú Helm chart, ktorý usmerňuje a automatizuje tento proces. Ale čo ak by ste chceli vziať svoj klaster Kubernetes 'tak, ako je' a nasadiť ho niekde inde?
vytvára snímky stavu klastrov Kubernetes, ich registry pre obrazy kontajnerov a tiež spustené aplikácie, nazývané 'balíčky aplikácií'. Takýto balíček, predstavujúci obyčajný súbor .tar, môže replikovať klaster kdekoľvek, kde môže Kubernetes fungovať.
Gravity tiež overuje, či cieľová infraštruktúra funguje rovnako ako pôvodná a že prostredie Kubernetes na cieľovej strane je dostupné. Platená verzia Gravity tiež pridáva funkcie bezpečnosti, vrátane RBAC a možnosti synchronizácie bezpečnostných nastavení naprieč rôznymi nasadeniami klastrov.
Najnovšia hlavná verzia, Gravity 7, môže nasadiť obraz Gravity do existujúceho klastru Kubernetes, namiesto vytvárania úplne nového klastru z obrazu. Gravity 7 môže tiež pracovať s klastrami, ktoré boli nainštalované bez použitia obrazu Gravity. Taktiež Gravity podporuje SELinux a nativne funguje so zariadením Teleport SSH.
Kaniko: Skladanie kontajnerov v klastri Kubernetes
Väčšina obrazov kontajnerov sa skladá na systémach mimo kontajnerového stacku. Avšak niekedy je potrebné zložiť obraz v rámci kontajnerového stacku, napríklad niekde v bežiacom kontajneri alebo v klastri Kubernetes.
vykonáva skladanie kontajnerov vo vnútri kontajnerového prostredia, ale bez závislosti na prevádzke služby kontajnerizácie, ako je Docker. Namiesto toho Kaniko extrahuje súborový systém z základného obrazu, vykonáva všetky príkazy skladania v priestore používateľa nad extrahovaným súborovým systémom a vytvára snímku súborového systému po každom príkaze.
Poznámka: Kaniko v súčasnosti (máj 2020) pozn. prekladateľa) nemôže skladať Windows kontajnery.
Kubecost: Možnosti nákladov na spustenie Kubernetes
Väčšina administratívnych nástrojov Kubernetes je zameraná na jednoduché použitie, monitorovanie, pochopenie správania vo vnútri podu atď. Ale čo pozorovanie nákladov — v rubľoch a kopejkách — spojených so spustením Kubernetes?
spracováva parametre Kubernetes v reálnom čase, čo vedie k získaniu informácií o aktuálnych nákladoch z bežiacich klastrov od hlavných poskytovateľov cloudových služieb, ktoré sú zobrazené na paneli s mesačnými nákladmi pre každý klaster. Ceny za operačnú pamäť, procesorový čas, GPU a diskový subsystém sú rozdelené podľa komponentov Kubernetes (kontajner, pod, služba atď.)
Kubecost tiež sleduje náklady na externé zdroje, ako sú Amazon S3 buckets, hoci je to obmedzené na AWS. Údaje o nákladoch môžu byť odoslané do Prometheus, takže ich môžete použiť na programovú zmenu správania klastru.
Kubecost je bezplatný na používanie, ak vám postačujú údaje v protokoloch za 15 dní. Pre rozšírené funkcie ceny začínajú od 199$ mesačne za monitorovanie 50 uzlov.
KubeDB: Spúšťanie produkčných databáz v Kubernetes
Databázy sú tiež dosť zložité na efektívne spúšťanie v Kubernetes. Nájdete Kubernetes operátory pre MySQL, PostgreSQL, MongoDB a Redis, ale všetky majú svoje nedostatky. Typová sada funkcií Kubernetes tiež nedokáže priamo vyriešiť väčšinu špecifických problémov s databázami.
pomáha vám vytvoriť vlastné Kubernetes operátory na správu databáz. Spustenie zálohovania, klonovanie, monitorovanie, vytváranie snímkov a deklaratívne vytváranie databáz sú jeho súčasťou. Berte na vedomie, že podpora funkcií závisí od databázy. Napríklad, vytváranie klátra funguje pre PostgreSQL, ale nie pre MySQL ( sú, ako správne podotkol , pozn. prekladateľa).
Kube-monkey: Chaos Monkey pre Kubernetes
Najspoľahlivejší spôsob stresového testovania sú náhodné poruchy. Táto teória je základom Chaos Monkey od Netflixu, chaotického inžinierskeho nástroja, ktorý náhodne vypína virtuálne stroje a kontajnery v produkčnom prostredí, aby "stimuloval" vývojárov vytvárať odolnejšie systémy. — je implementácia tej istej základnej teórie stresového testovania pre klastre Kubernetes. Funguje tak, že náhodne zabíja moduly vo vašom zhluku, ktoré určíte, a môže byť nastavený na prácu v určitých časových intervaloch.
Kubernetes Ingress Controller pre AWS
Kubernetes poskytuje externý vyvažovač záťaže a sieťové služby klastra prostredníctvom služby nazývanej AWS ponúka funkcie vyvažovania záťaže, ale automaticky ich nespojuje s rovnakými možnosťami Kubernetes. uzatvára tento nedostatok.
Automaticky spravuje zdroje AWS pre každý objekt ingress v klastri, vytvára vyvažovače záťaže pre nové zdroje ingress a odstraňuje vyvažovače pri odstraňovaní zdrojov. Používa CloudFormation, aby zabezpečil, že stav klastra zostáva celistvý. Tiež podporuje nastavenia CloudWatch Alarm a automaticky spravuje ďalšie prvky používané v klastri, ako sú certifikáty SSL a EC2 Auto Scaling Groups.
Kubespray: Automatická inštalácia Kubernetes
automatizuje inštaláciu hotového na priemyselné využitie Kubernetes klastra, začínajúc inštaláciou na "hardvéri" a končiac základnými verejnými cloudmi. Používa Ansible (Vagrant - navyše) na spustenie nasadenia a vytvorenie vysoko dostupného klastra od nuly s vybraným sieťovým doplnkom (napríklad Flannel, Calico a ďalšie) na vybranom populárnom distribúte Linux pri inštalácii na "hardvér".
Skaffold: Iteratívny vývoj pre Kubernetes
— jeden z nástrojov Google, ktorý sa používa na organizáciu CD aplikácií v Kubernetes. Akonáhle vykonáte zmeny v zdrojovom kóde, skaffold to automaticky zistí, spustí zostavenie a nasadenie a upozorní vás, ak sú nejaké chyby. Skaffold sa spúšťa úplne na strane klienta, takže môžu byť drobné nuansy s inštaláciou alebo aktualizáciou. Môže sa používať s existujúcimi CICD pipeline a tiež interagovať s niektorými externými nástrojmi na zostavovanie, najmä s Bazel od Googlu.
Teresa: Najjednoduchší PaaS na Kubernetes
je systém nasadenia aplikácií, ktorý spúšťa najjednoduchší PaaS nad Kubernetes. Používatelia rozdelení do tímov môžu nasadzovať a spravovať aplikácie, ktoré im patria. To trochu uľahčuje prácu ľuďom, ktorí dôverujú tejto aplikácii a nechcú sa zaoberať Kubernetes a všetkými jeho zložitostiami.
Tilt: Streamovanie aktualizácií kontajnerov do klastra Kubernetes
, vyvinutý Windmill Engineering, sleduje zmeny rôznych súborov Dockerfile a potom postupne nasadzuje príslušné kontajnery do klastra Kubernetes. V podstate umožňuje aktualizáciu produkčného klastru v reálnom čase jednoduchým aktualizovaním súborov Dockerfile. Tilt vykonáva zostavenie v rámci klastru, zdrojový kód - všetko, čo treba meniť. Môžete tiež vytvoriť snímku stavu klastru a zaznamenať podmienky spúšťania chýb priamo z Tilt, aby ste ich zdieľali s členmi tímu na ladenie.
P.S. Všetky tieto nástroje sme už mnohokrát v prehmatali našimi zvedavými rukami. Aby sme predstavili reálne praktiky už (dúfam!) na offline intenzívoch v februári. 8–10 februára 2021. A 12.–14. februára. Úprimne, aj nám chýba teplá a energická atmosféra offline vzdelávania. Nech sú technológie akokoľvek pokročilé, nenahradia živé ľudské stretávanie a zvláštnu atmosféru, keď sa stretnú zhodní záujemcovia.
Zdroj: habr.com
