Ключ-АСТРОМ Operator: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «== Operator == Ключ-АСТРОМ '''Operator''' управляет автоматизированным развертыванием, настройкой и...»)
 
(нет различий)

Текущая версия на 16:03, 14 ноября 2025

Operator

Ключ-АСТРОМ Operator управляет автоматизированным развертыванием, настройкой и жизненным циклом компонентов Ключ-АСТРОМ. Он использует специальные ресурсы, такие как DynaKube и EdgeConnect.

Функциональность Ключ-АСТРОМ Operator привязана к настраиваемым ресурсам. Эти ресурсы определяют, какие функции включены. При создании настраиваемого ресурса Ключ-АСТРОМ Operator запускает начальную сверку, чтобы гарантировать достижение желаемого состояния. Процесс сверки регулярно обнаруживает изменения в кластере и соответствующим образом корректирует состояние. Частота сверки снижается после первоначального развертывания, поскольку обычно вносится меньше изменений.

При запуске Ключ-АСТРОМ Operator регистрирует вебхук в Kubernetes API. В ходе каждого цикла согласования Ключ-АСТРОМ Operator проверяет изменения в пользовательских ресурсах, чтобы:

  • Обновить статус пользовательских ресурсов
  • Убедиться, что первоначальный запуск управляемых компонентов соответствует требованиям
  • Управлять рабочими нагрузками
  • Регистрировать компоненты на сервере Ключ-АСТРОМ

Эта функциональность ограничена пространством имен, в котором развернут Ключ-АСТРОМ Operator.

Пространства имен, отслеживаемые Ключ-АСТРОМ Operator, следует настраивать следующим образом:

  • Пометьте пространства имен в соответствии с namespaceSelector, чтобы веб-перехватчик мог использовать модули.
  • Убедитесь, что в внедряемых пространствах имен существуют предварительные условия для внедрения.

Требования к ресурсам

Конфигурация по умолчанию:

  • 1 реплика на кластер

Обычно достаточно одной реплики Ключ-АСТРОМ Operator, поскольку происходит выбор лидера. Дополнительные реплики активируются только после завершения текущего лидера и выбора нового.

Контейнер Ключ-АСТРОМ Operator имеет предопределенные запросы и ограничения на использование процессора и памяти. Чтобы настроить эти значения во время развертывания с помощью Helm, отредактируйте файл values.yaml.

Конфигурация ресурсов с помощью Helm

operator:

  requests:

    cpu: 50m

    memory: 64Mi

  limits:

    cpu: 100m

    memory: 128Mi

Разрешения и привилегии

Полный список ресурсов, к которым обращается Ключ-АСТРОМ Operator, доступен в документации по безопасности. Сетевой трафик и его характеристики описаны в документации по сетевому трафику .

Вебхук

Веб-хук Ключ-АСТРОМ изменяет определения Pod для внедрения модулей кода Ключ-АСТРОМ для обеспечения видимости приложения. Он также проверяет определения DynaKube и преобразует DynaKubes со старыми версиями API.

Конфигурации веб-хуков управляются Ключ-АСТРОМ Operator и периодически обновляются. Эти обновления гарантируют бесперебойную работу Kubernetes API с веб-хуком.

Ключевые функции

  • Изменения Pod. Веб-перехватчик изменяет Pod, изменяя их определения и включая необходимые метаданные для обеспечения наблюдаемости приложения.
    • Присоединяет контейнер Init для загрузки (в случае, если драйвер CSI не используется) и настраивает модули кода при запуске Pod.
    • Присоединяет тома CSI, если они настроены, чтобы драйвер CSI мог управлять созданием томов.
    • Изменяет определения Pod для обогащения метаданных.
  • Мутация пространства имен. Веб-перехватчик изменяет пространства имен, чтобы обеспечить мониторинг модулей внутри этих пространств имен.
    • Добавляет метки к пространствам имен, чтобы веб-перехватчик мог прослушивать события CREATE Pod. Конфигурации веб-перехватчиков поддерживают только статический селектор пространств имён. Требуемая метка добавляется к вновь создаваемым пространствам имён.
  • Проверка конфигурации
    • Проверьте, содержат ли пользовательские ресурсы, такие как DynaKubes, допустимую конфигурацию при их создании или обновлении.
      • Различная проверка в зависимости от полей: некоторые из них обязательны, а некоторые должны соответствовать более конкретным правилам.
    • Предоставлять полезные предупреждения/сообщения об ошибках в случае неудачной проверки Проверьте параметры DynaKube и параметры EdgeConnect для получения более подробной информации по каждому полю!
  • Конвертация между версиями
    • Обеспечивает совместимость между различными версиями определений пользовательских ресурсов.
    • Преобразует старые версии пользовательского ресурса в версию хранилища, понятную Ключ-АСТРОМ Operator.

