Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кластер Kubernetes с поддержкой Azure Arc является обязательным условием для развертывания операций Интернета вещей Azure. В этой статье описывается, как подготовить кластер перед развертыванием операций Интернета вещей Azure. В этой статье содержатся рекомендации по Ubuntu, Windows, Azure Local и Tanzu Kubernetes Grid (TKG).
Действия, описанные в этой статье, подготовят ваш кластер к развертыванию настроек безопасности, что является более длительным процессом, но готовым к использованию в производственных условиях. Если вы хотите быстро развернуть операции Azure IoT и запустить пример рабочей нагрузки только с тестовыми параметрами, см. Краткое руководство: Запуск операций Azure IoT в пространствах GitHub Codespaces с K3s. Дополнительные сведения о параметрах тестирования и безопасных параметрах см. в разделе "Сведения > о развертывании" "Выбор функций".
Пререквизиты
Корпорация Майкрософт поддерживает Azure Kubernetes Service (AKS) Edge Essentials для развертываний на Windows, K3s для развертываний на Ubuntu, развертывания AKS в локальной среде Azure и выпуск Tanzu Kubernetes (TKr) в TKG. Если вы хотите развернуть операции Интернета вещей Azure в решении с несколькими узлами, используйте K3s в Ubuntu.
Чтобы подготовить кластер Kubernetes с поддержкой Azure Arc, вам потребуется:
Подписка Azure с ролью владельца или сочетанием ролей участника и администратора доступа пользователей. Вы можете проверить уровень доступа, перейдя к подписке, выбрав управление доступом (IAM) в левой части портал Azure, а затем выберите "Просмотреть доступ". Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Группа ресурсов Azure. Для каждой группы ресурсов поддерживается только один экземпляр Azure IoT Operations. Чтобы создать новую группу ресурсов, используйте команду az group create . Список поддерживаемых в настоящее время регионов Azure см. в разделе "Поддерживаемые регионы".
az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
Azure CLI версии 2.62.0 или более поздней версии, установленной на компьютере кластера. Используйте
az --version
для проверки версии иaz upgrade
обновления при необходимости. Дополнительные сведения см. в статье "Установка Azure CLI".Последняя версия расширения connectedk8s для Azure CLI:
az extension add --upgrade --name connectedk8s
Оборудование, соответствующее требованиям к системе:
- Поддерживаемые среды для операций Интернета вещей Azure.
- Требования к системе Kubernetes с поддержкой Azure Arc.
- Требования K3s.
Если вы собираетесь развернуть Azure IoT Operations в кластере с несколькими узлами с поддержкой отказоустойчивости, просмотрите требования к оборудованию и хранилищу в Подготовка Linux для Edge томов.
Создайте кластер и подключите его к Arc
В этом разделе приведены инструкции по созданию кластеров в проверенных средах в Linux и Windows.
Чтобы подготовить кластер K3s Kubernetes в Ubuntu:
Создайте кластер K3s с одним узлом или несколькими узлами. Примеры см. в кратком руководстве по началу работы K3s или связанных проектах K3s.
Убедитесь, что kubectl был установлен в составе K3s. Если нет, следуйте инструкциям по установке kubectl в Linux.
kubectl version --client
Следуйте инструкциям по установке Helm.
Создайте конфигурационный файл 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
Выполните следующую команду, чтобы увеличить лимиты наблюдений/экземпляров пользователя.
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, чтобы его можно было удаленно управлять.
На устройстве с
kubectl
доступом к кластеру войдите в Azure CLI, используя учетную запись пользователя Microsoft Entra, который обладает необходимыми ролями в подписке Azure.az login
Если в любой момент вы получите сообщение об ошибке, в которой говорится, что устройство должно быть управляемо для доступа к ресурсу, запустите
az login
еще раз и убедитесь, что вы войдете в интерактивный режим с помощью браузера.После входа Azure CLI отображает все подписки и указывает подписку по умолчанию со звездочкой
*
. Чтобы продолжить подписку по умолчанию, выберитеEnter
. В противном случае введите номер подписки Azure, которую вы хотите использовать.Зарегистрируйте необходимых поставщиков ресурсов в подписке.
Примечание.
Этот шаг необходимо выполнить только один раз для каждой подписки. Чтобы зарегистрировать поставщиков ресурсов, необходимо разрешение на выполнение операции
/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"
Используйте команду 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 --disable-auto-upgrade
Чтобы предотвратить незапланированные обновления Azure Arc и системные расширения Arc, которые операции Интернета вещей Azure используют в качестве зависимостей, эта команда отключает автоматическое обновление. Вместо этого вручную обновите агентов по мере необходимости.
Внимание
Если в вашей среде используется прокси-сервер или шлюз Azure Arc, измените команду с помощью сведений о прокси-сервере
az connectedk8s connect
:- Следуйте инструкциям в разделе "Подключение с использованием исходящего прокси-сервера" или "Подключение кластеров Kubernetes к Azure Arc с помощью шлюза Azure Arc".
- Добавьте
169.254.169.254
в--proxy-skip-range
параметрaz connectedk8s connect
команды. Реестр устройств Azure использует эту локальную конечную точку для получения маркеров доступа для авторизации.
Операции Интернета вещей Azure не поддерживают прокси-серверы, для которых требуется доверенный сертификат.
Получите URL-адрес эмитента кластера.
az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Сохраните выходные данные этой команды для использования в следующих шагах.
Создайте файл конфигурации k3s.
sudo nano /etc/rancher/k3s/config.yaml
Добавьте в файл следующее содержимое
config.yaml
, заменив<SERVICE_ACCOUNT_ISSUER>
заполнитель URL-адресом издателя кластера.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Сохраните файл и закройте редактор nano.
Подготовьтесь к включению службы Azure Arc, настраиваемого расположения в кластере Arc, получив идентификатор объекта пользовательского расположения и сохранив его в качестве переменной среды, OBJECT_ID. Для успешного выполнения команды необходимо войти в Azure CLI с учетной записью пользователя Microsoft Entra, а не с учетной записью сервисного принципала. Выполните следующую команду точно так же, как записано, без изменения значения GUID.
export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Примечание.
Если вы получите сообщение об ошибке: "Не удается получить oid из приложения custom-locations. Продолжайте без включения этой функции. Недостаточно привилегий для завершения операции", то субъект-служба может не получить необходимые разрешения для получения идентификатора объекта пользовательского расположения. Войдите в Azure CLI с учетной записью пользователя Microsoft Entra, которая соответствует предварительным требованиям. Дополнительные сведения см. в статье "Создание пользовательских расположений и управление ими".
Используйте команду az connectedk8s enable-features, чтобы включить функцию пользовательского расположения в кластере Arc. Эта команда использует переменную среды OBJECT_ID, сохраненную на предыдущем шаге, чтобы задать значение параметра custom-locations-oid. Выполните следующую команду на компьютере, где развернут кластер Kubernetes:
az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Перезапустите K3s.
systemctl restart k3s
Настройка кластеров с несколькими узлами для хранилища контейнеров Azure
В кластерах Ubuntu с количеством узлов не менее трёх при развертывании Операций Интернета вещей Azure у вас есть возможность включить отказоустойчивость для хранилища с включенным хранилищем контейнеров Azure, поддерживаемым Azure Arc.
Если вы хотите включить отказоустойчивость во время развертывания, настройте кластеры, выполнив действия, описанные в разделе "Подготовка Linux для томов Edge" с помощью кластера Ubuntu с несколькими узлами.
Если вы используете кластер в дистрибутиве Kubernetes, отличном от k3s, ознакомьтесь с руководством по подготовке Linux с другими платформами.
Расширенная конфигурация
На этом этапе, когда у вас есть кластер Kubernetes с поддержкой Azure Arc, но прежде чем развернуть операции Azure IoT, вы можете захотеть настроить свой кластер для сложных сценариев.
- Если вы хотите включить функции наблюдения в кластере, выполните действия, описанные в разделе "Развертывание ресурсов наблюдаемости" и настройка журналов.
- Если вы хотите настроить собственный издатель сертификатов в кластере, выполните действия, описанные в разделе "Управление > сертификатами".
Следующие шаги
Теперь, когда у вас есть кластер Kubernetes с поддержкой Azure Arc, можно развернуть операции Интернета вещей Azure.