Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esta página inclui instruções para gerenciar componentes do serviço Operações do Azure IoT usando manifestos de implantação do Kubernetes, que estão em versão prévia. Esse recurso é fornecido com várias limitações, e não deve ser usado para cargas de trabalho de produção.
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.
As Operações de IoT do Azure incluem um agente MQTT compatível com nível corporativo e padrões. O agente MQTT é escalonável, altamente disponível e nativo do Kubernetes. Ele fornece o plano de mensagens para operações de IoT, habilita a comunicação bidirecional de borda para nuvem e dá suporte a aplicativos controlados por eventos na borda.
Conformidade do MQTT
MQTT é um protocolo comum no espaço IoT. Seu design simples permite que um único agente atenda milhares de clientes simultaneamente com a criação e o gerenciamento de tópicos de publicação e assinatura leves. Muitos dispositivos IoT dão suporte nativo ao MQTT. Os gateways de tradução downstream convertem vários protocolos IoT em MQTT.
O agente MQTT dá suporte à camada de mensagens em Operações IoT e é compatível com MQTT v3.1.1 e MQTT v5. Para obter mais informações sobre os recursos do MQTT com suporte, confira Suporte a recursos do MQTT no agente MQTT.
Arquitetura
O agente MQTT tem duas camadas principais:
- Camada de front-end sem monitoração de estado
- Camada de back-end com estado e compartilhada
A camada de front-end manipula as conexões e solicitações do cliente e as encaminha para o back-end. A camada de back-end particiona dados por chaves, como uma ID do cliente para sessões de cliente e um nome de tópico para mensagens de tópico. A camada de back-end usa a replicação de cadeia para copiar dados em cada partição.
Os objetivos da arquitetura são:
- Tolerância a falhas e isolamento: a publicação de mensagens continua se os pods de back-end falham e as falhas não são propagadas para o restante do sistema.
- Recuperação de falhas: recuperação automática de falhas sem intervenção do operador.
- Sem perda de mensagens: as mensagens serão entregues se pelo menos um pod de front-end e um pod de back-end em uma partição estiverem em execução.
- Escala elástica: a escala horizontal da taxa de transferência de publicação e assinatura dá suporte a implantações de borda e nuvem.
- Desempenho consistente em escala: limita a sobrecarga de latência da mensagem devido à replicação de cadeia.
- Simplicidade operacional: reduz a dependência de componentes externos para simplificar a manutenção e a complexidade.
Configuração
Para configuração, o agente do MQTT usa vários recursos personalizados do Kubernetes para definir diferentes aspectos do comportamento e da funcionalidade do agente:
- O recurso principal é Broker, que define as configurações globais, como cardinalidade, perfil de uso de memória e configurações de diagnóstico.
- Um recurso Broker pode ter até três BrokerListeners, cada um dos quais escuta as conexões MQTT recebidas no tipo de serviço especificado (
NodePort
,LoadBalancer
ouClusterIP
). Cada recurso BrokerListener pode ter várias portas. - Cada porta dentro de um recurso BrokerListener pode ser associada a um recurso BrokerAuthentication e a um recurso BrokerAuthorization. Essas políticas de autenticação e autorização determinam quais clientes podem se conectar à porta e quais ações eles podem executar no agente.
A relação entre Broker e BrokerListener é de um-para-muitos, enquanto a relação entre BrokerListener e BrokerAuthentication/BrokerAuthorization é de muitos-para-muitos. O diagrama de relacionamento de entidades para esses recursos é:
Por padrão, as Operações de IoT implantam um agente padrão, um BrokerListener padrão e uma BrokerAuthentication padrão. Todos esses recursos são nomeados como padrão. Juntos, esses recursos fornecem uma configuração básica de agente MQTT necessária para que as Operações de IoT funcionem. A configuração padrão é:
Importante
Para evitar interromper a comunicação entre componentes internos das Operações IoT, não modifique nenhuma configuração padrão.
Para personalizar a implantação do agente MQTT, adicione novos recursos, como BrokerListeners, BrokerAuthentication e BrokerAuthorization ao Broker padrão.
O recurso broker é imutável e não pode ser modificado após a implantação, mas requer personalização somente em cenários avançados. Para saber mais sobre como personalizar o recurso do Agente, consulte Personalizar o Agente padrão.
Em uma implantação completa, você pode ter vários BrokerListeners, cada um com várias portas, e cada porta pode ter recursos diferentes de BrokerAuthentication e BrokerAuthorization associados a ela.
Por exemplo, a partir da configuração padrão, você adiciona:
- Um BrokerListener LoadBalancer chamado example-lb-listener, com as duas portas 1883 e 8883.
- Um BrokerListener NodePort chamado example-nodeport-listener, com a porta única 1884 (
nodePort
31884). - Um recurso BrokerAuthentication chamado example-authn, com um método de autenticação personalizado.
- Um recurso BrokerAuthorization chamado example-authz, com suas configurações de autorização personalizadas.
Se você configurar todas as novas portas com os mesmos recursos BrokerAuthentication e BrokerAuthorization, a configuração terá esta aparência:
Essa abordagem mantém a configuração padrão intacta e permite que você adicione novos recursos para personalizar a implantação do agente MQTT.
Recurso do Agente Padrão
Cada implantação das Operações de IoT pode ter apenas um agente, que precisa ser chamado padrão. O recurso de agente padrão é necessário para que as Operações de IoT funcionem. Ele é imutável e não pode ser modificado após a implantação.
Cuidado
Não exclua o recurso de agente padrão. Isso interrompe a comunicação entre os componentes internos das Operações de IoT e a implantação para de funcionar.
Personalizar o Agente padrão
A personalização do recurso de agente padrão não é necessária para a maioria das configurações. As configurações que exigem personalização incluem:
- Cardinalidade: determina a capacidade do agente de lidar com mais conexões e mensagens e aumenta a alta disponibilidade se houver falhas de pod ou nó.
- Perfil de memória: define o uso máximo de memória do agente e como lidar com o uso de memória à medida que o agente aumenta.
- Buffer de mensagens com suporte em disco: configuração para armazenar mensagens em buffer no disco à medida que a RAM é preenchida.
- Configurações de diagnóstico: configuração para configurações de diagnóstico, como nível de log e ponto de extremidade de métricas.
- Opções avançadas do cliente MQTT: configuração para opções avançadas do cliente MQTT, como expiração da sessão, expiração de mensagem e configurações de keep-alive.
- Criptografia de tráfego interno: configuração para criptografar o tráfego interno entre os pods de front-end e back-end do agente.
Você pode personalizar o agente padrão somente durante a implantação inicial usando a CLI do Azure ou o portal do Azure. Uma nova implantação será necessária se você precisar de configurações de corretor diferentes.
Para personalizar o Agente padrão durante a implantação:
Quando você seguir o painel para implantar a IoT Operations, na seção Configuração, procure em Configuração do agente MQTT. Aqui, você pode personalizar as configurações de perfil de cardinalidade e memória. Para definir outras configurações, incluindo o buffer de mensagens com suporte em disco e opções avançadas do cliente MQTT, use a CLI do Azure.
Importante
Você não pode atualizar o recurso do corretor após a implantação inicial. Alterações de configuração na cardinalidade, no perfil de memória ou no buffer de disco não são permitidas após a implantação.
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.
Exibir configurações padrão do Agente
Para exibir as configurações do agente padrão:
- No portal do Azure, navegue até a instância de Operações de IoT.
- Em Componentes, selecione Agente MQTT.
- Em Detalhes do Agente, selecione Modo de exibição JSON.