Краткое руководство. Развертывание предварительной версии операций Интернета вещей Azure в кластере Kubernetes с поддержкой Arc

Внимание

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

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

В этом кратком руководстве вы развернете набор служб Интернета вещей в кластер Kubernetes с поддержкой Azure Arc, чтобы удаленно управлять устройствами и рабочими нагрузками. Операции Интернета вещей Azure — это набор цифровых операций служб, включающий Предварительную версию Azure IoT Orchestrator. В этом кратком руководстве описано, как использовать Orchestrator для развертывания этих служб в кластере Kubernetes. В конце краткого руководства у вас есть кластер, который можно управлять из облака, который создает примеры данных для использования в следующих кратких руководствах.

К службам, развернутым в этом кратком руководстве, относятся:

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

Подготовка к работе

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

Для лучшего нового взаимодействия с пользователем рекомендуется использовать бесплатную учетную запись Azure, чтобы у вас были разрешения владельца над ресурсами в этих кратких руководствах. Мы также рекомендуем использовать GitHub Codespaces в качестве виртуальной среды, в которой можно быстро развертывать ресурсы и выполнять команды без установки новых средств на собственных компьютерах. Дополнительные сведения об этих параметрах см. в предварительных требованиях.

Когда вы будете готовы узнать больше о отдельных ролях и задачах, инструкции предоставляют более конкретные сведения о реализации и разрешениях.

Необходимые компоненты

Просмотрите предварительные требования на основе среды, используемой для размещения кластера Kubernetes.

В этом кратком руководстве мы рекомендуем использовать виртуальную среду (GitHub Codespaces) как быстрый способ приступить к работе без установки новых средств.

В рамках этого краткого руководства вы создадите кластер в GitHub Codespaces, AKS Edge Essentials или K3s в Ubuntu Linux. Если вы хотите повторно запустить это краткое руководство с кластером, в который уже развернуты операции Интернета вещей Azure, см. действия, описанные в статье "Очистка ресурсов " для удаления операций Интернета вещей Azure перед продолжением.

Какая проблема будет решена?

Операции Интернета вещей Azure — это набор служб данных, выполняемых в кластерах Kubernetes. Эти кластеры будут управляться удаленно из облака и безопасно взаимодействовать с облачными ресурсами и конечными точками. Мы устраняем эти проблемы со следующими задачами в этом кратком руководстве.

  1. Подключение кластер Kubernetes в Azure Arc для удаленного управления.
  2. Создайте Azure Key Vault для управления секретами для кластера.
  3. Настройте кластер с хранилищем секретов и субъектом-службой для взаимодействия с облачными ресурсами.
  4. Разверните операции Интернета вещей Azure в кластере.

Подключение кластер Kubernetes в Azure Arc

Операции Интернета вещей Azure должны работать в любом кластере Kubernetes, который соответствует стандартам Cloud Native Computing Foundation (CNCF). В этом кратком руководстве используйте GitHub Codespaces, AKS Edge Essentials в Windows или K3s в Ubuntu Linux.

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

Используйте GitHub Codespaces, чтобы попробовать операции Интернета вещей Azure в кластере Kubernetes, не устанавливая ничего на локальном компьютере. Пространство кода azure-Samples/explore-iot-operations предварительно настроено следующим образом:

  • K3s работает в K3d для упрощенного кластера Kubernetes
  • Azure CLI
  • Kubectl для управления ресурсами Kubernetes
  • Другие полезные инструменты, такие как Helm и k9s

Внимание

Пространства кода легко настроить быстро и разорвать их позже, но они не подходят для оценки производительности или тестирования масштабирования. Используйте GitHub Codespaces только для изучения.

