Problemas conhecidos: versão prévia das Operações da Internet das Coisas do Azure
Importante
A Versão Prévia das Operações da Internet das Coisas do Azure – habilitadas pelo Azure Arc – está atualmente em versão prévia. Você não deve usar esse software em versão prévia em ambientes de produção.
Você precisará implantar uma nova instalação das Operações da Internet das Coisas do Azure quando uma versão em disponibilidade geral for disponibilizada. Você não poderá atualizar uma instalação de versão prévia.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Este artigo lista os problemas conhecidos da versão prévia das Operações do Azure IoT.
Problemas de implantação e desinstalação
Se você preferir não ter atualizações feitas no cluster sem dar consentimento explícito, desabilite as atualizações do Arc ao habilitar o cluster. Isso ocorre devido ao fato de que algumas extensões do sistema são atualizadas automaticamente pelo agente do Arc. Para desabilitar atualizações, inclua o sinalizador
--disable-auto-upgrade
como parte do comandoaz connectedk8s connect
.Quando a implantação falha com o erro
"code":"LinkedAuthorizationFailed"
, isso significa que você não tem as permissões Microsoft.Authorization/roleAssignments/write no grupo de recursos que contém o cluster.A edição direta dos recursos personalizados SecretProviderClass e SecretSync no cluster do Kubernetes pode interromper o fluxo de segredos nas Operações do Azure IoT. Para operações relacionadas a segredos, use a interface do usuário da experiência de operações.
Agente MQTT
Não é possível atualizar o recurso personalizado do agente após a implantação inicial. Não é possível fazer alterações de configuração na cardinalidade, no perfil de memória ou no buffer de disco.
Como uma solução alternativa, ao implantar o Operações do Azure IoT com o comando az iot ops init você pode incluir o parâmetro
--broker-config-file
com um arquivo de configuração JSON para o Agente MQTT. Para obter mais informações, confira Configuração avançada do Agente MQTT e Configurar as principais configurações do Agente MQTT.Embora os diagnósticos do Agente MQTT produzam telemetria em seu próprio tópico, você talvez continue recebendo mensagens do autoteste quando fizer uma assinatura do tópico
#
.A implantação poderá falhar se os valores de cardinalidade e perfil de memória forem definidos como grandes demais para o cluster. Para resolver esse problema, defina o número de réplicas como
1
e use um perfil de memória menor, comolow
.Se você configurou o Agente MQTT para usar o buffer de mensagens com suporte em disco com opção de volume persistente, o agente criará uma declaração de volume persistente (PVC) no mesmo namespace que o agente. Se você desinstalar as Operações do Azure IoT, o PVC não será excluído automaticamente. Para excluir o PVC, execute o seguinte comando
kubectl delete pvc -n <namespace> <pvc-name>
.
Versão prévia do gerenciamento de rede em camadas do Azure IoT
Se o serviço gerenciamento de rede em camadas não receber um endereço IP durante a execução do K3S no host do Ubuntu, reinstale o K3S sem controlador de entrada trafeik usando a opçãob
--disable=traefik
.curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Para obter mais informações, consulte Rede | K3s.
Se as consultas DNS não resolverem para o endereço IP esperado ao usar o serviço CoreDNS em execução no nível da rede filho, atualize para o Ubuntu 22.04 e reinstale o K3S.
Conector para OPC UA
As definições de ativo do Registro de Dispositivo do Azure permitem que você use números na seção de atributo, enquanto o supervisor do OPC espera apenas cadeias de caracteres.
Quando você adiciona um novo ativo com um novo perfil de ponto de extremidade de ativo ao agente OPC UA e dispara uma reconfiguração, a implantação dos pods
opc.tcp
muda para acomodar as novas montagens secretas para nome de usuário e senha. Se a nova montagem falhar por algum motivo, o pod não será reiniciado e, portanto, o fluxo antigo dos ativos configurados corretamente também será interrompido.
Simulador de PLC OPC
Se você criar um ponto de extremidade de ativo para o simulador OPC PLC, mas o simulador OPC PLC não estiver enviando dados para o Agente MQTT, execute o seguinte comando para definir autoAcceptUntrustedServerCertificates=true
para o ponto de extremidade do ativo:
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}}"}}'
Cuidado
Não use essa configuração em ambientes de produção ou pré-produção. Expor seu cluster à Internet sem uma autenticação adequada pode levar a acessos não autorizados e até a ataques DDoS.
Você pode corrigir todos os pontos de extremidade de ativos com o seguinte comando:
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
Se o simulador OPC PLC não estiver enviando dados para o Agente MQTT após você ter criado um novo ativo, reinicie o pod do simulador OPC PLC. O nome do pod se parece com aio-opc-opc.tcp-1-f95d76c54-w9v9c
. Para reiniciar o pod, use a ferramenta k9s
para eliminar o pod ou execute o seguinte comando:
kubectl delete pod aio-opc-opc.tcp-1-f95d76c54-w9v9c -n azure-iot-operations
Fluxos de dados
Você não pode usar a autenticação anônima para pontos de extremidade MQTT e Kafka ao implantar pontos de extremidade de fluxo de dados da interface do usuário da experiência de operações. A solução alternativa atual é usar um arquivo de configuração YAML e aplicá-lo usando
kubectl
.Alterar a contagem de instâncias em um perfil de fluxo de dados em um fluxo de dados ativo pode resultar em novas mensagens sendo descartadas ou em mensagens sendo duplicadas no destino.
Quando você cria um fluxo de dados, se você definir o campo
dataSources
como uma lista vazia, o fluxo de dados falhará. A solução alternativa atual é sempre inserir pelo menos um valor nas fontes de dados.Os recursos personalizados de fluxo de dados criados em seu cluster não ficam visíveis na interface do usuário da experiência de operações. Isso é esperado porque não há suporte para sincronizar recursos de fluxo de dados da borda para a nuvem no momento.
Se você tiver um fluxo de dados que usa um ponto de extremidade do Fabric OneLake e desconectar o cluster da Internet por 24 a 72 horas, o fluxo de dados poderá parar de funcionar com o erro "Falha na autenticação com a validação do token de acesso". Para resolver esse problema, reinicie manualmente o pod de fluxo de dados executando o seguinte comando:
kubectl delete pod -n azure-iot-operations $(kubectl get pod -n azure-iot-operations | grep dataflow | awk '{print $1}')