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


Создание и настройка кластера 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

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

  1. Откройте окно PowerShell с повышенными привилегиями и измените каталог на рабочую папку.

  2. objectId Получите приложение Идентификатора Microsoft Entra, которое служба Azure Arc использует в клиенте. Выполните следующую команду точно так же, как записано, без изменения значения GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Выполните следующие команды:

    $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
    
  4. [Необязательно] шлюз 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 равным идентификатору шлюза, сохраненному на предыдущем шаге.
  5. Выполните следующую команду и замените значения заполнителей своими сведениями:

    .\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

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