Прим. прев.: Оригинал на този текст е написан от 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-a, оптимизирайки я за конкретни работни натоварвания.
В рамките на публикацията за Polaris решихме не само да представим инструмента, но и подробно да опишем тестовете, включени в него. Всяка проверка включва връзка към съответната документация, в която се обяснява защо смятаме, че това е важно, и се предоставят връзки към допълнителни ресурси по темата.
Polaris Webhook
Докато панелът за мониторинг предоставя преглед на текущата конфигурация на deployment-ите, уеб-хукът осигурява спазването на стандартите за всички deployment-и, които ще бъдат внедрени в кластера.
След като проблемите, открити с панела за мониторинг, бъдат отстранени, можете да използвате уеб-хука, за да предотвратите конфигурацията да спадне под установения стандарт. Уеб-хукът няма да позволи разгръщането на deployment-и в кластера, чиято конфигурация съдържа съществени отклонения (нивото на 'грешка').
Потенциалът на този уеб-хук е вдъхновяващ, но за да бъде признат за готов за production, ще е необходимо внимателно тестване. В момента това е експериментална възможност и част от съвсем нов проект с отворен код. Поради това, че може да попречи на обновленията на deployment-ите, използвайте го с внимание.
Започване на работа
Надявам се, че тъй като все още четете този анонс, Polaris е инструмент, който може да бъде полезен за вас. Искате ли да опитате Dashboard сами? Разгръщането на панела в кластера е много лесно. Той се инсталира с минимални права (само за четене) и всички данни остават вътре. За да разгръщате 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
