Прадстаўлены Polaris для падтрымання кластараў Kubernetes у здаровым стане
Заўв. перав.: Арыгінал гэтага тэксту напісаў Rob Scott - вядучы SRE-інжынер кампаніі ReactiveOps, якая і стаіць за распрацоўкай анансаванага праекта. Нам вельмі блізкая ідэя цэнтралізаванай валідацыі таго, што дэплоіцца ў Kubernetes, таму мы з цікавасцю сочым за падобнымі ініцыятывамі.
Рады ўявіць Палярная зорка - Праект з адкрытым зыходным кодам, які дапамагае падтрымліваць «здароўе» кластара Kubernetes. Мы стварылі Polaris для аўтаматызацыі некаторых з лепшых практык, якія выкарыстоўваюцца ў ReactiveOps для падтрымання бяспечнай і надзейнай працы кластараў у вялікай колькасці кліентаў. Нетутэйша час адкрыць зыходны код.
Штораз мы станавіліся сведкамі таго, як, здавалася бы, малаважныя агрэхі ў канфігурацыі прыводзілі да сур'ёзных праблем, што мяшалі інжынерам спаць па начах. Нешта зусім простае - напрыклад, упушчаная па непамятлівасці канфігурацыя запытаў на рэсурсы (resource requests) - магло паламаць аўтамаштабаванне і нават прывесці да таго, што працоўныя нагрузкі заставаліся без рэсурсаў. Калі раней малаважныя памылкі ў канфігурацыі прыводзілі да перабояў у працы production, то зараз Polaris дазваляе іх цалкам прадухіліць.
Polaris дапамагае пазбегнуць праблем з канфігурацыяй, якія ўплываюць на стабільнасць, надзейнасць, маштабаванасць і бяспеку вашых прыкладанняў. Ён дазваляе лёгка выяўляць недахопы ў канфігурацыі deployment'аў і прадухіляць будучыя праблемы. З Polaris можна моцна спаць, ведаючы, што прыкладанні разгорнутыя з дапамогай набору добра правераных стандартаў.
Polaris складаецца з двух ключавых кампанентаў:
панэлі маніторынгу, якая прадстаўляе інфармацыю аб тым, наколькі правільна сканфігураваны існуючыя ў кластары deployment'ы;
эксперыментальнага праверачнага webhook'а, які прадухіляе ад выкочвання deployment'ов, што не задавальняюць прынятаму стандарту.
Polaris Dashboard
Панэль у Polaris была створана для простай і нагляднай магчымасці ўбачыць бягучы стан deployment'аў у Kubernetes і атрымаць рэкамендацыі па паляпшэннях. Яна забяспечвае поўны агляд кластара, а таксама разбівае вынікі па катэгорыях, прастор імёнаў і deployment'ам.
Стандарты, устаноўленыя ў Polaris па змаўчанні, дастаткова высокія, так што не дзіўцеся, калі ацэнка апынецца ніжэй, чым вы чакалі. Асноўная мэта Polaris - усталёўваць высокія стандарты і імкнуцца да выдатнай канфігурацыі па змаўчанні. Калі прапанаваная канфігурацыя здасца занадта цвёрдай, яе можна выправіць падчас канфігураванні deployment'а, аптымізаваўшы пад пэўныя працоўныя нагрузкі.
У рамках публікацыі Polaris мы вырашылі не толькі прадставіць сам інструмент, але і падрабязна апісаць тэсты, якія ў яго ўключаны. Кожная праверка ўключае спасылку на адпаведную дакументацыю, дзе тлумачыцца, чаму мы лічым гэта важным, і прыводзяцца спасылкі на дадатковыя рэсурсы па дадзенай тэме.
Polaris Webhook
Калі панэль маніторынгу дапамагае атрымаць агляд бягучай канфігурацыі deployment'аў, то вэб-хук забяспечвае выкананне стандартаў для ўсіх deployment'ов, што толькі будуць выкочвацца ў кластар.
Пасля таго, як праблемы, выяўленыя панэллю маніторынгу, выпраўленыя, можна скарыстацца вэб-хукам, каб канфігурацыя больш ніколі не апускалася ніжэй за ўсталяваны стандарт. Вэб-хук не дазволіць разгортваць у кластары deployment'ы, канфігурацыя якіх утрымоўвае істотныя адхіленні (узроўня «error»).
Патэнцыял гэтага вэб-хука натхняе, аднак для таго, каб прызнаць яго гатовым да production, яшчэ запатрабуецца стараннае тэставанне. На дадзены момант гэта эксперыментальная магчымасць і частка зусім новага Open Source-праекта. Паколькі ён можа перашкодзіць абнаўленню deployment'аў, выкарыстоўвайце яго асцярожна.
Пачатак працы
Спадзяюся, што, калі вы ўсё яшчэ чытаеце гэты анонс, Polaris - інструмент, які можа апынуцца карысным для вас. Жадаеце паспрабаваць Dashboard самастойна? Разгарнуць панэль у кластары вельмі лёгка. Яна ўсталёўваецца з мінімальнымі правамі (read only), і ўсе дадзеныя застаюцца ўсярэдзіне. Каб разгарнуць Dashboard з дапамогай kubectl, выканайце:
Вядома, ёсць шмат іншых спосабаў выкарыстання і разгортванні Polaris, у тым ліку і з дапамогай Helm. Пра гэта і многае іншае можна даведацца з рэпазітара Polaris на GitHub.
Гэта толькі пачатак
Мы радыя таму, што ўжо атрымалася ўбудаваць у Polaris, але на гэтым гісторыя не сканчаецца. На падыходзе мноства новых тэстаў, якія хацелася б дадаць, каб пашырыць функцыянальнасць. Таксама мы шукаем лепшы спосаб рэалізацыі ў правілах праверкі выключэнняў на ўзроўні прастор імёнаў ці рэсурсаў. Калі хочаце атрымаць дадатковую інфармацыю аб нашых планах, азнаёмцеся з дарожнай картай.
Калі ў вас склалася ўражанне, што Polaris можа быць карысны - калі ласка, знайдзіце час, каб спрабаваць яго. Мы з радасцю прымем любыя ідэі, водгукі, пытанні ці pull request'ы. Звязацца з намі можна на сайце праекта, У GitHub або ў Twitter.