- PVSM.RU - https://www.pvsm.ru -

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

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

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

Рад представить Polaris [1] — проект с открытым исходным кодом, который помогает поддерживать «здоровье» кластера Kubernetes. Мы создали Polaris для автоматизации некоторых из лучших практик, используемых в ReactiveOps для поддержания безопасной и надежной работы кластеров у большого числа клиентов. Пришло время открыть исходный код.

Раз за разом мы становились свидетелями того, как, казалось бы, незначительные огрехи в конфигурации приводили к серьезным проблемам, что мешали инженерам спать по ночам. Что-то совсем простое — например, упущенная по забывчивости конфигурация запросов на ресурсы (resource requests) — могло поломать автомасштабирование и даже привести к тому, что рабочие нагрузки оставались без ресурсов. Если раньше незначительные оплошности в конфигурации приводили к перебоям в работе production, то теперь Polaris позволяет их полностью предотвратить.

Polaris помогает избежать проблем с конфигурацией, которые влияют на стабильность, надежность, масштабируемость и безопасность ваших приложений. Он позволяет легко выявлять недостатки в конфигурации deployment'ов и предотвращать будущие проблемы. С Polaris можно крепко спать, зная, что приложения развернуты с помощью набора хорошо проверенных стандартов.

Polaris состоит из двух ключевых компонентов:

  1. панели мониторинга, предоставляющей информацию о том, насколько правильно сконфигурированы существующие в кластере deployment'ы;
  2. экспериментального проверочного webhook’а, предотвращающего от выкатывания deployment’ов, что не удовлетворяют принятому стандарту.

Polaris Dashboard

Панель в Polaris была создана для простой и наглядной возможности увидеть текущее состояние deployment'ов в Kubernetes и получить рекомендации по улучшениям. Она обеспечивает полный обзор кластера, а также разбивает результаты по категориям, пространствам имен и deployment'ам.

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

Стандарты, установленные в 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 [2].

Это только начало

Мы рады тому, что уже удалось встроить в Polaris, но на этом история не заканчивается. На подходе множество новых тестов, которые хотелось бы добавить, чтобы расширить функциональность. Также мы ищем лучший способ реализации в правилах проверки исключений на уровне пространств имен или ресурсов. Если хотите получить дополнительную информацию о наших планах, ознакомьтесь с дорожной картой [3].

Если у вас сложилось впечатление, что Polaris может быть полезен — пожалуйста, найдите время, чтобы пробовать его. Мы с радостью примем любые идеи, отзывы, вопросы или pull request'ы. Связаться с нами можно на сайте проекта [4], в GitHub [2] или в Twitter [5].

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

Читайте также в нашем блоге:

Автор: Smetankk

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/sistemnoe-administrirovanie/319779

Ссылки в тексте:

[1] Polaris: https://www.reactiveops.com/polaris

[2] репозитория Polaris на GitHub: https://github.com/reactiveops/polaris

[3] дорожной картой: https://github.com/reactiveops/polaris/blob/master/ROADMAP.md

[4] сайте проекта: https://reactiveops.com/polaris

[5] Twitter: https://twitter.com/reactiveops

[6] Расширяем и дополняем Kubernetes (обзор и видео доклада): https://habr.com/ru/company/flant/blog/449096/

[7] 6 занимательных системных багов при эксплуатации Kubernetes [и их решение]: https://habr.com/ru/company/flant/blog/443458/

[8] 9 лучших практик по обеспечению безопасности в Kubernetes: https://habr.com/ru/company/flant/blog/436300/

[9] Представляем библиотеку kubedog для слежения за ресурсами Kubernetes: https://habr.com/ru/company/flant/blog/434160/

[10] Источник: https://habr.com/ru/post/454706/?utm_campaign=454706