11 інструментаў, якія робяць Kubernetes лепш

11 інструментаў, якія робяць Kubernetes лепш

Далёка не ўсе серверныя платформы, нават самыя магутныя і якія маштабуюцца, задавальняюць усе запатрабаванні, як ёсць. Хоць Kubernetes і працуе добра сам па сабе, яму можа не хапіць неабходных элементаў для паўнаты. Вы заўсёды знойдзеце прыватны выпадак, які ігнаруе вашу патрэбу, ці пры якім Kubernetes не будзе працаваць пры ўсталёўцы па змаўчанні - напрыклад, падтрымка баз дадзеных або праца CD.

Тут і з'яўляюцца дадаткі, пашырэнні і іншыя нішцякі для гэтага аркестратара кантэйнераў, якія падтрымліваюцца найшырэйшай супольнасцю. У гэтым артыкуле будзе 11 найлепшых рэчаў, знойдзеных намі. Нам самім у Саўджыдж яны вельмі нават цікавыя, і мы плануем разабрацца з імі практычна - на шрубкі і гаечкі разабраць і паглядзець, што ўнутры. Частка з іх цудоўна дапоўніць любы кластар Kubernetes, іншыя ж дапамогуць вырашыць прыватныя задачы, не рэалізаваныя ў тыпавой пастаўцы Kubernetes.

Gatekeeper: кіраванне палітыкамі

праект Open Policy Agent (OPA) дае магчымасць стварэння палітык-над хмарных стэкаў прыкладанняў у Kubernetes, пачынаючы ingress і заканчваючы service mesh. брамнік дае натыўную для Kubernetes магчымасць прымусовага прымянення палітык у кластары аўтаматычна, а таксама дае праверку любых падзей або рэсурсаў, якія парушаюць палітыку. Усё гэта апрацоўваецца адносна новым механізмам Kubernetes, дыспетчарам допуску Webhooks, якія спрацоўваюць пры змене рэсурсаў. З дапамогай Gatekeeper палітыкі OPA становяцца яшчэ адной часткай стану вашага кластара Kubernetes, не маючы патрэбы ў пастаянным наглядзе.

Gravity: якія пераносяцца кластара Kubernetes

Калі вы жадаеце выкочваць прыкладанне ў Kubernetes, то шматлікія прыкладанні маюць Helm chart, накіроўвалы і аўтаматызуючы гэты працэс. Але што, калі вам захочацца ўзяць свой кластар Kubernetes "як ёсць", і раскаціць яго дзе-небудзь яшчэ?

Вага робіць здымкі стану кластараў Kubernetes, іх registry для выяў кантэйнераў, а таксама запушчаных прыкладанняў, званых "пакетамі прыкладанняў". Такі пакет, уяўлялы сабой звычайны файл .tar, можа рэпліцыраваць кластар ўсюды, дзе можа працаваць Kubernetes.

Gravity таксама правярае, што мэтавая інфраструктура паводзіць сябе таксама, як і зыходная, а таксама, што асяроддзе Kubernetes на мэтавай – даступна. Платная версія Gravity таксама дадае функцыі бяспекі, у тым ліку RBAC і магчымасць сінхранізацыі налад бяспекі па розных разгортванням кластараў.

Апошняя асноўная версія, Gravity 7, можа раскаціць выяву Gravity у існуючы кластар Kubernetes, замест разгортвання цалкам новага кластара з выявы. Gravity 7 таксама можа працаваць з кластарамі, усталяванымі без выкарыстання выявы Gravity. Таксама Gravity падтрымлівае SELinux, і натыўна працуе са шлюзам Teleport SSH.

Kaniko: Зборка кантэйнераў у кластары Kubernetes

Большасць вобразаў кантэйнераў збіраюцца на сістэмах за межамі стэка кантэйнераў. Аднак часам трэба сабраць выяву ўсярэдзіне стэка кантэйнераў, напрыклад дзесьці ў які працуе кантэйнеры, або ў кластары Kubernetes.

