Operator
Содержание
Обзор
На основе фреймворка OLM (Operator Lifecycle Manager), OperatorHub предоставляет единый интерфейс для управления установкой, обновлением и жизненным циклом Операторов. Администраторы могут использовать OperatorHub для установки и управления Операторами, обеспечивая полную автоматизацию жизненного цикла приложений Kubernetes, включая создание, обновления и удаление.
OLM в основном состоит из следующих компонентов и CRD:
- OLM (olm-operator): Управляет полным жизненным циклом Операторов, включая установку, обновления и обнаружение конфликтов версий.
- Catalog Operator: Управляет каталогами Операторов и генерирует соответствующие InstallPlan.
- CatalogSource: CRD с областью действия namespace, который управляет источником каталога Операторов и предоставляет метаданные Оператора (например, информацию о версиях, управляемые CRD). Платформа предоставляет 3 стандартных CatalogSource: system, platform и custom. Операторы из system не отображаются в OperatorHub.
- ClusterServiceVersion (CSV): CRD с областью действия namespace, описывающий конкретную версию Оператора, включая необходимые ресурсы, CRD и разрешения.
- Subscription: CRD с областью действия namespace, описывающий подписанный Оператор, его источник, канал получения и стратегию обновления.
- InstallPlan: CRD с областью действия namespace, описывающий фактические операции установки (например, создание Deployments, CRD, RBAC). Оператор будет установлен или обновлен только после одобрения InstallPlan.
Источники Операторов
Для уточнения стратегии жизненного цикла разных Операторов в OperatorHub, платформа предоставляет 5 типов источников:
-
Предоставляется и поддерживается , включая полное управление жизненным циклом, обновления безопасности, техническую поддержку и обязательства по SLA.
-
Curated Отобраны из сообщества с открытым исходным кодом, соответствуют версиям сообщества без модификации кода или перекомпиляции. предоставляет рекомендации и обновления безопасности, но не гарантирует SLA или управление жизненным циклом.
-
Community Предоставлены сообществом с открытым исходным кодом, обновляются периодически для обеспечения возможности установки, но функциональная полнота не гарантируется; SLA и поддержка отсутствуют.
-
Marketplace Предоставлены и поддерживаются сторонними поставщиками, сертифицированными . обеспечивает поддержку интеграции с платформой, а поставщик отвечает за основное сопровождение.
-
Custom Разработаны и загружены пользователем для удовлетворения индивидуальных требований.
Подготовка к установке
Перед установкой Оператора необходимо ознакомиться со следующими ключевыми параметрами:
Режим установки
OLM предоставляет три режима установки:
- Single Namespace
- Multi Namespace
- Cluster
Рекомендуется режим Cluster (AllNamespaces). Платформа в конечном итоге будет обновлена до OLM v1, который поддерживает только режим установки AllNamespaces. Поэтому режимы SingleNamespace и MultiNamespace следует избегать.
Канал обновлений
Если Оператор предоставляет несколько каналов обновлений, можно выбрать, на какой канал подписаться, например, stable.
Стратегия одобрения
Варианты: Automatic или Manual.
- Automatic: OLM автоматически обновит Оператор при выпуске новой версии в выбранном канале.
- Manual: При появлении новой версии OLM создаёт запрос на обновление, который должен быть вручную одобрен администратором кластера перед выполнением обновления.
Примечание: Операторы от поддерживают только режим Manual; в противном случае установка завершится неудачей.
Место установки
Рекомендуется создавать отдельный namespace для каждого Оператора.
Если несколько Операторов используют один namespace, их Subscriptions могут быть объединены в один InstallPlan:
- Если InstallPlan в этом namespace требует ручного одобрения и находится в ожидании, это может блокировать автоматические обновления для других Subscriptions, включённых в тот же InstallPlan.
Установка через веб-консоль
-
Войдите в веб-консоль и переключитесь в режим Administrator.
-
Перейдите в Marketplace > OperatorHub.
-
Если статус Absent:
- Скачайте пакет Оператора из Customer Portal или обратитесь в поддержку.
- Загрузите пакет в целевой кластер с помощью
violet(см. CLI). - На странице Marketplace > Upload Packages переключитесь на вкладку Operator и подтвердите загрузку.
-
Если статус Ready, нажмите Install и следуйте руководству пользователя Оператора.
Установка через YAML
Ниже приведены примеры установки Операторов от (только Manual) и из других источников (Manual или Automatic).
В отличие от плагинов кластера (которые всегда должны устанавливаться в глобальный кластер при использовании YAML), Операторы устанавливаются в целевой кластер, где они должны работать. Убедитесь, что вы подключены к нужному кластеру перед выполнением YAML-манифестов.
Ручной режим
harbor-ce-operator — оператор от , поддерживающий только Manual одобрение.
В ручном режиме, даже при выпуске новой версии, Оператор не обновится автоматически. Необходимо вручную одобрить обновление, чтобы OLM выполнил его.
1. Проверка доступных версий
Пример вывода:
Пояснения к полям:
- CHANNEL: имя канала Оператора
- NAME: имя ресурса CSV
- VERSION: версия Оператора
2. Подтверждение catalogSource
Пример вывода:
Это означает, что harbor-ce-operator взят из catalogSource platform.
3. Создание namespace
4. Создание Subscription
Пояснения к полям:
- annotation
cpaas.io/target-namespaces: рекомендуется оставить пустым; пустое значение означает установку на весь кластер. - .metadata.name: имя Subscription (должно соответствовать DNS, максимум 253 символа).
- .metadata.namespace: namespace для установки Оператора.
- .spec.channel: канал подписки Оператора.
- .spec.installPlanApproval: стратегия одобрения (
ManualилиAutomatic). ЗдесьManualтребует ручного одобрения установки/обновления. - .spec.source: catalogSource Оператора.
- .spec.sourceNamespace: должно быть
cpaas-system, так как все catalogSource, предоставляемые платформой, находятся в этом namespace. - .spec.startingCSV: указывает версию для установки при Manual одобрении; если пусто, по умолчанию берётся последняя версия в канале. Не требуется для Automatic.
5. Проверка статуса Subscription
Ключевые поля вывода:
- .status.state:
UpgradePendingозначает, что Оператор ожидает установки или обновления. - Condition InstallPlanPending = True: ожидание ручного одобрения.
- .status.currentCSV: последняя подписанная версия CSV.
- .status.installPlanRef: связанный InstallPlan, который должен быть одобрен перед установкой.
6. Одобрение InstallPlan
Пример вывода:
Одобрение вручную:
Дождитесь создания CSV; фаза изменится на Succeeded:
Пример вывода:
Пояснения к полям:
- NAME: имя установленного CSV
- DISPLAY: отображаемое имя Оператора
- VERSION: версия Оператора
- REPLACES: CSV, заменённый при обновлении
- PHASE: статус установки (
Succeededозначает успешную установку)
Автоматический режим
clickhouse-operator — оператор из источника, не относящегося к , и его стратегия одобрения может быть установлена в Automatic.
В автоматическом режиме Оператор обновляется автоматически при выпуске новой версии без ручного одобрения.
1. Проверка доступных версий
Пример вывода:
2. Подтверждение catalogSource
Пример вывода:
Это означает, что clickhouse-operator взят из catalogSource platform.
3. Создание namespace
4. Создание Subscription
Пояснения к полям такие же, как в разделе Ручной режим.
5. Проверка статуса Subscription
6. Проверка CSV
Пример вывода:
Установка прошла успешно.
Процесс обновления
Процесс обновления начинается с загрузки новой версии Оператора.
После завершения загрузки подождите примерно 10–15 минут, чтобы платформа синхронизировала информацию о новой версии.
После завершения синхронизации обновления выполняются согласно стратегии, настроенной в Subscription:
-
Если стратегия одобрения Оператора установлена в Automatic, обновление происходит автоматически.
-
Если стратегия установлена в Manual, запрос на обновление должен быть одобрен вручную. Можно выбрать один из следующих способов обновления:
- Пакетное обновление: выполнить обновление на странице Platform Management > Cluster Management > Cluster > Features.
- Индивидуальное обновление: вручную одобрять запросы на обновление в OperatorHub.
Примечание: Пакетное обновление поддерживается только для Операторов, предоставленных .