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


Известные проблемы: Операции Интернета вещей 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, например 0x010x02, 0x03являются совместимыми с UTF-8, 0x04 но брокер MQTT операций Интернета вещей отклоняет их. Эта проблема возникает во время процесса потока данных, когда заголовки Kafka преобразуются в свойства MQTT с помощью средства синтаксического анализа UTF-8. Пакеты с символами управления могут рассматриваться как недопустимые и отклоненные брокером и привести к сбоям потока данных.