Operator — это механизм расширения, построенный на основе Kubernetes Custom Controllers и Custom Resource Definitions (CRD), предназначенный для автоматизации полного жизненного цикла управления сложными приложениями. В рамках Alauda Container Platform, Operator Backed Application — это экземпляр приложения, созданный с помощью прединтегрированных или пользовательских Operators, с рабочими процессами, управляемыми Operator Lifecycle Manager (OLM). Это включает ключевые процессы, такие как установка, обновления, разрешение зависимостей и контроль доступа.
Автоматизация сложных операций: Operators преодолевают ограничения нативных ресурсов Kubernetes (например, Deployment, StatefulSet) для решения задач управления stateful-приложениями, включая распределённую координацию, постоянное хранилище и версионированные rolling updates. Пример: логика, закодированная в Operator, обеспечивает автономные операции для переключения отказоустойчивости кластера базы данных, согласованности данных между узлами и восстановления из резервных копий.
Декларативная архитектура, управляемая состоянием: Operators используют декларативные API на основе YAML для определения желаемого состояния приложения (например, spec.replicas: 5). Operators постоянно согласуют фактическое состояние с объявленным, обеспечивая возможности самовосстановления. Глубокая интеграция с GitOps-инструментами (например, Argo CD) гарантирует согласованность конфигураций среды.
Интеллектуальное управление жизненным циклом:
Rolling Updates и Rollback: объект Subscription в OLM подписывается на каналы обновлений (например, stable, alpha), инициируя автоматические итерации версий как для Operators, так и для управляемых ими приложений.
Разрешение зависимостей: Operators динамически определяют зависимости во время выполнения (например, конкретные драйверы хранения, CNI-плагины) для обеспечения успешного развертывания.
Стандартизированная интеграция в экосистему: OLM стандартизирует упаковку Operator (Bundle) и каналы распространения, позволяя развертывать производственные приложения (например, Etcd) из OperatorHub или приватных реестров одним кликом. Корпоративные расширения: Alauda Container Platform расширяет политики RBAC и возможности мультикластерного распространения для соответствия требованиям корпоративной безопасности.
Этот Operator разработан и реализован с полным соблюдением стандартов и решений сообщества с открытым исходным кодом. Его Custom Resource Definition (CRD) продуманно включает лучшие практики и архитектурные паттерны, широко используемые в экосистеме Kubernetes. Референсные материалы по дизайну CRD:
CatalogSource: Определяет источник пакетов Operator, доступных в кластере, таких как OperatorHub или пользовательские репозитории Operator.
ClusterServiceVersion (CSV): Основное определение метаданных Operator, содержащее имя, версию, предоставляемые API, необходимые разрешения, стратегию установки и подробную информацию о жизненном цикле.
InstallPlan: Фактический план выполнения установки Operator, автоматически создаваемый OLM на основе Subscription и CSV, с детализацией шагов по созданию Operator и его зависимых ресурсов.
OperatorGroup: Определяет набор целевых namespace, в которых Operator будет предоставлять свои сервисы и согласовывать ресурсы, а также ограничивает область действия разрешений RBAC Operator.
Subscription: Используется для объявления конкретного Operator, который пользователь хочет установить и отслеживать в кластере, включая имя Operator, целевой канал (например, stable, alpha) и стратегию обновления. OLM использует Subscription для создания и управления установкой и обновлениями Operator.
В Container Platform перейдите в Applications > Applications в левой боковой панели.
Нажмите Create.
Выберите способ создания Create from Catalog.
Выберите экземпляр Operator-Backed и настройте Custom Resource Parameters. Выберите управляемый Operator-ом экземпляр приложения и настройте его спецификации Custom Resource (CR) в манифесте CR, включая:
spec.resources.limits
(ограничения ресурсов на уровне контейнера).spec.resourceQuota
(политики квот, определённые Operator). Другие параметры CR, такие как spec.replicas
, spec.storage.className
и т.д.Нажмите Create.
Веб-консоль перейдёт на страницу Applications > Operator Backed Apps.
Примечание: Процесс создания ресурсов Kubernetes требует асинхронного согласования. Завершение может занять несколько минут в зависимости от состояния кластера.
Если создание ресурса не удалось: