Представяме Polaris за поддържане на кластери Kubernetes в здравословно състояние

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

Представяме Polaris за поддържане на кластери Kubernetes в здравословно състояние

С радост представям Polaris — проект с отворен код, който помага за поддържането на "здравето" на кластера Kubernetes. Създадохме Polaris, за да автоматизираме някои от най-добрите практики, използвани в ReactiveOps за осигуряване на безопасна и надеждна работа на клъстери за много клиенти. Време е да отворим изходния код.

Отново и отново ставаме свидетели как, на пръв поглед, незначителни грешки в конфигурацията водят до сериозни проблеми, които пречат на инженерите да спят спокойно. Нещо съвсем просто — например, забравена конфигурация за ресурсни заявки (resource requests) — може да провали автомасштабироването и дори да остави работните натоварвания без ресурси. Ако преди незначителни грешки в конфигурацията водеха до прекъсвания в работата на production, то сега Polaris позволява да се предотвратят напълно.

Polaris помага да се избегнат проблеми с конфигурацията, които влияят на стабилността, надеждността, мащабируемостта и сигурността на вашите приложения. Той позволява лесно идентифициране на недостатъците в конфигурацията на deployments и предотвратяване на бъдещи проблеми. С Polaris можете да спите спокойно, знаейки, че приложенията са разположени с набор от добре проверени стандарти.

Polaris се състои от два основни компонента:

  1. панел за мониторинг, предоставящ информация за правилността на конфигурацията на съществуващите deployments в клъстера;
  2. експериментален проверяващ webhook, който предотвратява разгръщането на deployments, които не отговарят на приетия стандарт.

Polaris Dashboard

Панелът в Polaris е създаден за проста и ясна възможност за виждане на текущото състояние на deployments в Kubernetes и получаване на препоръки за подобрения. Той осигурява цялостен преглед на клъстера, както и разбива резултатите по категории, пространства с имена и deployments.

Представяме Polaris за поддържане на кластери Kubernetes в здравословно състояние

Стандартите, установени в 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 в GitHub.

Това е само началото

Радваме се, че вече сме интегрирали много неща в Polaris, но историята не свършва тук. В близост са много нови тестове, които бихме искали да добавим, за да разширим функционалността. Също така търсим най-добрия начин за реализиране на правилата за проверка на изключения на ниво пространства от имена или ресурси. Ако желаете да получите допълнителна информация за нашите планове, запознайте се с дорожната карта.

Ако смятате, че Polaris може да бъде полезен — моля, отделете време да го опитате. Ще се радваме на всякакви идеи, отзиви, въпроси или pull request'и. Можете да се свържете с нас на сайта на проекта, в GitHub или в Twitter.

P.S. от преводача

Прочетете също в нашия блог:

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster