Прадстаўлены Polaris для падтрымання кластараў Kubernetes у здаровым стане

Заўв. перав.: Арыгінал гэтага тэксту напісаў Rob Scott - вядучы SRE-інжынер кампаніі ReactiveOps, якая і стаіць за распрацоўкай анансаванага праекта. Нам вельмі блізкая ідэя цэнтралізаванай валідацыі таго, што дэплоіцца ў Kubernetes, таму мы з цікавасцю сочым за падобнымі ініцыятывамі.

Прадстаўлены Polaris для падтрымання кластараў Kubernetes у здаровым стане

Рады ўявіць Палярная зорка - Праект з адкрытым зыходным кодам, які дапамагае падтрымліваць «здароўе» кластара Kubernetes. Мы стварылі Polaris для аўтаматызацыі некаторых з лепшых практык, якія выкарыстоўваюцца ў ReactiveOps для падтрымання бяспечнай і надзейнай працы кластараў у вялікай колькасці кліентаў. Нетутэйша час адкрыць зыходны код.

Штораз мы станавіліся сведкамі таго, як, здавалася бы, малаважныя агрэхі ў канфігурацыі прыводзілі да сур'ёзных праблем, што мяшалі інжынерам спаць па начах. Нешта зусім простае - напрыклад, упушчаная па непамятлівасці канфігурацыя запытаў на рэсурсы (resource requests) - магло паламаць аўтамаштабаванне і нават прывесці да таго, што працоўныя нагрузкі заставаліся без рэсурсаў. Калі раней малаважныя памылкі ў канфігурацыі прыводзілі да перабояў у працы production, то зараз Polaris дазваляе іх цалкам прадухіліць.

Polaris дапамагае пазбегнуць праблем з канфігурацыяй, якія ўплываюць на стабільнасць, надзейнасць, маштабаванасць і бяспеку вашых прыкладанняў. Ён дазваляе лёгка выяўляць недахопы ў канфігурацыі deployment'аў і прадухіляць будучыя праблемы. З Polaris можна моцна спаць, ведаючы, што прыкладанні разгорнутыя з дапамогай набору добра правераных стандартаў.

Polaris складаецца з двух ключавых кампанентаў:

  1. панэлі маніторынгу, якая прадстаўляе інфармацыю аб тым, наколькі правільна сканфігураваны існуючыя ў кластары deployment'ы;
  2. эксперыментальнага праверачнага webhook'а, які прадухіляе ад выкочвання deployment'ов, што не задавальняюць прынятаму стандарту.

Polaris Dashboard

Панэль у Polaris была створана для простай і нагляднай магчымасці ўбачыць бягучы стан deployment'аў у Kubernetes і атрымаць рэкамендацыі па паляпшэннях. Яна забяспечвае поўны агляд кластара, а таксама разбівае вынікі па катэгорыях, прастор імёнаў і deployment'ам.

Прадстаўлены Polaris для падтрымання кластараў Kubernetes у здаровым стане

Стандарты, устаноўленыя ў Polaris па змаўчанні, дастаткова высокія, так што не дзіўцеся, калі ацэнка апынецца ніжэй, чым вы чакалі. Асноўная мэта Polaris - усталёўваць высокія стандарты і імкнуцца да выдатнай канфігурацыі па змаўчанні. Калі прапанаваная канфігурацыя здасца занадта цвёрдай, яе можна выправіць падчас канфігураванні deployment'а, аптымізаваўшы пад пэўныя працоўныя нагрузкі.

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

Polaris Webhook

Калі панэль маніторынгу дапамагае атрымаць агляд бягучай канфігурацыі deployment'аў, то вэб-хук забяспечвае выкананне стандартаў для ўсіх deployment'ов, што толькі будуць выкочвацца ў кластар.

Пасля таго, як праблемы, выяўленыя панэллю маніторынгу, выпраўленыя, можна скарыстацца вэб-хукам, каб канфігурацыя больш ніколі не апускалася ніжэй за ўсталяваны стандарт. Вэб-хук не дазволіць разгортваць у кластары deployment'ы, канфігурацыя якіх утрымоўвае істотныя адхіленні (узроўня «error»).

Патэнцыял гэтага вэб-хука натхняе, аднак для таго, каб прызнаць яго гатовым да production, яшчэ запатрабуецца стараннае тэставанне. На дадзены момант гэта эксперыментальная магчымасць і частка зусім новага Open Source-праекта. Паколькі ён можа перашкодзіць абнаўленню deployment'аў, выкарыстоўвайце яго асцярожна.

Пачатак працы

Спадзяюся, што, калі вы ўсё яшчэ чытаеце гэты анонс, Polaris - інструмент, які можа апынуцца карысным для вас. Жадаеце паспрабаваць Dashboard самастойна? Разгарнуць панэль у кластары вельмі лёгка. Яна ўсталёўваецца з мінімальнымі правамі (read only), і ўсе дадзеныя застаюцца ўсярэдзіне. Каб разгарнуць Dashboard з дапамогай kubectl, выканайце:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml

Цяпер трэба наладзіць пераадрасаванне партоў, каб заходзіць на Dashboard праз лакальны порт 8080:

kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80

Вядома, ёсць шмат іншых спосабаў выкарыстання і разгортванні Polaris, у тым ліку і з дапамогай Helm. Пра гэта і многае іншае можна даведацца з рэпазітара Polaris на GitHub.

Гэта толькі пачатак

Мы радыя таму, што ўжо атрымалася ўбудаваць у Polaris, але на гэтым гісторыя не сканчаецца. На падыходзе мноства новых тэстаў, якія хацелася б дадаць, каб пашырыць функцыянальнасць. Таксама мы шукаем лепшы спосаб рэалізацыі ў правілах праверкі выключэнняў на ўзроўні прастор імёнаў ці рэсурсаў. Калі хочаце атрымаць дадатковую інфармацыю аб нашых планах, азнаёмцеся з дарожнай картай.

Калі ў вас склалася ўражанне, што Polaris можа быць карысны - калі ласка, знайдзіце час, каб спрабаваць яго. Мы з радасцю прымем любыя ідэі, водгукі, пытанні ці pull request'ы. Звязацца з намі можна на сайце праекта, У GitHub або ў Twitter.

PS ад перакладчыка

Чытайце таксама ў нашым блогу:

Крыніца: habr.com

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