Создание и настройка кластера AKS Edge Essentials, который может запускать операции Интернета вещей Azure
Служба Azure Kubernetes (AKS) Edge Essentials является одной из поддерживаемых платформ кластеров для Операции Интернета вещей Azure. Вы можете использовать AKS Edge Essentials для создания кластера Kubernetes под управлением Майкрософт и развертывания операций Интернета вещей Azure в качестве рабочей нагрузки. В этой статье описаны шаги по выполнению скрипта, создающего кластер AKS Edge Essentials Kubernetes с необходимыми конфигурациями для операций Интернета вещей Azure, а затем подключает этот кластер к Azure Arc.
Примечание.
Операции Интернета вещей Azure поддерживают AKS Edge Essentials при развертывании на одном компьютере. Развертывание кластеров на нескольких компьютерах является экспериментальной функцией.
Предварительные требования для запуска скрипта
Чтобы запустить скрипт, вам потребуется следующее:
Подписка Azure с ролью владельца или сочетанием ролей участника и администратора доступа пользователей. Вы можете проверить уровень доступа, перейдя к подписке, выбрав управление доступом (IAM) в левой части портал Azure, а затем выберите "Просмотреть доступ". Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Azure CLI версии 2.64.0 или более поздней версии, установленной на компьютере разработки. Используйте
az --version
для проверки версии иaz upgrade
обновления при необходимости. Дополнительные сведения см. в статье "Установка Azure CLI".Установите последнюю версию расширений connectedk8s для Azure CLI:
az extension add --upgrade --name connectedk8s
Требования к оборудованию: убедитесь, что компьютер имеет не менее 16 ГБ доступной ОЗУ, 4 доступных виртуальных ЦП и 52 ГБ свободного места на диске, зарезервированного для операций Интернета вещей Azure.
Создание кластера с поддержкой Arc
Скрипт AksEdgeQuickStartForAio.ps1 автоматизирует процесс создания и подключения кластера и является рекомендуемым путем развертывания операций Интернета вещей Azure в AKS Edge Essentials. Скрипт выполняет следующие задачи:
- Скачайте последнюю версию MSI AKS Edge Essentials из этого репозитория.
- Устанавливает AKS Edge Essentials и развертывает и создает на компьютере Windows один компьютер Kubernetes.
- Подключается к подписке Azure, создает группу ресурсов, если она еще не существует, и подключает кластер к Arc для создания кластера Kubernetes с поддержкой Arc.
- Включает функцию пользовательского расположения в кластере Kubernetes с поддержкой Arc.
- Включает функцию федерации удостоверений рабочей нагрузки в кластере Kubernetes с поддержкой Arc.
- Развертывает подготовку локального пути.
- Настраивает правила брандмауэра на хост-компьютере Windows для брокера MQTT.
- На виртуальной машине Linux, которая служит узлом уровня управления Kubernetes:
- Настраивает прокси-сервер порта для диапазона IP-адресов службы Kubernetes по умолчанию 10.96.0.0/28.
- Настраивает правила таблицы IP:
sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT
Чтобы запустить скрипт быстрого запуска, выполните следующие действия.
Откройте окно PowerShell с повышенными привилегиями и измените каталог на рабочую папку.
objectId
Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует в клиенте. Выполните следующую команду точно так же, как записано, без изменения значения GUID.az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
Выполните следующие команды:
$url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1" Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1 Unblock-File .\AksEdgeQuickStartForAio.ps1 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
[Необязательно] шлюз Azure Arc в предварительной версии позволяет подключить инфраструктуру к Azure Arc, используя только 7 конечных точек. Чтобы использовать шлюз Azure Arc с операциями Azure IoT в AKS Edge Essentials:
- Выполните шаг 1, чтобы создать ресурс шлюза Arc.
- Обратите внимание на URL-адреса , перечисленные в шаге 2, чтобы добавить их в
proxy-skip-range
на шаге 2. - Следуйте шагу 3a в документации по шлюзу Arc и сохраните идентификатор шлюза.
- В AksEdgeQuickStartForAio.ps1найдите определение
$aideuserConfig
. Установите значениеGatewayResourceId
равным идентификатору шлюза, сохраненному на предыдущем шаге.
Выполните следующую команду и замените значения заполнителей своими сведениями:
.\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>" -Location "<LOCATION>" -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
Заполнитель Значение SUBSCRIPTION_ID Идентификатор подписки Azure. Если вы не знаете идентификатор подписки, см. статью "Найти подписку Azure". TENANT_ID Идентификатор клиента Microsoft Entra. Если вы не знаете идентификатор клиента, см. статью "Поиск клиента Microsoft Entra". RESOURCE_GROUP_NAME Имя существующей группы ресурсов или имя создаваемой группы ресурсов. Для каждой группы ресурсов поддерживается только один экземпляр операций Интернета вещей Azure. LOCATION Регион Azure, близкий к вам. Список поддерживаемых регионов Azure IoT Operations см. в разделе "Поддерживаемые регионы". CLUSTER_NAME Имя создаваемого кластера. ARC_APP_OBJECT_ID Значение идентификатора объекта, полученное на шаге 2. При запуске AksEdgeQuickStartForAio.ps1можно включить другие необязательные флаги. Необязательные флаги приведены следующим образом:
Необязательные флаги Значение enableWorkloadIdentity
(предварительная версия)Включен по умолчанию. Хотя вы можете отказаться от развертывания кластера, его нельзя включить после создания кластера. Федерация удостоверенностей рабочей нагрузки позволяет настроить управляемое удостоверение, назначенное пользователем, или регистрацию приложения в Microsoft Entra ID для доверия токенам от внешних поставщиков удостоверений (IdP), таких как Kubernetes. Сведения о настройке федерации удостоверения рабочих нагрузок см. в этой статье. proxy-https
Укажите значение прокси-сервера: https://<proxy-server-ip-address>:<port>
.proxy-http
Укажите значение прокси-сервера: http://<proxy-server-ip-address>:<port>
.proxy-skip-range
Укажите диапазон пропуска прокси-сервера: <excludedIP>
,<excludedCIDR>
. Если указанhttp(s)_proxy
,no_proxy
также следует обновить доlocalhost,127.0.0.0/8,192.168.0.0/16,172.17.0.0/16,10.42.0.0/16,10.43.0.0/16,10.96.0.0/12,10.244.0.0/16,.svc,169.254.169.254
.Эти флаги можно добавить, как показано в следующем примере:
.\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>" -Location "<LOCATION>" -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>" --enableWorkloadIdentity:false
Важный
Предварительные версии функций доступны на основе самообслуживания и требуют активации пользователем. Предварительные версии предоставляются "как есть" и "как доступны", и они исключены из соглашений об уровне обслуживания и ограниченной гарантии. Предварительные версии AKS Edge Essentials частично охватываются поддержкой пользователей в рамках имеющихся возможностей.
При возникновении проблем во время развертывания; Например, если компьютер перезагружается в рамках этого процесса, снова запустите набор команд.
Выполните следующие команды, чтобы убедиться, что развертывание выполнено успешно:
Import-Module AksEdge Get-AksEdgeDeploymentInfo
В выходных
Get-AksEdgeDeploymentInfo
данных команды вы увидите, что состояние Arc кластера подключено.
Проверка кластера
Чтобы убедиться, что кластер Kubernetes включен в Azure Arc, выполните следующую команду:
kubectl get deployments,pods -n azure-arc
Результат должен быть аналогичным приведенному ниже:
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/clusterconnect-agent 1/1 1 1 10m
deployment.apps/extension-manager 1/1 1 1 10m
deployment.apps/clusteridentityoperator 1/1 1 1 10m
deployment.apps/controller-manager 1/1 1 1 10m
deployment.apps/flux-logs-agent 1/1 1 1 10m
deployment.apps/cluster-metadata-operator 1/1 1 1 10m
deployment.apps/extension-events-collector 1/1 1 1 10m
deployment.apps/config-agent 1/1 1 1 10m
deployment.apps/kube-aad-proxy 1/1 1 1 10m
deployment.apps/resource-sync-agent 1/1 1 1 10m
deployment.apps/metrics-agent 1/1 1 1 10m
NAME READY STATUS RESTARTS AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst 3/3 Running 0 10m
pod/extension-manager-65b8f7f4cb-tp7pp 3/3 Running 0 10m
pod/clusteridentityoperator-6d64fdb886-p5m25 2/2 Running 0 10m
pod/controller-manager-567c9647db-qkprs 2/2 Running 0 10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df 1/1 Running 0 10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z 2/2 Running 0 10m
pod/extension-events-collector-58dfb78cb5-vxbzq 2/2 Running 0 10m
pod/config-agent-7579f558d9-5jnwq 2/2 Running 0 10m
pod/kube-aad-proxy-56d9f754d8-9gthm 2/2 Running 0 10m
pod/resource-sync-agent-769bb66b79-z9n46 2/2 Running 0 10m
pod/metrics-agent-6588f97dc-455j8 2/2 Running 0 10m