Прим. прев.: Оригиналът на този текст е написан от Rob Scott — водещ SRE инженер в компанията ReactiveOps, която стои зад разработката на анонсирания проект. Идеята за централизирана валидация на всичко, което се деплойва в Kubernetes, ни е много близка, затова с интерес следим подобни инициативи.

С радост представям — проект с отворен код, който помага за поддържането на "здравето" на кластера Kubernetes. Създадохме Polaris, за да автоматизираме някои от най-добрите практики, използвани в ReactiveOps за осигуряване на безопасна и надеждна работа на клъстери за много клиенти. Време е да отворим изходния код.
Отново и отново ставаме свидетели как, на пръв поглед, незначителни грешки в конфигурацията водят до сериозни проблеми, които пречат на инженерите да спят спокойно. Нещо съвсем просто — например, забравена конфигурация за ресурсни заявки (resource requests) — може да провали автомасштабироването и дори да остави работните натоварвания без ресурси. Ако преди незначителни грешки в конфигурацията водеха до прекъсвания в работата на production, то сега Polaris позволява да се предотвратят напълно.
Polaris помага да се избегнат проблеми с конфигурацията, които влияят на стабилността, надеждността, мащабируемостта и сигурността на вашите приложения. Той позволява лесно идентифициране на недостатъците в конфигурацията на deployments и предотвратяване на бъдещи проблеми. С Polaris можете да спите спокойно, знаейки, че приложенията са разположени с набор от добре проверени стандарти.
Polaris се състои от два основни компонента:
- панел за мониторинг, предоставящ информация за правилността на конфигурацията на съществуващите deployments в клъстера;
- експериментален проверяващ webhook, който предотвратява разгръщането на deployments, които не отговарят на приетия стандарт.
Polaris Dashboard
Панелът в Polaris е създаден за проста и ясна възможност за виждане на текущото състояние на deployments в Kubernetes и получаване на препоръки за подобрения. Той осигурява цялостен преглед на клъстера, както и разбива резултатите по категории, пространства с имена и deployments.

Стандартите, установени в Polaris по подразбиране, са доста високи, така че не се учудвайте, ако оценката се окаже по-ниска от очакваното. Основната цел на Polaris е да установява високи стандарти и да стреми към отлична конфигурация по подразбиране. Ако предложената конфигурация изглежда твърде строга, тя може да бъде коригирана по време на конфигурирането на deployment-а, оптимизирайки я за конкретни работни натоварвания.
В рамките на публикацията Polaris решихме не само да представим самия инструмент, но и да опишем подробно тестовете, включени в него. Всяка проверка включва линк към съответната документация, където се обяснява защо смятаме, че това е важно, и се предоставят линкове към допълнителни ресурси по темата.
Polaris Webhook
Ако панелът за мониторинг помага за преглед на текущата конфигурация на deployment-ите, то уеб-хукът осигурява спазването на стандартите за всички deployment-и, които ще бъдат разпределени в кластера.
След като проблемите, установени от панела за мониторинг, бъдат разрешени, можете да използвате уеб-хука, за да предотвратите конфигурацията да падне под установения стандарт. Уеб-хукът няма да позволи разгръщането на deployment-и в кластера, чиято конфигурация съдържа съществени отклонения (ниво „грешка”).
Потенциалът на този уеб-хук вдъхновява, обаче, за да бъде признат за готов за production, все още е необходимо старателно тестване. В момента това е експериментална възможност и част от напълно нов Open Source проект. Тъй като той може да попречи на обновленията на deployment-ите, използвайте го с внимание.
Започване
Надявам се, че щом все още четете този анонс, Polaris е инструмент, който може да бъде полезен за вас. Искате ли да опитате Dashboard-a сами? Разгръщането на панела в кластера е много лесно. Той се инсталира с минимални права (само за четене) и всички данни остават вътре. За да разгръщате 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, но историята не свършва тук. В близост са много нови тестове, които бихме искали да добавим, за да разширим функционалността. Също така търсим най-добрия начин за реализиране на правилата за проверка на изключения на ниво пространства от имена или ресурси. Ако желаете да получите допълнителна информация за нашите планове, запознайте се с .
Ако смятате, че Polaris може да бъде полезен — моля, отделете време да го опитате. Ще се радваме на всякакви идеи, отзиви, въпроси или pull request'и. Можете да се свържете с нас на , в или в .
P.S. от преводача
Прочетете също в нашия блог:
- «»;
- «»;
- «»;
- «».
Източник: habr.com