Kaniko ажыццяўляе зборку кантэйнераў усярэдзіне кантэйнернага асяроддзя, але без залежнасці ў працы ад сэрвісу кантэйнерызацыі, напрыклад Docker. Замест гэтага Kaniko здабывае файлавую сістэму з базавай выявы, выконвае ўсе зборачныя каманды ў прасторы карыстача-над вынятай файлавай сістэмы, робячы здымак файлавай сістэмы пасля кожнай каманды.

Заўвага: Kaniko на дадзены момант (май 2020 года, заўв. перакладчыка) не можа збіраць кантэйнеры Windows.

Kubecost: Параметры кошту запуску Kubernetes

Большасць інструментаў адміністравання Kubernetes накіраваны на прастату выкарыстання, маніторынг, разуменне паводзінаў унутры pod, і да т.п. Але што наконт назірання за коштам - у рублях і капейках - звязанай з запускам Kubernetes?

Кубэкост апрацоўвае параметры Kubernetes у рэжыме рэальнага часу, што прыводзіць да паступлення інфармацыі аб актуальным кошце ад запушчаных кластараў у асноўных пастаўшчыкоў хмарных паслуг, якія адлюстроўваюцца на панэлі са штомесячным коштам кожнага кластара. Кошты за аператыўную памяць, працэсарны час, GPU і дыскавую падсістэму разбітыя па кампанентах Kubernetes (кантэйнер, pod, сэрвіс, і да т.п.)

Kubecost таксама адсочвае кошт пазакластарных рэсурсаў, напрыклад Amazon S3 buckets, хоць яна абмежавана AWS. Дадзеныя аб кошце могуць быць адпраўлены ў Prometheus, так што вы можаце выкарыстоўваць іх для змены паводзін кластара праграмным шляхам.

Kubecost бясплатны для выкарыстання, калі вам дастаткова дадзеных у часопісах за 15 дзён. Для дадатковых функцый кошту пачынаюцца з 199 $ штомесяц за маніторынг 50 вузлоў.

KubeDB: Запуск баявых баз дадзеных у Kubernetes

Базы дадзеных таксама дастаткова складана запускаць эфектна ў Kubernetes. Вы знойдзеце аператары Kubernetes для MySQL, PostgreSQL, MongoDB і Redis, але ва ўсіх іх ёсць недахопы. Таксама тыпавы набор функцый Kubernetes не дазваляе наўпрост вырашыць большасць вызначаных праблемы з базамі дадзеных.

KubeDB дапамагае вам стварыць свае аператары Kubernetes для кіравання базамі даных. Запуск рэзервовага капіявання, кланаванне, маніторынг, стварэнне здымкаў і дэкларатыўнае стварэнне баз - яго складовыя часткі. Звярніце ўвагу, што падтрымка функцый залежыць ад базы даных. Напрыклад, стварэнне кластара працуе для PostgreSQL, але не для MySQL (ўжо ёсць, як дакладна прымеціў dnbstd, заўв. перакладчыка).

Kube-monkey: Chaos Monkey для Kubernetes

Найбольш беспамылковым спосабам стрэс-тэставання лічацца выпадковыя паломкі. Гэтая тэорыя ляжыць у аснове Chaos Monkey ад Netflix, хаатычнай інжынернай прылады, які выпадковым чынам выключае віртуальныя машыны і кантэйнеры вытворчага асяроддзя, каб «стымуляваць» распрацоўнікаў ствараць больш устойлівыя сістэмы. Kube-monkey - Рэалізацыя той жа базавай тэорыі стрэс-тэставанні для кластараў Kubernetes. Ён працуе, забіваючы выпадковым чынам модулі ў кластары, якія прызначаюцца вамі, а таксама можа быць настроены на працу ў пэўны інтэрвал часу.

Kubernetes Ingress Controller для AWS

Kubernetes дае знешні балансавальнік нагрузкі і сеткавыя сэрвісы кластара праз сэрвіс, званы Уваход AWS дае функцыі па балансаванні нагрузкі, але не звязвае іх аўтаматычна з такімі ж магчымасцямі Kubernetes. Kubernetes Ingress Controller for AWS закрывае гэты прабел.

