11 tool na nagpapahusay sa Kubernetes

11 tool na nagpapahusay sa Kubernetes

Hindi lahat ng mga platform ng server, kahit na ang pinakamakapangyarihan at nasusukat, ay nakakatugon sa lahat ng mga pangangailangan tulad ng mga ito. Bagama't mahusay na gumagana ang Kubernetes nang mag-isa, maaaring kulang ito sa mga tamang piraso upang makumpleto. Palagi kang makakahanap ng isang espesyal na kaso na binabalewala ang iyong pangangailangan, o kung saan ang Kubernetes ay hindi gagana sa isang default na pag-install, tulad ng suporta sa database o pagpapatakbo ng CD.

Dito lumalabas ang mga add-on, extension at iba pang goodies para sa container orchestrator na ito, na sinusuportahan ng pinakamalawak na komunidad. Sa artikulong ito, magkakaroon ng 11 sa pinakamagagandang bagay na nakita namin. Kami mismo sa Southbridge ang mga ito ay napaka-interesante, at plano naming harapin ang mga ito nang praktikal - upang i-disassemble ang mga ito sa mga turnilyo at mani at makita kung ano ang nasa loob. Ang ilan sa mga ito ay perpektong makakadagdag sa anumang Kubernetes cluster, habang ang iba ay makakatulong sa paglutas ng mga partikular na gawain na hindi ipinapatupad sa karaniwang pamamahagi ng Kubernetes.

Gatekeeper: pamamahala ng patakaran

Proyekto Buksan ang Ahente ng Patakaran (OPA) ay nagbibigay ng kakayahang gumawa ng mga patakaran sa ibabaw ng cloud application stack sa Kubernetes, mula sa pagpasok hanggang sa service mesh. Gatekeeper nagbibigay sa Kubernetes ng katutubong kakayahan na awtomatikong magpatupad ng mga patakaran sa cluster, at nagbibigay din ng inspeksyon para sa anumang mga kaganapan o mapagkukunan na lumalabag sa patakaran. Ang lahat ng ito ay pinangangasiwaan ng medyo bagong mekanismo ng Kubernetes, ang Webhooks admission manager, na gumagana kapag nagbabago ang mga mapagkukunan. Sa Gatekeeper, ang mga patakaran ng OPA ay nagiging isa pang bahagi ng estado ng iyong Kubernetes cluster nang hindi nangangailangan ng patuloy na pagbabantay.

Gravity: Mga Portable na Kubernetes Cluster

Kung gusto mong maglunsad ng application sa Kubernetes, maraming application ang may Helm chart na gumagabay at nag-o-automate sa prosesong ito. Ngunit paano kung gusto mong kunin ang iyong Kubernetes cluster "as is" at i-roll out ito sa ibang lugar?

Grabidad kumukuha ng mga snapshot ng mga cluster ng Kubernetes, ang kanilang registry para sa mga imahe ng container, pati na rin ang pagpapatakbo ng mga application na tinatawag na "application packages". Ang ganitong pakete, na isang regular na file .tar, maaaring kopyahin ang cluster saanman maaaring tumakbo ang Kubernetes.

Sinusuri din ng Gravity na ang target na imprastraktura ay kumikilos na kapareho ng pinanggagalingan ng imprastraktura, at gayundin na ang kapaligiran ng Kubernetes sa target ay available. Ang bayad na bersyon ng Gravity ay nagdaragdag din ng mga tampok sa seguridad, kabilang ang RBAC at ang kakayahang i-synchronize ang mga setting ng seguridad sa iba't ibang cluster deployment.

Ang pinakahuling pangunahing release, ang Gravity 7, ay maaaring itulak ang isang Gravity na imahe sa isang umiiral nang Kubernetes cluster, sa halip na iikot ang isang ganap na bagong cluster mula sa imahe. Maaari ding gumana ang Gravity 7 sa mga cluster na naka-install nang hindi ginagamit ang Gravity image. Sinusuportahan din ng Gravity ang SELinux, at katutubong gumagana sa gateway ng Teleport SSH.

Kaniko: Pagbuo ng mga Container sa isang Kubernetes Cluster

Karamihan sa mga imahe ng container ay binuo sa mga system sa labas ng container stack. Gayunpaman, minsan kailangan mong buuin ang larawan sa loob ng isang stack ng mga container, tulad ng isang lugar sa isang tumatakbong container, o sa isang Kubernetes cluster.