Требования к ресурсам

Конфигурация по умолчанию:

  • 2 реплики на кластер (можно масштабировать для повышения доступности)

В контейнере Ключ-АСТРОМ Webhook определены запросы и ограничения по умолчанию. Если вы хотите задать другие запросы или ограничения ресурсов, это можно сделать при развертывании Ключ-АСТРОМ Operator с помощью Helm.

Конфигурация ресурсов с помощью Helm

Чтобы установить ограничения ресурсов, измените values.yaml. См. конфигурацию по умолчанию ниже.

webhook:

  requests:

    cpu: 300m

    memory: 128Mi

  limits:

    cpu: 300m

    memory: 128Mi

Разрешения и привилегии

Полный список ресурсов, к которым обращается вебхук, можно найти в разделе Безопасность Ключ-АСТРОМ Operator.

CSI-драйвер

Драйвер Ключ-АСТРОМ Operator CSI предоставляет модули кода Ключ-АСТРОМ для модулей приложений, минимизируя при этом использование хранилища и нагрузку на среду Ключ-АСТРОМ. Кроме того, он предоставляет записываемое томное хранилище для ЕдиногоАгента, использующее временные локальные тома.

  • Для конфигураций applicationMonitoring он предоставляет необходимый двоичный файл ЕдиногоАгента для мониторинга приложений в модулях на каждом узле в качестве монтирования только для чтения.
  • Для конфигураций hostMonitoring он предоставляет доступную для записи папку для конфигураций ЕдиногоАгента, когда используется файловая система хоста, доступная только для чтения.
  • Для cloudNativeFullStack, он обеспечивает оба вышеперечисленных преимущества.

Минимизирует количество загрузок, загружая модули кода один раз на каждый узел и сохраняя их в файловой системе узла.

  • При использовании драйвера CSI внедрение 100 модулей, распределенных по трем узлам, приведет всего к 3 загрузкам модулей кода.
  • Без драйвера CSI каждому Pod пришлось бы загружать собственные модули кода, поэтому внедрение 100 Pod привело бы к загрузке 100 модулей кода.

Минимизирует использование хранилища за счет сохранения модулей кода в файловой системе узла и создания монтирования OverlayFs для каждого внедренного Pod.

  • При использовании драйвера CSI внедрение 100 модулей, распределенных по трем узлам, приведет к хранению всего лишь 3 модулей кода.
  • Без драйвера CSI каждый Pod хранит модуль кода, поэтому внедрение 100 Pod приведет к хранению 100 модулей кода.

Требования к ресурсам

Конфигурация по умолчанию:

  • 1 реплика на узел (развертывается через DaemonSet)

У поставщика драйвера CSI нет предопределенных ограничений ресурсов. Однако, если вы хотите установить ограничения ресурсов или изменить их для других контейнеров драйвера CSI, это можно сделать при развертывании Ключ-АСТРОМ Operator с помощью Helm.

Конфигурация ресурсов с помощью Helm

Чтобы установить ограничения ресурсов для контейнера provisioner, измените values.yaml. См. пример конфигурации ниже.

  • Увеличьте загрузку ЦП для ускорения распаковки и установки модулей кода (важно для быстрого запуска и инициализации узла)
  • Увеличение памяти не влияет на производительность
provisioner:

  resources:

    requests:

      cpu: 300m

      memory: 100Mi

    limits:

      cpu: 300m

      memory: 100Mi

server:

  resources:

    requests:

      cpu: 50m

      memory: 100Mi

    limits:

      cpu: 50m

      memory: 100Mi

Разрешения и привилегии

Драйверу Ключ-АСТРОМ Operator CSI требуются повышенные права для создания и управления монтированиями в хост-системе. В частности, разрешение mountPropagation: Bidirection необходимо для тома, где драйвер CSI хранит модули кода. Это разрешение доступно только для привилегированных контейнеров.