Поделиться через


Архитектура служб Akri

Внимание

Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время находится в предварительной версии. Не следует использовать это программное обеспечение предварительной версии в рабочих средах.

Вам потребуется развернуть новую установку Операций Интернета вещей Azure, когда общедоступная версия станет доступной, вы не сможете обновить предварительную установку.

Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Эта статья поможет вам понять архитектуру служб Akri. После изучения основных компонентов служб Akri их можно использовать для обнаружения устройств и ресурсов и добавления их в кластер Kubernetes.

Службы Akri — это коммерческая версия Akri, управляемая корпорацией Майкрософт, проект с открытым исходным кодом Cloud Native Computing Foundation (CNCF).

Основные компоненты

Службы Akri состоят из следующих пяти компонентов:

  • Конфигурация Akri — это пользовательский ресурс, в котором вы называете устройство. Эта конфигурация сообщает службам Akri, какие устройства следует искать.
  • Экземпляр Akri — это пользовательский ресурс, отслеживающий доступность и использование устройства. Каждый экземпляр Akri представляет конечное устройство.
  • Обработчики обнаружения Akri ищут настроенное устройство и сообщают агенту об обнаруженных устройствах.
  • Агент Akri создает пользовательский ресурс экземпляра Akri.
  • Контроллер Akri помогает использовать настроенное устройство. Контроллер видит каждый экземпляр Akri и развертывает модуль pod брокера, который знает, как подключиться к ресурсу и использовать его.

Схема архитектуры служб Akri.

Пользовательские определения ресурсов

Пользовательское определение ресурсов (CRD) — это расширение API Kubernetes, которое позволяет определять новые типы объектов. Существует два crD служб Akri:

  • Настройка
  • Экземпляр

CrD конфигурации Akri

CrD конфигурации настраивает службы Akri. Вы создаете конфигурации, описывающие ресурсы для обнаружения и модуля pod для развертывания на узле, который обнаруживает ресурс. Дополнительные сведения см. в разделе CRD конфигурации Akri. Схема CRD указывает параметры, которые должны иметь все конфигурации, включая следующие параметры:

  • Протокол обнаружения для поиска ресурсов. Например, ONVIF или udev.
  • spec.capacity определяет максимальное количество узлов, которые могут планировать рабочие нагрузки на этом ресурсе.
  • spec.brokerPodSpec , определяющий модуль pod брокера для планирования для каждого из этих сообщаемых ресурсов.
  • spec.instanceServiceSpec Определяет службу, которая предоставляет одну стабильную конечную точку для доступа к набору модулей pod брокера для каждого отдельного ресурса.
  • spec.configurationServiceSpec Определяет службу, которая предоставляет единую стабильную конечную точку для доступа к набору всех брокеров для всех ресурсов, связанных с конфигурацией.

CrD экземпляра Akri

Каждый экземпляр Akri представляет отдельный ресурс, видимый кластеру. Например, если в кластере есть пять IP-камер, существует пять экземпляров. Экземпляр CRD обеспечивает координацию служб Akri и общий доступ к ресурсам. Эти экземпляры хранят внутреннее состояние и не предназначены для редактирования. Дополнительные сведения см. в статье "Общий доступ к ресурсам".

Агент

Агент Akri реализует подключаемые модули устройств Kubernetes для обнаруженных ресурсов. Агент Akri выполняет следующие задачи:

  • Он следит за изменениями конфигурации, чтобы определить ресурсы для поиска.
  • Он отслеживает доступность ресурсов, чтобы определить, какие ресурсы следует объявлять. В пограничной среде часто изменяется доступность ресурсов.
  • Он сообщает Kubernetes о любых изменениях работоспособности ресурсов и доступности.

Эти задачи, в сочетании с состоянием, хранящимся в экземпляре, позволяют нескольким узлам совместно использовать ресурс при соблюдении ограничений, определенных параметром spec.capacity .

Дополнительные сведения см. в разделе "Подробные сведения об агенте".

Обработчики обнаружения

Обработчик обнаружения находит устройства. Примеры устройства:

  • USB-датчики, подключенные к узлам.
  • Графические процессоры, внедренные в узлы.
  • IP-камеры в сети.

Обработчик обнаружения сообщает всем обнаруженным устройствам агенту. Часто существуют реализации протокола для обнаружения набора устройств, будь то сетевой протокол, например OPC UA или собственный протокол. Обработчики обнаружения реализуют службу, определенную DiscoveryHandler в discovery.proto. Обработчик обнаружения требуется для регистрации в агенте, в котором размещается служба, определенная Registration в discovery.proto.

Дополнительные сведения см. в разделе "Пользовательские обработчики обнаружения".

Контроллер

Целями контроллера Akri являются следующие задачи:

  • Создайте или удалите модули pod и службы, которые обеспечивают доступность ресурсов.
  • Убедитесь, что экземпляры соответствуют состоянию кластера в любой момент.

Для достижения этих целей контроллер:

  • Следит за изменениями экземпляра, чтобы определить, какие модули pod и службы должны существовать.
  • Следит за узлами, содержащимися в экземплярах, которые больше не существуют.

Эти задачи позволяют контроллеру Akri гарантировать, что брокеры протоколов и службы Kubernetes выполняются на всех узлах и предоставляют нужные ресурсы, учитывая ограничения, определенные параметром spec.capacity .

Дополнительные сведения см. в документации по контроллеру.