Чтобы приступить к работе с пространством кода, выполните следующее:

  1. Создайте пространство кода в GitHub Codespaces.

    Создание пространства кода explore-iot-operations

  2. Укажите следующие рекомендуемые секреты для пространства кода:

    Параметр Значение
    SUBSCRIPTION_ID Идентификатор вашей подписки Azure.
    RESOURCE_GROUP Имя новой группы ресурсов Azure, в которой будет создан кластер.
    LOCATION Регион Azure, близкий к вам. Следующие регионы поддерживаются в общедоступной предварительной версии: eastus, eastus2, westus2, westus2, westus3, westeurope или northeurope.

    Совет

    Значения, которые вы предоставляете в качестве секретов на этом шаге, сохраняются в учетной записи GitHub, которая будет использоваться в этих и будущих пространствах кода. Они также автоматически добавляются в качестве переменных среды в терминале пространства кода, и эти переменные среды можно использовать в командах CLI в следующем разделе.

  3. Выберите "Создать новое пространство кода".

  4. Когда пространство кода будет готово, нажмите кнопку меню в левом верхнем углу, а затем нажмите кнопку "Открыть" в VS Code Desktop.

    Открытие рабочего стола VS Code

  5. При появлении запроса установите расширение GitHub Codespaces для Visual Studio Code и войдите в GitHub.

  6. В Visual Studio Code выберите "Вид>терминала".

    Используйте этот терминал для выполнения всех команд командной строки и КОМАНДНОй строки для управления кластером.

Чтобы подключить кластер к Azure Arc, выполните приведенные действия.

  1. На компьютере, на котором развернут кластер Kubernetes или терминал пространства кода, войдите в систему с помощью Azure CLI:

    az login
    

    Совет

    Если вы используете пространство кода GitHub в браузере, az login возвращает ошибку localhost в окне браузера после входа. Чтобы устранить эту проблему, выполните следующие действия:

    • Откройте пространство кода в классическом приложении VS Code, а затем вернитесь в терминал браузера и повторно выполните команду az login.
    • Или после получения ошибки localhost в браузере скопируйте URL-адрес из браузера и запустите curl "<URL>" на новой вкладке терминала. Вы увидите ответ JSON с сообщением "Вы вошли в Microsoft Azure!".
  2. Задайте переменные среды для подписки Azure, расположения, новой группы ресурсов и имени кластера, как оно будет отображаться в группе ресурсов.

    Если вы используете GitHub Codespaces и настраиваете эти значения в качестве рекомендуемых секретов при создании пространства кода, пропустите этот шаг. Пространство кода автоматически задает имя кластера таким же, как имя пространства кода.

    # Id of the subscription where your resource group and Arc-enabled cluster will be created
    export SUBSCRIPTION_ID=<SUBSCRIPTION_ID>
    
    # Azure region where the created resource group will be located
    # Currently supported regions: "eastus", "eastus2", "westus", "westus2", "westus3", "westeurope", or "northeurope"
    export LOCATION=<REGION>
    
    # Name of a new resource group to create which will hold the Arc-enabled cluster and Azure IoT Operations resources
    export RESOURCE_GROUP=<NEW_RESOURCE_GROUP_NAME>
    
    # Name of the Arc-enabled cluster to create in your resource group
    export CLUSTER_NAME=<NEW_CLUSTER_NAME>
    
  3. Задайте контекст подписки Azure для всех команд:

    az account set -s $SUBSCRIPTION_ID
    
  4. Зарегистрируйте необходимых поставщиков ресурсов в подписке:

    Примечание.

    Этот шаг необходимо выполнить только один раз для каждой подписки.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  5. Используйте команду az group create, чтобы создать группу ресурсов в подписке Azure для хранения всех ресурсов:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  6. Используйте команду az connectedk8s connect, чтобы включить кластер Kubernetes и управлять им в составе группы ресурсов Azure:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  7. objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует и сохраните ее в качестве переменной среды.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  8. Используйте команду az connectedk8s enable-features, чтобы включить поддержку пользовательского расположения в кластере. Эта команда использует objectId приложение Идентификатора Microsoft Entra, которое использует служба Azure Arc. Выполните следующую команду на компьютере, где развернут кластер Kubernetes:

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Проверка кластера

Используйте расширение операций Интернета вещей Azure для Azure CLI, чтобы убедиться, что узел кластера настроен правильно для развертывания с помощью команды проверки узла на узле кластера:

az iot ops verify-host

Эта вспомогательная команда проверка подключения к конечным точкам Azure Resource Manager и Реестра контейнеров Майкрософт.

Развертывание предварительной версии операций Интернета вещей Azure

