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


Подготовка кластера Kubernetes с поддержкой Azure Arc

Внимание

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

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

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

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

Действия, описанные в этой статье, подготовят кластер к развертыванию безопасных параметров, который является более длительным, но готовым к работе процессом. Если вы хотите быстро развернуть операции Интернета вещей Azure и запустить пример рабочей нагрузки только с параметрами теста, см . краткое руководство. Запуск предварительной версии операций Интернета вещей Azure в пространствах codespaces GitHub с K3s . Дополнительные сведения о параметрах тестирования и безопасных параметрах см. в разделе "Сведения > о развертывании" "Выбор функций".

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

Корпорация Майкрософт поддерживает Служба Azure Kubernetes Edge Essentials для развертываний в Windows и K3s для развертываний в Ubuntu. Список определенных сочетаний оборудования и программного обеспечения, которые тестируются и проверяются, см. в разделе "Проверенные среды".

Если вы хотите развернуть операции Интернета вещей Azure в решении с несколькими узлами, используйте K3s в Ubuntu.

Чтобы подготовить кластер Kubernetes с поддержкой Azure Arc, вам потребуется:

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

  • Azure CLI версии 2.64.0 или более поздней версии, установленной на компьютере разработки. Используйте az --version для проверки версии и az upgrade обновления при необходимости. Дополнительные сведения см. в статье "Установка Azure CLI".

  • Последняя версия следующих расширений для Azure CLI:

    az extension add --upgrade --name azure-iot-ops
    az extension add --upgrade --name connectedk8s
    
  • Оборудование, соответствующее требованиям к системе:

    • Убедитесь, что компьютер имеет не менее 16 ГБ доступной ОЗУ и 8 доступных виртуальных ЦП, зарезервированных для операций Интернета вещей Azure.
    • Требования к системе Kubernetes с поддержкой Azure Arc.
    • Требования K3s.
  • Если вы собираетесь развернуть операции Интернета вещей Azure в кластере с поддержкой отказоустойчивости, просмотрите требования к оборудованию и хранилищу в разделе "Подготовка Linux для томов Edge".

Создание и включение Arc кластера

В этом разделе приведены инструкции по созданию кластеров в проверенных средах в Linux и Windows.

Чтобы подготовить кластер K3s Kubernetes в Ubuntu:

  1. Установите K3s, следуя инструкциям в кратком руководстве по началу работы K3s.

  2. Убедитесь, что kubectl был установлен в составе K3s. Если нет, следуйте инструкциям по установке kubectl в Linux.

    kubectl version --client
    
  3. Следуйте инструкциям по установке Helm.

  4. Создайте yaml-файл конфигурации K3s в .kube/config:

    mkdir ~/.kube
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. Выполните следующую команду, чтобы увеличить ограничения часов или экземпляров пользователя.

    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
    
  6. Для повышения производительности увеличьте ограничение дескриптора файла:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Настройка кластеров с несколькими узлами для хранилища контейнеров Azure

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

Если вы хотите включить отказоустойчивость во время развертывания, настройте кластеры, выполнив действия, описанные в разделе "Подготовка Linux для томов Edge" с помощью кластера Ubuntu с несколькими узлами.

Включение Arc кластера

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

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

    az login
    

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

  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"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Используйте команду az group create, чтобы создать группу ресурсов в подписке Azure для хранения всех ресурсов:

    Список поддерживаемых в настоящее время регионов Azure см. в разделе "Поддерживаемые регионы".

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

    az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity
    
  6. Получите URL-адрес издателя кластера.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Сохраните выходные данные этой команды для использования в следующих шагах.

  7. Создайте файл конфигурации k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  8. Добавьте в файл следующее содержимое config.yaml , заменив <SERVICE_ACCOUNT_ISSUER> заполнитель URL-адресом издателя кластера.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  9. Сохраните файл и закройте редактор nano.

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

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  11. Используйте команду 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
    
  12. Перезапустите K3s.

    systemctl restart k3s
    

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

Чтобы убедиться, что кластер готов к развертыванию Операций Интернета вещей Azure, можно использовать вспомогающую команду проверяющего узла в расширении операций Интернета вещей Azure для Azure CLI. При запуске на узле кластера эта вспомогательная команда проверяет подключение к конечным точкам Azure Resource Manager и Реестра контейнеров Майкрософт.

az iot ops verify-host

Расширенная конфигурация

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

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

Теперь, когда у вас есть кластер Kubernetes с поддержкой Azure Arc, можно развернуть операции Интернета вещей Azure.