Бөлісу құралы:


Краткое руководство. Запуск предварительной версии операций Интернета вещей Azure в GitHub Codespaces с помощью K3s

Внимание

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

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

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

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

Остальные краткие руководства в этой комплексной серии создаются для определения примеров ресурсов, конвейеров обработки данных и визуализаций.

Если вы хотите развернуть операции Интернета вещей Azure в локальном кластере, например Служба Azure Kubernetes Edge Essentials или K3s в Ubuntu, см. сведения о развертывании.

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

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

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

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

В этом кратком руководстве вы создадите кластер Kubernetes для получения развертывания Операций Интернета вещей Azure.

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

Перед началом работы подготовьте следующие предварительные требования:

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

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

  1. Создайте кластер Kubernetes и подключите его к Azure Arc для удаленного управления.
  2. Создайте реестр схем.
  3. Разверните операции Интернета вещей Azure в кластере.

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

Операции Интернета вещей Azure должны работать в любом кластере Kubernetes, который соответствует стандартам Cloud Native Computing Foundation (CNCF). Для удобства и скорости в этом кратком руководстве используются пространства кода GitHub для размещения кластера.

Внимание

Пространства кода легко настроить быстро и разорвать их позже, но они не подходят для оценки производительности или тестирования масштабирования. Используйте GitHub Codespaces только для изучения. Сведения о развертывании операций Интернета вещей Azure в рабочем кластере, например AKS Edge Essentials, см. в статье "Подготовка кластера Kubernetes с поддержкой Azure Arc".

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

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

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

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

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

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

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

    Параметр Значение
    SUBSCRIPTION_ID Идентификатор вашей подписки Azure.
    RESOURCE_GROUP Имя новой группы ресурсов Azure, в которой будет создан кластер.
    LOCATION Регион Azure, близкий к вам. Список поддерживаемых регионов см. в разделе "Поддерживаемые регионы".

    Совет

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

    Кроме того, это пространство кода создает CLUSTER_NAME переменную среды, которая устанавливается с именем пространства кода.

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

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

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

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

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

    Используйте этот терминал для выполнения всех команд CLI для управления кластером.

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

  1. В терминале codespace войдите в Azure CLI:

    az login
    

    Совет

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

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

  3. Зарегистрируйте необходимых поставщиков ресурсов в подписке:

    Примечание.

    Этот шаг необходимо выполнить только один раз для каждой подписки. Чтобы зарегистрировать поставщиков ресурсов, необходимо разрешение на /register/action операцию, которая включается в роли участника подписки и владельца. Дополнительные сведения см. в разделе "Поставщики и типы ресурсов Azure".

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

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

    az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Совет

    Значение $CLUSTER_NAME автоматически присваивается имени пространства кода. Замените переменную среды, если вы хотите использовать другое имя.

  6. objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc в клиенте использует и сохраните ее в качестве переменной среды.

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

    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 и Azure Resource Manager.

Создание учетной записи хранения и реестра схем

Для операций Интернета вещей Azure требуется реестр схем в кластере. Реестр схем требует учетной записи хранения Azure, чтобы она синхронизировать сведения о схеме между облаком и edge.

Для создания реестра схем в этом разделе требуются разрешения Microsoft/Authorization/roleAssignments/write на уровне группы ресурсов.

Выполните следующие команды CLI в терминале Codespaces.

  1. Задайте переменные среды для ресурсов, создаваемых в этом разделе.

    Заполнитель Значение
    <STORAGE_ACCOUNT_NAME> Имя вашей учетной записи. Имена учетных записей хранения должны содержать от 3 до 24 символов и содержать только цифры и строчные буквы.
    <SCHEMA_REGISTRY_NAME> Имя реестра схем.
    <SCHEMA_REGISTRY_NAMESPACE> Имя пространства имен реестра схем. Пространство имен однозначно идентифицирует реестр схем в клиенте.
    export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Создайте учетную запись хранения с включенным иерархическим пространством имен.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Создайте реестр схем, который подключается к учетной записи хранения. Эта команда также создает контейнер BLOB-объектов, называемый схемами в учетной записи хранения, если он еще не существует.

    az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
    

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

В этом разделе описана настройка кластера с зависимостями компонентов операций Интернета вещей Azure, а затем развертывание операций Интернета вещей Azure.

Выполните следующие команды CLI в терминале Codespaces.

  1. Инициализация кластера для операций Интернета вещей Azure.

    Совет

    Для init каждого кластера необходимо выполнить только одну команду. Если вы повторно используете кластер, уже развернутый в Azure IoT Operations версии 0.7.0, можно пропустить этот шаг.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id)
    

    Выполнение этой команды может занять несколько минут. Вы можете отслеживать ход выполнения развертывания в терминале.

  2. Развертывание операций Интернета вещей Azure. Эта команда занимает несколько минут:

    az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
    

    Выполнение этой команды может занять несколько минут. Вы можете отслеживать ход выполнения развертывания в терминале.

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

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

Пока развертывание выполняется, интерфейс выполнения ИНТЕРФЕЙСА командной строки показывает этап развертывания, в который вы находитесь. После завершения развертывания можно использовать команды kubectl для наблюдения за изменениями в кластере или, так как кластер включен Arc, можно использовать портал Azure.

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

kubectl get pods -n azure-iot-operations

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

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

  2. Выберите имя экземпляра Операций Интернета вещей Azure.

  3. На странице обзора экземпляра вкладка расширений Arc отображает ресурсы, развернутые в кластере.

    Снимок экрана: экземпляр Операций Интернета вещей Azure в кластере с поддержкой Arc.

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

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

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

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

Если вы хотите удалить развертывание Операций Интернета вещей Azure, но сохранить кластер, используйте команду az iot ops delete :

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

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

Если вы использовали пространства кода для этих кратких руководств, удалите пространство Codespace из GitHub.

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