Operator Lifecycle Manager#

Operator Lifecycle Manager - инструмент, который упрощает управление жизненным циклом операторов в кластере.

Operator Lifecycle Manager призван автоматизировать управление жизненным циклом операторов, предоставляя механизмы установки, обновления и управления RBAC операторами в кластере. Позволяет облегчить процесс управления приложениями в кластере, особенно теми, которые используют операторы для автоматизации операций.

Operator Lifecycle Manager предоставляет следующую функциональность:

  1. Обновление по воздуху и каталоги (Over-the-Air Updates and Catalogs):

    • Operator Lifecycle Manager обеспечивает механизмы обновления для автоматического поддержания актуальности приложений. Это позволяет операторам получать и устанавливать обновления автоматически, без необходимости ручного вмешательства;

    • каталоги предоставляют централизованный ресурс, из которого можно получить информацию о доступных операторах и их версиях. Operator Lifecycle Manager использует каталоги для предоставления пользователю списка операторов, которые могут быть установлены и обновлены.

  2. Модель зависимостей (Dependency Model): операторы могут выражать зависимости от платформы и от других операторов с помощью формата упаковки, предоставляемого Operator Lifecycle Manager. Это позволяет операторам точно определить требования к окружению и другим операторам, от которых они зависят, и гарантировать их работоспособность в течение всего жизненного цикла.

  3. Обнаружение (Discoverability): Operator Lifecycle Manager делает операторы и их сервисы доступными для пользователей кластера для выбора и установки. Пользователи могут легко найти и установить операторы, которые им необходимы, благодаря механизмам поиска и предоставления информации о доступных операторах.

  4. Стабильность кластера (Cluster Stability): Operator Lifecycle Manager предотвращает установку конфликтующих операторов, которые могут владеть одними и теми же API. Это гарантирует стабильность работы кластера и предотвращает возможные конфликты между операторами, которые могут нарушить нормальную работу приложений.

  5. Декларативное управление интерфейсом пользователя (Declarative UI Controls): Operator Lifecycle Manager позволяет операторам вести себя как управляемые сервисы, предоставляя API для взаимодействия с ними. Это обеспечивает удобный и единообразный способ взаимодействия с операторами через командную строку или графические интерфейсы пользователя.

Operator Lifecycle Manager тесно связан с catalogs и packageserver:

  1. Catalogs: представляют собой репозитории с определениями приложений и CRD (Custom Resource Definitions), которые используются для управления операторами. Operator Lifecycle Manager использует информацию из этих каталогов для установки, обновления и управления зависимостями операторов. Каталоги содержат пакеты, которые предоставляются различными каналами (например, alpha, beta, stable), чтобы пользователи могли выбрать необходимую им версию оператора.

  2. Package Server: представляет собой компонент, который предоставляет пакеты с определениями операторов и их зависимостями. Обычно служит в качестве хранилища для каталогов и обеспечивает доступ к ним через различные протоколы, такие как HTTP или gRPC. Operator Lifecycle Manager использует пакетные серверы для загрузки пакетов с определениями операторов и их зависимостей, чтобы пользователи могли установить необходимые им операторы.

Основные команды и флаги для работы с Operator Lifecycle Manager:

  1. olm install <имя_operator>: команда для установки оператора из каталога:

    • --namespace <namespace>: пространство имен, в которое устанавливается оператор;

    • --catalog <имя_catalog>: каталог, из которого следует установить оператор;

    • --version <version>: версия оператора для установки;

    • --from <source>: источник для установки оператора (например, пакетный сервер или URL).

  2. olm update <имя_operator>: команда для обновления оператора до последней доступной версии:

    • --namespace <namespace>: пространство имен, в котором находится оператор для обновления.

  3. olm delete <имя_operator>: команда для удаления оператора из кластера:

    • --namespace <namespace>: пространство имен, в котором находится оператор для удаления.

  4. olm catalog list: команда показывает список доступных каталогов.

  5. olm catalog add <имя_catalog> <source>: команда для добавления нового каталога с указанным именем и источником.

  6. olm catalog remove <имя_catalog>: команда для удаления каталога из Operator Lifecycle Manager.

  7. olm catalog update <имя_catalog>: команда для обновления информации о каталоге.

  8. olm describe <тип_object> <имя_object>: команда показывает подробную информацию об объекте Operator Lifecycle Manager (например, операторе).

  9. olm version: команда выводит информацию о версии Operator Lifecycle Manager.

  10. olm unsubscribe <имя_subscription>: команда показывает текущий статус Operator Lifecycle Manager в кластере.