Kaniko gumagawa ng mga container sa loob ng isang container environment, ngunit hindi nakadepende sa isang containerization service, gaya ng Docker. Sa halip, kinukuha ng Kaniko ang file system mula sa base na imahe, isinasagawa ang lahat ng user-space build command sa ibabaw ng na-extract na file system, na kumukuha ng snapshot ng file system pagkatapos ng bawat command.

Tandaan: Kaniko ay kasalukuyang (Mayo 2020, tinatayang tagasalin) ay hindi maaaring bumuo ng mga lalagyan ng Windows.

Kubecost: Mga opsyon sa gastos sa pagsisimula ng Kubernetes

Karamihan sa mga tool sa pangangasiwa ng Kubernetes ay nakatuon sa kadalian ng paggamit, pagsubaybay, pag-unawa sa gawi sa loob ng pod, at iba pa. Ngunit ano ang tungkol sa pagsubaybay sa gastos - sa rubles at kopecks - na nauugnay sa paglulunsad ng Kubernetes?

Kubecost pinoproseso ang mga parameter ng Kubernetes sa real time, na nagreresulta sa up-to-date na impormasyon sa gastos mula sa pagpapatakbo ng mga cluster sa mga pangunahing cloud provider, na ipinapakita sa isang panel na may buwanang cost per cluster. Ang mga presyo para sa RAM, oras ng CPU, GPU at disk subsystem ay pinaghiwa-hiwalay ng mga bahagi ng Kubernetes (container, pod, serbisyo, atbp.)

Sinusubaybayan din ng Kubecost ang halaga ng mga mapagkukunang hindi cluster gaya ng mga Amazon S3 bucket, bagama't nililimitahan ito ng AWS. Ang data ng gastos ay maaaring ipadala sa Prometheus upang magamit mo ito upang baguhin ang gawi ng cluster sa programmatically.

Libreng gamitin ang Kubecost kung mayroon kang sapat na 15 araw ng data ng log. Para sa mga karagdagang feature, ang pagpepresyo ay nagsisimula sa $199 bawat buwan para sa pagsubaybay sa 50 node.

KubeDB: Running Battle Databases sa Kubernetes

Ang mga database ay mahirap ding tumakbo nang mahusay sa Kubernetes. Makakakita ka ng mga operator ng Kubernetes para sa MySQL, PostgreSQL, MongoDB, at Redis, ngunit lahat sila ay may mga kakulangan. Gayundin, ang karaniwang hanay ng tampok na Kubernetes ay hindi direktang tumutugon sa karamihan ng mga tinukoy na problema sa database.

KubeDB tumutulong sa iyong lumikha ng iyong mga Kubernetes na pahayag para sa pamamahala ng database. Ang pagpapatakbo ng mga backup, pag-clone, pagsubaybay, mga snapshot, at deklaratibong paglikha ng database ay mga bahagi nito. Tandaan na ang suporta sa tampok ay nakasalalay sa database. Halimbawa, ang paglikha ng isang kumpol ay gumagana para sa PostgreSQL, ngunit hindi para sa MySQL (na mayroon, gaya ng wastong itinuro dnbstd, tinatayang tagasalin).

Kube-unggoy: Chaos Monkey para sa mga Kubernetes

Ang pinaka-walang error na paraan ng stress testing ay itinuturing na mga random na breakdown. Ang teoryang ito ay nasa gitna ng Chaos Monkey ng Netflix, isang magulong tool sa inhinyero na random na nagsasara ng mga virtual machine at mga lalagyan sa kapaligiran ng produksyon upang "ma-insentibo" ang mga developer na bumuo ng mga mas matatag na sistema. kube-unggoy - pagpapatupad ng parehong pangunahing teorya ng stress testing para sa mga kumpol ng Kubernetes. Gumagana ito sa pamamagitan ng random na pagpatay sa mga module sa cluster na iyong itinalaga, at maaari ding itakda na tumakbo sa isang partikular na agwat ng oras.

Kubernetes Ingress Controller para sa AWS

