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

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



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

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

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

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

  1. панели мониторинга, предоставляющей информацию о том, насколько правильно сконфигурированы существующие в кластере deployment'ы;
  2. экспериментального проверочного 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, выполните:

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. от переводчика


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

  • «Расширяем и дополняем Kubernetes (обзор и видео доклада)»;
  • «6 занимательных системных багов при эксплуатации Kubernetes [и их решение]»;
  • «9 лучших практик по обеспечению безопасности в Kubernetes»;
  • «Представляем библиотеку kubedog для слежения за ресурсами Kubernetes».
Источник: https://habr.com/ru/company/flant/blog/454706/


Интересные статьи

Интересные статьи

Занимаетесь разработкой, но еще не знаете, что такое Kubernetes? Не переживайте, мы расскажем: Что такое Kubernetes. Что за сертификаты такие и зачем они нужны. Про выбор варианта ...
Компания «УРУС» попробовала Kubernetes в разных видах: самостоятельный деплоймент на bare metal, в Google Cloud, а затем перенесла свою платформу в облако Mail.ru Cloud Solutions (MCS). Как в...
В этой статье я опишу наш опыт миграции Preply в Kubernetes, как и почему мы это сделали, с какими трудностями столкнулись и какие преимущества приобрели.
Приветствуем вас, Хабр! В свое время мы первыми вывели на российский рынок тему Kafka и продолжаем следить за ее развитием. В частности, нам показалась интересной тема взаимодействия Kafka и K...
Представитель нашего клиента, стек приложений которого обитает в облаке от Microsoft (Azure), обратился с проблемой: с недавнего времени часть запросов некоторых клиентов из Европы стала заве...