Подготовка кластера Kubernetes с поддержкой Azure Arc
Статья
Внимание
Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время находится в предварительной версии.
Не следует использовать это программное обеспечение предварительной версии в рабочих средах.
Кластер Kubernetes с поддержкой Azure Arc является необходимым условием для развертывания предварительной версии операций Интернета вещей Azure. В этой статье описывается, как подготовить кластер Kubernetes с поддержкой Azure Arc перед развертыванием расширений Azure IoT Operations Preview в кластере Kubernetes для выполнения собственных рабочих нагрузок. В этой статье содержатся рекомендации как для Ubuntu, Windows, так и для облачных сред.
Службы Kubernetes с поддержкой Azure Iot Operations поставляется в виде набора служб Kubernetes с поддержкой Azure Arc и предназначены для использования с проверенными партнерскими продуктами CNCF, соответствующими Arc. В настоящее время корпорация Майкрософт проверила операции Интернета вещей Azure со следующим фиксированным набором инфраструктур и сред:
Среда
Версия
AKS-EE в Windows 11 IoT Enterprise на одном узле AMD Ryzen-7 (8 ядер, 3,3 ГГц), 16 ГБ ОЗУ
AksEdge-K3s-1.26.10-1.6.384.0
K3s в Ubuntu 22.04.2 на одном узле AMD Ryzen-7 (8 ядер, 3,3 ГГц), 16 ГБ ОЗУ
K3s версии 1.28.5
Внимание
Перечисленные ранее среды являются рабочими средами, проверенными корпорацией Майкрософт. Они не единственные среды, в которые могут выполняться операции Интернета вещей Azure. Операции Интернета вещей Azure могут выполняться в любом кластере Kubernetes с поддержкой Arc, который соответствует требованиям к системе Kubernetes с поддержкой Azure Arc.
Необходимые компоненты
Чтобы подготовить кластер Kubernetes с поддержкой Azure Arc, вам потребуется:
Служба Azure Kubernetes Edge Essentials — это локальная реализация Kubernetes Служба Azure Kubernetes (AKS), которая автоматизирует выполнение контейнерных приложений в масштабе. AKS Edge Essentials включает в себя платформу Kubernetes, поддерживаемую корпорацией Майкрософт, которая включает в себя упрощенное распределение Kubernetes с небольшим объемом и простым интерфейсом установки, что упрощает развертывание Kubernetes на компьютере класса или "легко" пограничного оборудования.
Совет
Скрипт AksEdgeQuickStartForAio.ps1 можно использовать для автоматизации действий в этом разделе и подключения кластера.
В окне PowerShell с повышенными привилегиями выполните следующие команды:
Выполните действия, описанные в разделе "Подготовка компьютера к AKS Edge Essentials". Обязательно используйте проверенный установщик, скачанный на предыдущем шаге, а не последнюю версию.
Настройте кластер AKS Edge Essentials на компьютере.
Выполните действия, описанные в разделе "Создание развертывания одного компьютера", но в конце шага 1: параметры конфигурации одного компьютера измените следующие значения в файле aksedge-config.json :
Операции Интернета вещей Azure должны работать в любом кластере Kubernetes, соответствующего CNCF. В настоящее время корпорация Майкрософт поддерживает только K3s в Ubuntu Linux.
Чтобы подготовить кластер Kubernetes в Ubuntu:
Выполните действия, описанные в кратком руководстве по началу работы K3s.
Создайте yaml-файл конфигурации K3s в .kube/config:
Выполните следующую команду, чтобы увеличить ограничения часов или экземпляров пользователя.
echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Для повышения производительности увеличьте ограничение дескриптора файла:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Включение Arc кластера
Чтобы подключить кластер к Azure Arc, выполните приведенные действия.
На компьютере, на котором развернут кластер Kubernetes или терминал пространства кода, войдите в систему с помощью Azure CLI:
az login
Совет
Если вы используете пространство кода GitHub в браузере, az login возвращает ошибку localhost в окне браузера после входа. Чтобы устранить эту проблему, выполните следующие действия:
Откройте пространство кода в классическом приложении VS Code, а затем вернитесь в терминал браузера и повторно выполните команду az login.
Или после получения ошибки localhost в браузере скопируйте URL-адрес из браузера и запустите curl "<URL>" на новой вкладке терминала. Вы увидите ответ JSON с сообщением "Вы вошли в Microsoft Azure!".
Задайте переменные среды для подписки 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>
Задайте контекст подписки Azure для всех команд:
az account set -s $SUBSCRIPTION_ID
Зарегистрируйте необходимых поставщиков ресурсов в подписке:
Примечание.
Этот шаг необходимо выполнить только один раз для каждой подписки.
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"
objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует и сохраните ее в качестве переменной среды.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Используйте команду az connectedk8s enable-features, чтобы включить поддержку пользовательского расположения в кластере. Эта команда использует objectId приложение Идентификатора Microsoft Entra, которое использует служба Azure Arc. Выполните следующую команду на компьютере, где развернут кластер Kubernetes:
Используйте GitHub Codespaces, чтобы попробовать операции Интернета вещей Azure в кластере Kubernetes, не устанавливая ничего на локальном компьютере. Пространство кода azure-Samples/explore-iot-operations предварительно настроено следующим образом:
K3s работает в K3d для упрощенного кластера Kubernetes
Пространства кода легко настроить быстро и разорвать их позже, но они не подходят для оценки производительности или тестирования масштабирования. Используйте GitHub Codespaces только для изучения.
Чтобы приступить к работе с пространством кода, выполните следующее:
Создайте пространство кода в GitHub Codespaces.
Укажите следующие рекомендуемые секреты для пространства кода:
Параметр
Значение
SUBSCRIPTION_ID
Идентификатор вашей подписки Azure.
RESOURCE_GROUP
Имя новой группы ресурсов Azure, в которой будет создан кластер.
LOCATION
Регион Azure, близкий к вам. Следующие регионы поддерживаются в общедоступной предварительной версии: eastus, eastus2, westus2, westus2, westus3, westeurope или northeurope.
Совет
Значения, которые вы предоставляете в качестве секретов на этом шаге, сохраняются в учетной записи GitHub, которая будет использоваться в этих и будущих пространствах кода. Они также автоматически добавляются в качестве переменных среды в терминале пространства кода, и эти переменные среды можно использовать в командах CLI в следующем разделе.
Выберите "Создать новое пространство кода".
Когда пространство кода будет готово, нажмите кнопку меню в левом верхнем углу, а затем нажмите кнопку "Открыть" в VS Code Desktop.
При появлении запроса установите расширение GitHub Codespaces для Visual Studio Code и войдите в GitHub.
В Visual Studio Code выберите "Вид>терминала".
Используйте этот терминал для выполнения всех команд командной строки и КОМАНДНОй строки для управления кластером.
Включение Arc кластера
Чтобы подключить кластер к Azure Arc, выполните приведенные действия.
На компьютере, на котором развернут кластер Kubernetes или терминал пространства кода, войдите в систему с помощью Azure CLI:
az login
Совет
Если вы используете пространство кода GitHub в браузере, az login возвращает ошибку localhost в окне браузера после входа. Чтобы устранить эту проблему, выполните следующие действия:
Откройте пространство кода в классическом приложении VS Code, а затем вернитесь в терминал браузера и повторно выполните команду az login.
Или после получения ошибки localhost в браузере скопируйте URL-адрес из браузера и запустите curl "<URL>" на новой вкладке терминала. Вы увидите ответ JSON с сообщением "Вы вошли в Microsoft Azure!".
Задайте переменные среды для подписки 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>
Задайте контекст подписки Azure для всех команд:
az account set -s $SUBSCRIPTION_ID
Зарегистрируйте необходимых поставщиков ресурсов в подписке:
Примечание.
Этот шаг необходимо выполнить только один раз для каждой подписки.
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"
objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует и сохраните ее в качестве переменной среды.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Используйте команду az connectedk8s enable-features, чтобы включить поддержку пользовательского расположения в кластере. Эта команда использует objectId приложение Идентификатора Microsoft Entra, которое использует служба Azure Arc. Выполните следующую команду на компьютере, где развернут кластер Kubernetes:
Операции Интернета вещей Azure должны работать в любом кластере Kubernetes, соответствующего CNCF. В настоящее время корпорация Майкрософт поддерживает только K3s в Ubuntu Linux.
Чтобы подготовить кластер Kubernetes в Ubuntu:
Выполните действия, описанные в кратком руководстве по началу работы K3s.
Создайте yaml-файл конфигурации K3s в .kube/config:
Выполните следующую команду, чтобы увеличить ограничения часов или экземпляров пользователя.
echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Для повышения производительности увеличьте ограничение дескриптора файла:
echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Включение Arc кластера
Чтобы подключить кластер к Azure Arc, выполните приведенные действия.
На компьютере, на котором развернут кластер Kubernetes или терминал пространства кода, войдите в систему с помощью Azure CLI:
az login
Совет
Если вы используете пространство кода GitHub в браузере, az login возвращает ошибку localhost в окне браузера после входа. Чтобы устранить эту проблему, выполните следующие действия:
Откройте пространство кода в классическом приложении VS Code, а затем вернитесь в терминал браузера и повторно выполните команду az login.
Или после получения ошибки localhost в браузере скопируйте URL-адрес из браузера и запустите curl "<URL>" на новой вкладке терминала. Вы увидите ответ JSON с сообщением "Вы вошли в Microsoft Azure!".
Задайте переменные среды для подписки 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>
Задайте контекст подписки Azure для всех команд:
az account set -s $SUBSCRIPTION_ID
Зарегистрируйте необходимых поставщиков ресурсов в подписке:
Примечание.
Этот шаг необходимо выполнить только один раз для каждой подписки.
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"
objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует и сохраните ее в качестве переменной среды.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Используйте команду az connectedk8s enable-features, чтобы включить поддержку пользовательского расположения в кластере. Эта команда использует objectId приложение Идентификатора Microsoft Entra, которое использует служба Azure Arc. Выполните следующую команду на компьютере, где развернут кластер Kubernetes:
Чтобы убедиться, что кластер готов к развертыванию Операций Интернета вещей Azure, можно использовать вспомогающую команду проверяющего узла в расширении операций Интернета вещей Azure для Azure CLI. При запуске на узле кластера эта вспомогательные команды проверка подключения к конечным точкам Azure Resource Manager и Реестра контейнеров Майкрософт.