Nagbibigay ang Kubernetes ng external load balancer at mga serbisyo ng cluster networking sa pamamagitan ng tinatawag na serbisyo Pagpasok Nagbibigay ang AWS ng mga feature sa pag-load ng pagbabalanse ngunit hindi ito awtomatikong binu-bundle ng parehong mga feature ng Kubernetes. Kubernetes Ingress Controller para sa AWS isinasara ang puwang na ito.

Awtomatiko nitong pinamamahalaan ang mga mapagkukunan ng AWS para sa bawat pagpasok sa cluster, paggawa ng mga balanse ng pag-load para sa mga bagong mapagkukunan ng pagpasok, at pagtanggal ng mga balanse ng load kapag inalis ang mga mapagkukunan. Gumagamit ito ng CloudFormation upang matiyak na mananatiling pare-pareho ang estado ng cluster. Sinusuportahan din nito ang mga setting ng CloudWatch Alarm at awtomatikong pinamamahalaan ang iba pang elementong ginagamit sa cluster, gaya ng mga SSL certificate at EC2 Auto Scaling Groups.

Kubespray: Awtomatikong pag-install ng Kubernetes

Kubespray automates ang pag-install ng isang production-ready na Kubernetes cluster, mula sa pag-install sa mga server ng hardware hanggang sa mga pangunahing pampublikong ulap. Gumagamit ito ng Ansible (Vagrant optional) upang simulan ang deployment at lumikha ng high-availability cluster mula sa simula gamit ang iyong piniling mga add-on sa network (tulad ng Flannel, Calico, atbp.) sa iyong pagpili ng sikat na pamamahagi ng Linux kapag naka-install sa mga server ng hardware.

Skaffold: Iterative Development para sa Kubernetes

Skaffold - isa sa mga tool ng Google na ginagamit upang ayusin ang mga application CD sa Kubernetes. Sa sandaling gumawa ka ng mga pagbabago sa source code, awtomatikong makikita ito ng skaffold, magsisimulang bumuo at mag-deploy, at babalaan ka kung mayroong anumang mga error. Ang Skaffold ay ganap na tumatakbo sa panig ng kliyente, kaya maaaring may kaunting mga nuances sa pag-install o pag-update. Magagamit ito sa mga kasalukuyang pipeline ng CICD pati na rin makipag-ugnayan sa ilang panlabas na tool sa pagbuo, pangunahin ang Bazel ng Google.

Teresa: Ang pinakasimpleng PaaS sa Kubernetes

Teresa ay isang application deployment system na nagpapatakbo ng isang simpleng PaaS sa ibabaw ng Kubernetes. Ang mga pinagsama-samang user ay maaaring mag-deploy at mamahala ng sarili nilang mga application. Ginagawa nitong mas madali ang mga bagay para sa mga taong nagtitiwala sa application na ito at ayaw makipag-ugnayan sa Kubernetes at sa lahat ng kumplikado nito.

Ikiling: I-stream ang mga update sa container sa mga cluster ng Kubernetes

Tumagilid, na binuo ng Windmill Engineering, sinusubaybayan ang mga pagbabago sa iba't ibang Dockerfiles at pagkatapos ay unti-unting nagde-deploy ng mga naaangkop na container sa Kubernetes cluster. Sa esensya, pinapayagan ka nitong i-update ang production cluster sa real time sa pamamagitan lamang ng pag-update ng Dockerfiles. Nabubuo ang tilt sa loob ng cluster, ang source code lang ang kailangang baguhin. Maaari ka ring kumuha ng snapshot ng estado ng cluster at makuha ang mga kundisyon ng error nang direkta mula sa Tilt upang ibahagi sa mga miyembro ng team para sa pag-debug.

PS Ang lahat ng mga tool na ito ay paulit-ulit naming pinasok Southbridge sinisiyasat gamit ang mga kamay naming usisero. Upang ipakita ang mga tunay na kasanayan (sana!) sa mga offline intensive sa Pebrero. Kubernetes Base Pebrero 8–10, 2021. At Kubernetes Mega Pebrero 12–14. Sa totoo lang, na-miss din namin ang mainit at masiglang kapaligiran ng offline na pag-aaral. Gaano man ka advanced ang mga teknolohiya, hindi nito mapapalitan ang live na komunikasyon ng tao at isang espesyal na kapaligiran kapag nagtitipon ang mga taong katulad ng pag-iisip.

Pinagmulan: www.habr.com

Magdagdag ng komento