Создание приложений на основе Operator Backed
Содержание
Понимание Operator Backed ApplicationОсновные возможностиCRD Operator Backed ApplicationСоздание Operator Backed Application через веб-консольУстранение неполадокПонимание Operator Backed Application
Operator — это механизм расширения, построенный на основе Kubernetes Custom Controllers и Custom Resource Definitions (CRD), предназначенный для автоматизации полного жизненного цикла сложных приложений. В рамках Alauda Container Platform приложение Operator Backed Application — это экземпляр приложения, развернутый через прединтегрированные или пользовательские Operators, с управлением рабочих процессов, осуществляемым Operator Lifecycle Manager (OLM). Это включает ключевые процессы, такие как установка, обновления, разрешение зависимостей и контроль доступа.
Основные возможности
-
Автоматизация сложных операций: Operators преодолевают ограничения нативных ресурсов Kubernetes (например, Deployment, StatefulSet) для решения задач управления stateful-приложениями, включая распределенную координацию, постоянное хранение и версионированные обновления с прокатом. Пример: логика, закодированная в Operator, обеспечивает автономные операции для переключения отказоустойчивости кластера базы данных, согласованности данных между узлами и восстановления из резервных копий.
-
Декларативная архитектура, основанная на состоянии: Operators используют декларативные API на основе YAML для определения желаемого состояния приложения (например, spec.replicas: 5). Operators постоянно согласуют фактическое состояние с объявленным, обеспечивая возможности самовосстановления. Глубокая интеграция с GitOps-инструментами (например, Argo CD) гарантирует согласованность конфигураций среды.
-
Интеллектуальное управление жизненным циклом:
-
Пошаговые обновления и откаты: объект Subscription в OLM подписывается на каналы обновлений (например, stable, alpha), инициируя автоматические итерации версий как для Operators, так и для управляемых ими приложений.
-
Разрешение зависимостей: Operators динамически определяют зависимости во время выполнения (например, конкретные драйверы хранения, CNI-плагины) для обеспечения успешного развертывания.
-
-
Стандартизированная интеграция в экосистему: OLM стандартизирует упаковку Operator (Bundle) и каналы распространения, позволяя выполнять развертывание производственных приложений (например, Etcd) из OperatorHub или приватных реестров в один клик. Корпоративные расширения: Alauda Container Platform расширяет политики RBAC и возможности мультикластерного распространения для соответствия требованиям корпоративного уровня.
CRD Operator Backed Application
Этот 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.
Создание Operator Backed Application через веб-консоль
-
В 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 требует асинхронного согласования. Завершение может занять несколько минут в зависимости от состояния кластера.
Устранение неполадок
Если создание ресурса не удалось:
- Проверьте ошибки согласования контроллера:
- Проверьте доступность API-ресурсов:
- Повторите создание после проверки готовности CRD/Operator: