Известные проблемы: Операции Интернета вещей Azure
В этой статье перечислены известные проблемы для операций Интернета вещей Azure.
Проблемы с развертыванием и удалением
Если вы предпочитаете не обновлять кластер без явного согласия, при включении кластера следует отключить обновления Arc. Это связано с тем, что некоторые системные расширения автоматически обновляются агентом Arc. Чтобы отключить обновления, включите
--disable-auto-upgrade
флаг в командуaz connectedk8s connect
.Если развертывание завершается ошибкой
"code":"LinkedAuthorizationFailed"
, это означает, что у вас нет разрешений Microsoft.Authorization/roleAssignments/write в группе ресурсов, содержащей кластер.Непосредственное редактирование пользовательских ресурсов SecretProviderClass и SecretSync в кластере Kubernetes может нарушить поток секретов в операциях Интернета вещей Azure. Для любых операций, связанных с секретами, используйте пользовательский интерфейс взаимодействия с операциями.
Во время и после развертывания операций Интернета вещей Azure могут появиться предупреждения о
Unable to retrieve some image pull secrets (regcred)
журналах и событиях Kubernetes. Эти предупреждения ожидаются и не влияют на развертывание и использование операций Интернета вещей Azure.Если развертывание завершается сбоем с сообщением
Error occurred while creating custom resources needed by system extensions
, возникла известная ссора, которая будет исправлена в будущем выпуске. Чтобы удалить операции Интернета вещей Azure из кластера, используйте команду az iot ops delete с флагом--include-deps
. Когда операции Интернета вещей Azure и его зависимости удаляются из кластера, повторите развертывание.При развертывании операций Интернета вещей Azure в GitHub Codespaces завершение работы и перезапуск пространства Codespace приводит к возникновению
This codespace is currently running in recovery mode due to a configuration error.
проблемы. В настоящее время для проблемы нет обходного решения. Если вам нужен кластер, поддерживающий завершение работы и перезапуск, выберите один из вариантов в разделе "Подготовка кластера Kubernetes с поддержкой Azure Arc".
Брокер MQTT
Иногда использование памяти брокера MQTT может стать неожиданно высоким из-за повторных попыток смены внутреннего сертификата. Это приводит к ошибкам, таким как "не удалось подключить задачу отправки трассировки к диагностика конечной точке службы" в журналах. Ожидается, что проблема будет устранена в следующем обновлении исправлений. В то же время в качестве обходного решения перезапустите каждый модуль pod брокера по одному (включая диагностическую службу, пробу и службу проверки подлинности), чтобы убедиться, что каждая серверная часть восстанавливается перед переходом. Кроме того, повторно разверните операции Интернета вещей Azure с более высокой продолжительностью внутреннего сертификата или более поздней.
1500h
{ "advanced": { "internalCerts": { "duration": "1500h", "renewBefore": "1h", "privateKey": { "algorithm": "Ec256", "rotationPolicy": "Always" } } } }
Ресурсы брокера MQTT, созданные в кластере с помощью Kubernetes, не отображаются портал Azure. Это ожидается, так как управление компонентами Операций Интернета вещей Azure с помощью Kubernetes находится в предварительной версии, а синхронизация ресурсов из края в облако в настоящее время не поддерживается.
Вы не можете обновить ресурс брокера после первоначального развертывания. Невозможно внести изменения конфигурации в кратность, профиль памяти или буфер диска.
В качестве обходного решения при развертывании операций Интернета вещей Azure с помощью команды az iot ops init можно включить
--broker-config-file
параметр с файлом конфигурации JSON для брокера MQTT. Дополнительные сведения см. в разделе Advanced MQTT Broker config and Configure core MQTT Broker settings.Если брокер имеет только одну серверную реплику (
backendChain.redundancyFactor
имеет значение 1), обновление Операций Интернета вещей Azure может завершиться ошибкой. Обновление операций Интернета вещей Azure только в том случае, если у брокера есть несколько серверных реплик.Несмотря на то, что диагностика брокера MQTT создает данные телеметрии по своей собственной теме, при подписке
#
на раздел вы по-прежнему можете получать сообщения от самостоятельного тестирования.Развертывание может завершиться ошибкой, если для кластера задано слишком большое количество значений профиля памяти. Чтобы устранить эту проблему, задайте количество
1
реплик и используйте меньший профиль памяти, напримерlow
.Не публикуйте и не подписывайтесь на разделы проверки диагностики, которые начинаются с
azedge/dmqtt/selftest
. Публикация или подписка на эти разделы могут повлиять на проверку или самопроверочные проверки, что приводит к недопустимым результатам. Недопустимые результаты могут быть перечислены в журналах диагностики, метрик или панелях мониторинга. Например, может появиться ошибка проверки пути проблемы для события пробы с типом операции "Опубликовать" в журналах проверки диагностика пробы.
Управление сетью с уровнем Интернета вещей Azure (предварительная версия)
Если служба управления многоуровневой сетью не получает IP-адрес при запуске K3S на узле Ubuntu, переустановите K3S без контроллера входящего трафика с помощью
--disable=traefik
параметра.curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Дополнительные сведения см. в разделе "Сеть" | K3s.
Если запросы DNS не разрешаются в ожидаемый IP-адрес при использовании службы CoreDNS , работающей на уровне дочерней сети, обновите до Ubuntu 22.04 и переустановите K3S.
Соединитель для OPC UA
Определения ресурсов реестра устройств Azure позволяют использовать числа в разделе атрибутов, а руководитель OPC ожидает только строки.
При добавлении нового ресурса с новым профилем конечной точки ресурса в брокер OPC UA и активации перенастройки развертывание
opc.tcp
модулей pod изменяется для размещения новых подключений секретов для имени пользователя и пароля. Если новое подключение завершается сбоем по какой-то причине, модуль pod не перезапускается, поэтому старый поток для правильно настроенных ресурсов останавливается.Имя субъекта и универсальный код ресурса (URI) приложения должны точно соответствовать предоставленному сертификату. Так как нет перекрестной проверки, любые ошибки могут привести к отклонению сертификата приложения сервераМИ OPC UA.
Предоставление нового недопустимого сертификата экземпляра приложения OPC UA после успешной установки AIO может привести к ошибкам подключения. Чтобы устранить проблему, удалите экземпляры операций Интернета вещей Azure и перезапустите установку.
Симулятор OPC PLC
Если вы создаете конечную точку актива для симулятора OPC PLC, но симулятор OPC PLC не отправляет данные брокеру MQTT, выполните следующую команду, чтобы задать autoAcceptUntrustedServerCertificates=true
для конечной точки ресурса:
ENDPOINT_NAME=<name-of-you-endpoint-here>
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
-n azure-iot-operations \
--type=merge \
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'
Внимание
Не используйте эту конфигурацию в рабочих или предварительных средах. Предоставление кластера в Интернет без надлежащей проверки подлинности может привести к несанкционированным доступом и даже атакам DDOS.
Вы можете исправить все конечные точки ресурса с помощью следующей команды:
ENDPOINTS=$(kubectl get AssetEndpointProfile -n azure-iot-operations --no-headers -o custom-columns=":metadata.name")
for ENDPOINT_NAME in `echo "$ENDPOINTS"`; do \
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
-n azure-iot-operations \
--type=merge \
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'; \
done
Если симулятор OPC PLC не отправляет данные брокеру MQTT после создания нового ресурса, перезапустите модуль симулятора OPC PLC. Имя модуля pod выглядит следующим образом aio-opc-opc.tcp-1-f95d76c54-w9v9c
. Чтобы перезапустить pod, используйте k9s
средство для убийства модуля pod или выполните следующую команду:
kubectl delete pod aio-opc-opc.tcp-1-f95d76c54-w9v9c -n azure-iot-operations
Потоки данных
Пользовательские ресурсы потока данных, созданные в кластере, не отображаются в пользовательском интерфейсе операций. Это ожидается, так как управление компонентами Операций Интернета вещей Azure с помощью Kubernetes находится в предварительной версии, а синхронизация ресурсов из края в облако в настоящее время не поддерживается.
Проверка подлинности X.509 для пользовательских конечных точек Kafka пока не поддерживается.
Десериализация и проверка сообщений с помощью схемы пока не поддерживается. Указание схемы в исходной конфигурации позволяет порталу операций отображать список точек данных, но точки данных не проверяются на соответствие схеме.
Создание секрета X.509 на портале операций приводит к возникновению секрета с неправильно закодированными данными. Чтобы обойти эту проблему, создайте многострочный секрет с помощью Azure Key Vault, а затем выберите его в списке секретов на портале взаимодействия с операциями.
При подключении нескольких экземпляров операций Интернета вещей к одному пространству имен Сетки событий MQTT могут возникать сбои подключения из-за конфликтов идентификаторов клиента. Идентификаторы клиентов в настоящее время являются производными от имен ресурсов потока данных, а при использовании шаблонов инфраструктуры в качестве кода (IaC) для развертывания созданные клиентские идентификаторы могут быть идентичными. В качестве временного обходного решения добавьте случайность в имена потоков данных в шаблонах развертывания.
При нарушении сетевого подключения потоки данных могут столкнуться с ошибками при отправке сообщений из-за несоответствия идентификатора производителя. При возникновении этой проблемы перезапустите модули pod потока данных.
При использовании символов управления в заголовках Kafka может возникнуть отключение. Элементы управления в заголовках Kafka, например
0x01
0x02
,0x03
являются совместимыми с UTF-8,0x04
но брокер MQTT операций Интернета вещей отклоняет их. Эта проблема возникает во время процесса потока данных, когда заголовки Kafka преобразуются в свойства MQTT с помощью средства синтаксического анализа UTF-8. Пакеты с символами управления могут рассматриваться как недопустимые и отклоненные брокером и привести к сбоям потока данных.