Ён аўтаматычна кіруе рэсурсамі AWS для кожнага аб'екта ingress у кластары, ствараючы балансавальнікі нагрузкі для новых рэсурсаў ingress, і выдаляючы балансавальнікі пры выдаленні рэсурсаў. Ён выкарыстоўвае CloudFormation, каб пераканацца, што стан кластара застаецца цэласным. Ён таксама падтрымлівае налады CloudWatch Alarm і аўтаматычна кіруе іншымі элементамі, якія выкарыстоўваюцца ў кластары, напрыклад сертыфікатамі SSL і EC2 Auto Scaling Groups.

Kubespray: Аўтаматычная ўстаноўка Kubernetes

Kubespray аўтаматызуе ўсталёўку гатовага да прамысловага выкарыстання кластара Kubernetes, пачынальна з усталёўкі на "жалезных" серверах, і сканчаючы асноўнымі публічнымі аблокамі. Ён выкарыстоўвае Ansible (Vagrant - дадаткова) для запуску разгортвання і стварэння высокадаступнага кластара з нуля з абраным вамі сеткавым дадаткам (напрыклад Flannel, Calico і іншыя) на абраным вамі папулярным дыстрыбутыве Linux пры ўсталёўцы на "жалезныя" серверы.

Skaffold: Ітэратыўная распрацоўка для Kubernetes

Скафот - Адзін з інструментаў Google, якія прымяняюцца для агранізацыі CD прыкладанняў у Kubernetes. Як толькі вы робіце змены зыходнага кода - skaffold аўтаматычна гэта вызначае, запускае зборку і разгортванне, папярэджвае вас, калі ёсць якія-небудзь памылкі. Skaffold запускаецца цалкам на баку кліента, так што могуць быць невялікія нюансы з усталёўкай або абнаўленнем. Ён можа выкарыстоўвацца з існуючымі канвеерамі CICD, а таксама ўзаемадзейнічаць з некаторымі вонкавымі зборачнымі прыладамі, галоўнай выявай з Bazel ад Google.

Teresa: Найпросты PaaS на Kubernetes

Тэрэза гэта сістэма разгортвання прыкладанняў, якая запускае найпросты PaaS па-над Kubernetes. Карыстальнікі, разбітыя па камандах, могуць разгортваць і кіраваць прыналежнымі ім прыкладаннямі. Гэта крыху спрашчае працу людзям, якія давяраюць гэтаму з дадаткам, і не жадаючым мець справу з Kubernetes і ўсімі яго складанасцямі.

Tilt: Струменевае рассыланне абнаўленняў кантэйнераў у кластара Kubernetes

Нахіляць, распрацаваны Windmill Engineering, назірае за зменамі розных файлаў Dockerfile, а затым паступова разгортвае адпаведныя кантэйнеры ў кластары Kubernetes. У сутнасці ён дазваляе праводзіць абнаўленне баявога кластара ў рэжыме рэальнага часу проста абнаўляючы файлы Dockerfile. Tilt выконвае зборку ўнутры кластара, зыходны код - усё што трэба змяняць. Вы таксама можаце зрабіць злепак стану кластара і зафіксаваць умовы спрацоўвання памылак прама з Tilt, каб падзяліцца імі з членамі каманды для адладкі.

PS Усе гэтыя інструменты мы неаднаразова ў Саўджыдж прамацалі нашымі цікаўнымі ручкамі. Каб прадставіць рэальныя практыкі ўжо (спадзяюся!) на афлайн-інтэнсіўах у лютым. Kubernetes База 8–10 лютага 2021. І Kubernetes Мега 12-14 лютага. Шчыра, мы таксама засумавалі па цёплай і энергетычна зараджанай атмасферы афлайн-навучання. Якія б прасунутымі тэхналогіі ні былі, яны не заменяць жывых чалавечых зносін і асаблівай атмасферы, калі збіраюцца аднадумцы.

Крыніца: habr.com

Дадаць каментар