Operator Lifecycle Manager#
Operator Lifecycle Manager - инструмент, который упрощает управление жизненным циклом операторов в кластере.
Operator Lifecycle Manager призван автоматизировать управление жизненным циклом операторов, предоставляя механизмы установки, обновления и управления RBAC операторами в кластере. Позволяет облегчить процесс управления приложениями в кластере, особенно теми, которые используют операторы для автоматизации операций.
Operator Lifecycle Manager предоставляет следующую функциональность:
Обновление по воздуху и каталоги (Over-the-Air Updates and Catalogs):
Operator Lifecycle Manager обеспечивает механизмы обновления для автоматического поддержания актуальности приложений. Это позволяет операторам получать и устанавливать обновления автоматически, без необходимости ручного вмешательства;
каталоги предоставляют централизованный ресурс, из которого можно получить информацию о доступных операторах и их версиях. Operator Lifecycle Manager использует каталоги для предоставления пользователю списка операторов, которые могут быть установлены и обновлены.
Модель зависимостей (Dependency Model): операторы могут выражать зависимости от платформы и от других операторов с помощью формата упаковки, предоставляемого Operator Lifecycle Manager. Это позволяет операторам точно определить требования к окружению и другим операторам, от которых они зависят, и гарантировать их работоспособность в течение всего жизненного цикла.
Обнаружение (Discoverability): Operator Lifecycle Manager делает операторы и их сервисы доступными для пользователей кластера для выбора и установки. Пользователи могут легко найти и установить операторы, которые им необходимы, благодаря механизмам поиска и предоставления информации о доступных операторах.
Стабильность кластера (Cluster Stability): Operator Lifecycle Manager предотвращает установку конфликтующих операторов, которые могут владеть одними и теми же API. Это гарантирует стабильность работы кластера и предотвращает возможные конфликты между операторами, которые могут нарушить нормальную работу приложений.
Декларативное управление интерфейсом пользователя (Declarative UI Controls): Operator Lifecycle Manager позволяет операторам вести себя как управляемые сервисы, предоставляя API для взаимодействия с ними. Это обеспечивает удобный и единообразный способ взаимодействия с операторами через командную строку или графические интерфейсы пользователя.
Operator Lifecycle Manager тесно связан с catalogs и packageserver:
Catalogs: представляют собой репозитории с определениями приложений и CRD (Custom Resource Definitions), которые используются для управления операторами. Operator Lifecycle Manager использует информацию из этих каталогов для установки, обновления и управления зависимостями операторов. Каталоги содержат пакеты, которые предоставляются различными каналами (например, alpha, beta, stable), чтобы пользователи могли выбрать необходимую им версию оператора.
Package Server: представляет собой компонент, который предоставляет пакеты с определениями операторов и их зависимостями. Обычно служит в качестве хранилища для каталогов и обеспечивает доступ к ним через различные протоколы, такие как HTTP или gRPC. Operator Lifecycle Manager использует пакетные серверы для загрузки пакетов с определениями операторов и их зависимостей, чтобы пользователи могли установить необходимые им операторы.
Основные команды и флаги для работы с Operator Lifecycle Manager:
olm install <имя_operator>: команда для установки оператора из каталога:--namespace <namespace>: пространство имен, в которое устанавливается оператор;--catalog <имя_catalog>: каталог, из которого следует установить оператор;--version <version>: версия оператора для установки;--from <source>: источник для установки оператора (например, пакетный сервер или URL).
olm update <имя_operator>: команда для обновления оператора до последней доступной версии:--namespace <namespace>: пространство имен, в котором находится оператор для обновления.
olm delete <имя_operator>: команда для удаления оператора из кластера:--namespace <namespace>: пространство имен, в котором находится оператор для удаления.
olm catalog list: команда показывает список доступных каталогов.olm catalog add <имя_catalog> <source>: команда для добавления нового каталога с указанным именем и источником.olm catalog remove <имя_catalog>: команда для удаления каталога из Operator Lifecycle Manager.olm catalog update <имя_catalog>: команда для обновления информации о каталоге.olm describe <тип_object> <имя_object>: команда показывает подробную информацию об объекте Operator Lifecycle Manager (например, операторе).olm version: команда выводит информацию о версии Operator Lifecycle Manager.olm unsubscribe <имя_subscription>: команда показывает текущий статус Operator Lifecycle Manager в кластере.