Круиз-контроль: операторы Kubernetes упрощают управление K8s
Операторы — это программные расширения для Kubernetes, упрощающие создание, настройку, управление и эксплуатацию определенных или сложных приложений и их компонентов. Операторы позволяют пользователям управлять пользовательскими ресурсами с помощью API Kubernetes. Это помогает автоматизировать несколько аспектов Kubernetes, включая развертывание, обновление, создание резервных копий и восстановление унифицированным и эффективным способом. Для организаций возможна разработка с нуля собственных пользовательских операторов, конкретно отвечающих их требованиям. Но перед этим рекомендуется получить представление о ключевых возможностях операторов Kubernetes, уже доступных на рынке. В этом сообщении блога описаны пять популярных операторов Kubernetes, о которых должен знать каждый DevOps.
1. Оператор диспетчера RBAC
RBAC Manager — проект с открытым исходным кодом, упрощающий авторизацию в Kubernetes. RBAC Manager используется для управления конфигурацией управления доступом на основе ролей (RBAC) в кластерах AWS и GKE. Этот проект был выпущен Fairwinds для организаций, чтобы управлять своей текущей конфигурацией RBAC и рабочими процессами в своих реализациях Kubernetes.
Вместо непосредственного управления привязками ролей или учетными записями служб RBAC Manager поддерживает привязку пользователей, групп или учетных записей служб к желаемой комбинации ролей или ролей кластера либо на уровне пространства имен, либо на уровне кластера. Эта возможность назначать несколько привязок ролей и привязок ролей кластера с одним настраиваемым ресурсом основана на требованиях безопасности и соответствия, четко упакованных в одно определение RBAC.
Определения RBAC можно использовать для автоматизации нескольких аспектов привязки ролей для эффективного управления кластером. Любые изменения в определениях RBAC могут автоматически инициировать изменения в собственных ресурсах. Диспетчер RBAC удаляет и воссоздает соответствующие привязки ролей на основе полученных запросов. Если определение RBAC удалено, все связанные привязки ролей и привязки ролей кластера также будут автоматически удалены. При таком подходе конфигурацией RBAC можно управлять с помощью рабочего процесса CI, а также можно упростить развертывание.
2. Оператор MongoDB Kubernetes
Оператор MongoDB Kubernetes — это инструмент, который автоматизирует кластеры MongoDB и управляет ими. Это помогает в создании, управлении и настройке экземпляров приложений с отслеживанием состояния. Он обеспечивает эффективный способ развертывания экземпляров MongoDB в различных средах, управляемых из единой плоскости управления Kubernetes.
Он доступен в двух вариантах: Enterprise Edition и Community Edition. Community Edition предоставляет широкий спектр возможностей управления, таких как обновление и понижение версий MongoDB, создание реплик и создание отчетов о состоянии сервера. Версия Enterprise Edition доступна по лицензии Enterprise Advanced, и в дополнение ко всем возможностям она предлагает поддержку со стороны службы поддержки MongoDB.
Оператор Kubernetes помогает управлять и контролировать всю самоуправляемую инфраструктуру, принадлежащую компании. Оператор MongoDB Kubernetes использует API и инструменты Kubernetes для управления событиями жизненного цикла кластера MongoDB. В соответствии с указанными пользователем спецификациями кластера MongoDB оператор сообщает Kubernetes, как настроить кластер. Это включает предоставление хранилища и вычислительной мощности, настройку сетевых подключений и настройку других ресурсов. Совместная работа с MongoDB Cloud Manager или Ops Manager дает возможность дальнейшей настройки кластеров MongoDB. Задачами MongoDB можно управлять с помощью Cloud Manager или Ops Manager после развертывания MongoDB в Kubernetes.
Оператор MongoDB для Kubernetes предоставляет пользователям детальный контроль над своими развертываниями, последовательный мониторинг, централизованную инфраструктуру ведения журналов и многое другое. Он может работать в большинстве дистрибутивов Kubernetes, включая такие реализации, как Amazon Elastic Container Service для Kubernetes, Google Kubernetes Engine, Pivotal Cloud Foundry и RedHat OpenShift.
3. Оператор ArgoCD
Оператор Argo CD — это оператор Kubernetes, который управляет полным жизненным циклом кластеров Argo CD и автоматизирует задачи, необходимые при работе с кластером Argo CD.
Выпущенный под лицензией Apache 2.0, оператор стремится предоставить глубокое понимание среды Argo CD для агрегирования, визуализации и предоставления метрик путем настройки Prometheus и Grafana. Помимо простой настройки и установки компонентов Argo CD, он помогает автоматизировать процесс обновления, резервного копирования и восстановления кластера Argo CD на определенный момент времени или по повторяющемуся расписанию. Это также помогает автоматически масштабировать компоненты Argo CD по мере необходимости, чтобы справиться с изменчивостью спроса.
Оператор Argo CD поддерживает высокую доступность. Он предлагает поддержку управления маршрутами OpenShift и ресурсами Ingress для доступа к ресурсам компакт-диска Argo. Keycloak, программный продукт с открытым исходным кодом, можно использовать в качестве поставщика единого входа для ArgoCD, если оператор развернут на контейнерной платформе OpenShift. Можно также войти в ArgoCD, используя своих пользователей OpenShift, если Keycloak выступает в качестве посредника между ArgoCD и OpenShift.
4. Этот оператор
Istio Operator — это автоматизированный оператор, предоставляющий возможности для установки, обновления и эксплуатации сервисной сетки Istio. Он управляет операционными задачами, такими как установка, обновление и удаление Istio в производственной среде. Istio — это наиболее широко используемый сегодня инструмент Service Mesh, который обеспечивает современные сетевые возможности для облачных приложений.
Оператор Istio был создан с помощью комбинации kubebuilder, фреймворка оператора и нескольких других фреймворков. Ранее Helm использовался для установки и обновления Istio. Теперь инструмент istioctl используется для Istio 1.4 и более поздних версий. Новые функции установки Istio на основе оператора и управления плоскостью управления были перенесены из Helm.
Интерфейс командной строки оператора является бета-версией, которая распространяется среди пользователей как часть istioctl, а контроллер оператора — альфа-версией. Оба используют один и тот же API и кодовую базу для создания манифестов из API. Оператор использует IstioOperator API. Он состоит из трех основных компонентов: MeshConfig, API конфигурации компонентов и устаревший API установки Helm.
Реализация настраиваемых ресурсов оператора Istio может упростить общие административные задачи по установке, обновлению, устранению неполадок и сложным изменениям конфигурации для Istio. Чтобы предотвратить распространенные ошибки, оператор проверяет и проверяет установку и обновление с помощью инструментов. Оператор Istio использует контроллер Kubernetes для постоянного мониторинга этих пользовательских ресурсов, которые применяют соответствующие изменения конфигурации. Он использует определение пользовательского ресурса (CRD) для определения своих пользовательских ресурсов.
5. Оператор Графана
Оператор Grafana основан на операторском SDK. Он используется для установки и управления экземплярами Grafana, информационными панелями, источниками данных и плагинами в Kubernetes и OpenShift. Grafana — популярная платформа с открытым исходным кодом, обычно используемая для анализа и мониторинга данных.
Оператор Grafana доступен на Operator Hub. Он поддерживает несколько функций. Его можно использовать для установки Grafana в пространство имен. Вы можете настроить Grafana через пользовательский ресурс. Это помогает импортировать информационные панели Grafana из того же или других пространств имен. Он также может импортировать источники данных Grafana из того же пространства имен. Кроме того, его можно использовать для установки плагинов.
Оператору Grafana доверяют такие компании и команды, как Red Hat, Continental, Handelsbanken и XENIT. У этого оператора есть выделенный канал MeshConfig в Slack сообщества Kubernetes для быстрого решения проблем. Это облегчает обсуждение событий, ошибок и других вопросов об операторе.
Использование оператора над одним развертыванием Grafana дает несколько преимуществ. Он предоставляет возможность настраивать развертывания Grafana и управлять ими с помощью ресурсов Kubernetes, таких как CRD и configMaps. Кроме того, он поддерживает входящие изменения, чтобы обеспечить поддержку нескольких пространств имен для оператора. Он также позволяет быстро настроить Ingresses, версии продукта Grafana, плагины панели управления Grafana и многие другие. Оператор также позволяет пользователям более эффективно управлять информационными панелями с помощью jsonnet, плагинов и назначения папок, что можно сделать с помощью.yamls. Он также предлагает периодическую сверку ресурсов.
Оператор поддерживает ресурсы Grafana, такие как Grafana, GrafanaDashboard и GrafanaDatasource. Однако он не поддерживает подготовку нескольких каналов (уведомителей) предупреждений Grafana.
Операторы Kubernetes: хороши для множества задач
Операторы от разных поставщиков предоставляют разные уровни контроля и возможности настройки. Эти операторы Kubernetes можно использовать для автоматизации различных задач, таких как масштабирование сложного приложения, управление обновлением версий и управление модулями ядра для узлов со специализированным оборудованием. Они должны соответствовать большинству ваших требований, связанных с автоматизацией Kubernetes, для оптимизации рабочих процессов и снижения нагрузки на операционную группу.