В этом разделе вы используете команду az iot ops init для настройки кластера, чтобы обеспечить безопасное взаимодействие с компонентами Операций Интернета вещей Azure и хранилищем ключей, а затем развернуть операции Интернета вещей Azure.

  1. Создайте хранилище ключей. Замените параметры заполнителя собственными сведениями.

    Заполнитель Значение
    RESOURCE_GROUP Имя группы ресурсов, содержащей подключенный кластер.
    KEYVAULT_NAME Имя нового хранилища ключей.
    az keyvault create --enable-rbac-authorization false --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP
    

    Совет

    Вы можете использовать существующее хранилище ключей для секретов, но убедитесь, что для модели разрешений задана политика доступа к Хранилищу. Этот параметр можно проверка в портал Azure в разделе конфигурации Access существующего хранилища ключей. Или используйте команду az keyvault show, чтобы проверка, которая enableRbacAuthorization имеет значение false.

  2. Выполните следующую команду CLI на компьютере разработки или в терминале пространства кода. Замените параметры заполнителя собственными сведениями.

    Заполнитель Значение
    CLUSTER_NAME Имя подключенного кластера.
    RESOURCE_GROUP Имя группы ресурсов, содержащей подключенный кластер.
    KEYVAULT_NAME имя хранилища ключей.
    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name $KEYVAULT_NAME -o tsv --query id)
    

    Если вы получаете сообщение об ошибке, в которой говорится, что устройство должно быть управляемо для доступа к ресурсу, запустите az login еще раз и убедитесь, что вы войдете в интерактивный режим с помощью браузера.

    Совет

    Если вы ранее выполнили az iot ops init , он автоматически создал регистрацию приложения в идентификаторе Microsoft Entra ID. Вы можете повторно использовать эту регистрацию, а не создавать новую каждый раз. Чтобы использовать существующую регистрацию приложения, добавьте необязательный параметр --sp-app-id <APPLICATION_CLIENT_ID>.

Просмотр ресурсов в кластере

Пока развертывание выполняется, вы можете наблюдать за тем, как ресурсы применяются к кластеру. Команды kubectl можно использовать для наблюдения за изменениями в кластере или, так как кластер включен Arc, можно использовать портал Azure.

Чтобы просмотреть модули pod в кластере, выполните следующую команду:

kubectl get pods -n azure-iot-operations

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

Чтобы просмотреть кластер на портал Azure, выполните следующие действия.

  1. В портал Azure перейдите к группе ресурсов, содержащей кластер.

  2. В обзоре группы ресурсов выберите имя кластера.

  3. В кластере выберите расширения в разделе Параметры меню.

    Снимок экрана: развернутые расширения в кластере с поддержкой Arc.

    Вы можете увидеть, что кластер выполняет расширения типа microsoft.iotoperations.x, который является именем группы для всех компонентов Операций Интернета вещей Azure и службы оркестрации. Эти расширения имеют уникальный суффикс, определяющий развертывание. На предыдущем снимке экрана этот суффикс — -z2ewy.

    Существует также расширение akvsecretsprovider. Это расширение является поставщиком секретов, настроенным и установленным в кластере az iot ops init с помощью команды. Вы можете удалить и переустановить компоненты Операций Интернета вещей Azure во время тестирования, но сохранить расширение поставщика секретов в кластере.

  4. Запишите полное имя расширения mq -.... Это имя используется в следующих кратких руководствах.

Как мы решили проблему?

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

Очистка ресурсов

Если вы продолжаете работу со следующим кратким руководством, сохраните все ресурсы.

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

  1. В группе ресурсов в портал Azure выберите кластер.

  2. На странице ресурсов кластера выберите "Расширения".

  3. Выберите все расширения типа microsoft.iotoperations.x и microsoft.deviceregistry.assets, а затем нажмите кнопку "Удалить". Не нужно удалять расширение поставщика секретов:

    Снимок экрана: расширения для удаления.

  4. Вернитесь в группу ресурсов и выберите ресурс пользовательского расположения, а затем нажмите кнопку "Удалить".

Если вы хотите удалить все ресурсы, созданные для этого краткого руководства, удалите кластер Kubernetes, где вы развернули операции Интернета вещей Azure и удалите группу ресурсов Azure, содержащую кластер.

Следующий шаг