Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze pagina bevat instructies voor het beheren van Azure IoT Operations-onderdelen met behulp van Kubernetes-implementatiemanifesten, die in preview zijn. Deze functie is voorzien van verschillende beperkingen en mag niet worden gebruikt voor productieworkloads.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Azure IoT Operations bevat een MQTT-broker die voldoet aan de bedrijfskwaliteit en -standaarden. De MQTT-broker is schaalbaar, maximaal beschikbaar en Kubernetes native. Het biedt het berichtenvlak voor IoT-bewerkingen, maakt bidirectionele edge-naar-cloud-communicatie mogelijk en ondersteunt gebeurtenisgestuurde toepassingen aan de rand.
MQTT-naleving
MQTT is een algemeen protocol in de IoT-ruimte. Dankzij het eenvoudige ontwerp kan één broker tegelijkertijd duizenden clients bedienen met een lichtgewicht publiceren-abonneren systeem voor het maken en beheren van onderwerpen. Veel IoT-apparaten bieden systeemeigen ondersteuning voor MQTT. Downstreamomzettingsgateways converteren verschillende IoT-protocollen naar MQTT.
De MQTT-broker ondersteunt de berichtenlaag in IoT Operations en is compatibel met MQTT v3.1.1 en MQTT v5. Zie MQTT-functieondersteuning in MQTT-broker voor meer informatie over ondersteunde MQTT-functies.
Architectuur
De MQTT-broker heeft twee belangrijke lagen:
- Stateless frontendlaag
- Stateful en gefractioneerde back-endlaag
De front-endlaag verwerkt clientverbindingen en -aanvragen en stuurt deze naar de back-end. De back-endlaag partitioneert gegevens op sleutels, zoals een client-id voor clientsessies en een onderwerpnaam voor onderwerpberichten. De back-endlaag maakt gebruik van ketenreplicatie om gegevens binnen elke partitie te kopiëren.
De doelstellingen van de architectuur zijn:
- Fouttolerantie en isolatie: berichtpublicatie wordt voortgezet als back-endpods mislukken en fouten worden niet doorgegeven aan de rest van het systeem.
- Herstel van fouten: automatisch herstel van fouten zonder tussenkomst van de operator.
- Geen berichtverlies: Berichten worden bezorgd als er ten minste één frontend-pod en één backend-pod in een partitie actief zijn.
- Elastisch schalen: horizontaal schalen van de doorvoer voor publiceren en abonneren ondersteunt edge- en cloudimplementaties.
- Consistente prestaties op schaal: beperkt de overhead van de berichtlatentie vanwege ketenreplicatie.
- Operationele eenvoud: vermindert de afhankelijkheid van externe onderdelen om onderhoud en complexiteit te vereenvoudigen.
Configuratie
Voor configuratie gebruikt de MQTT-broker verschillende aangepaste Kubernetes-resources om verschillende aspecten van het gedrag en de functionaliteit van de broker te definiëren:
- De belangrijkste resource is Broker, die de globale instellingen definieert, zoals kardinaliteit, profiel voor geheugengebruik en diagnostische instellingen.
- Een Broker-resource kan maximaal drie BrokerListeners hebben, die elk luisteren naar binnenkomende MQTT-verbindingen op het opgegeven servicetype (
NodePort
,LoadBalancer
ofClusterIP
). Elke BrokerListener-resource kan meerdere poorten hebben. - Elke poort binnen een BrokerListener-resource kan worden gekoppeld aan een BrokerAuthentication-resource en een BrokerAuthorization-resource . Deze verificatie- en autorisatiebeleidsregels bepalen welke clients verbinding kunnen maken met de poort en welke acties ze op de broker kunnen uitvoeren.
De relatie tussen Broker en BrokerListener is een-op-veel, terwijl de relatie tussen BrokerListener en BrokerAuthentication/BrokerAuthorization veel-op-veel is. Het diagram van de entiteitsrelatie voor deze resources is:
IoT Operations implementeert standaard een standaardbroker, een standaard BrokerListener en een standaard BrokerAuthentication. Al deze resources hebben de naam standaard. Samen bieden deze resources een eenvoudige MQTT-brokerconfiguratie die vereist is om IoT Operations te laten functioneren. De standaardinstelling is:
Belangrijk
Als u wilt voorkomen dat de communicatie tussen interne onderdelen van IoT Operations wordt onderbroken, wijzigt u geen standaardconfiguratie.
Als u de MQTT-brokerimplementatie wilt aanpassen, voegt u nieuwe resources zoals BrokerListeners, BrokerAuthentication en BrokerAuthorization toe aan de standaardbroker.
De Broker-resource kan niet worden gewijzigd na de implementatie, maar vereist alleen aanpassingen in geavanceerde scenario's. Zie Standaardbroker aanpassen voor meer informatie over het aanpassen van de Broker-resource.
In een volledige implementatie kunt u meerdere BrokerListeners hebben, elk met meerdere poorten en elke poort kan verschillende BrokerAuthentication- en BrokerAuthorization-resources bevatten die eraan zijn gekoppeld.
U voegt bijvoorbeeld vanaf de standaardinstelling het volgende toe:
- Een LoadBalancer BrokerListener genaamd example-lb-listener, met de twee poorten 1883 en 8883.
- Een NodePort BrokerListener met de naam example-nodeport-listener, met één poort 1884 (
nodePort
31884). - Een BrokerAuthentication-resource met de naam example-authn, met een aangepaste verificatiemethode.
- Een BrokerAuthorization-resource met de naam example-authz, met uw aangepaste autorisatie-instellingen.
Als u alle nieuwe poorten met dezelfde BrokerAuthentication- en BrokerAuthorization-resources configureert, ziet de installatie er als volgt uit:
Met deze methode blijft de standaardinstelling intact en kunt u nieuwe resources toevoegen om de MQTT-brokerimplementatie aan te passen.
Standaard Broker Bron
Elke IoT Operations-implementatie kan slechts één broker hebben en moet de naam standaard hebben. De standaardbrokerresource is vereist om IoT-bewerkingen te laten functioneren. Het is onveranderbaar en kan niet worden gewijzigd na de implementatie.
Waarschuwing
Verwijder de standaardbrokerresource niet. Hierdoor wordt de communicatie tussen interne onderdelen van IoT Operations onderbroken en werkt de implementatie niet meer.
Standaardbroker aanpassen
Het aanpassen van de standaardbrokerresource is niet vereist voor de meeste instellingen. De instellingen waarvoor aanpassing is vereist, zijn onder andere:
- Kardinaliteit: bepaalt de capaciteit van de broker voor het afhandelen van meer verbindingen en berichten en verbetert hoge beschikbaarheid als er pod- of knooppuntfouten zijn.
- Geheugenprofiel: hiermee stelt u het maximale geheugengebruik van de broker in en hoe u geheugengebruik kunt verwerken wanneer de broker omhoog wordt geschaald.
- Op schijf gebaseerde berichtbuffer: Configuratie voor het bufferen van berichten op schijf wanneer het RAM-geheugen volloopt.
- Diagnostische instellingen: Configuratie voor diagnostische instellingen, zoals het eindpunt voor logboekniveau en metrische gegevens.
- Geavanceerde MQTT-clientopties: configuratie voor geavanceerde MQTT-clientopties, zoals het verlopen van sessies, het verlopen van berichten en instellingen voor keep-alive.
- Versleuteling van intern verkeer: configuratie voor het versleutelen van intern verkeer tussen brokerfrontend en back-endpods.
U kunt de standaardbroker alleen aanpassen tijdens de eerste implementatie met behulp van de Azure CLI of Azure Portal. Er is een nieuwe implementatie vereist als u verschillende brokerconfiguratie-instellingen nodig hebt.
De standaardbroker aanpassen tijdens de implementatie:
Wanneer u de handleiding voor het implementeren van IoT-bewerkingen volgt, kijkt u in de sectie Configuratie onder de MQTT-brokerconfiguratie. Hier kunt u kardinaliteit en geheugenprofielinstellingen aanpassen. Gebruik de Azure CLI om andere instellingen te configureren, waaronder een berichtbuffer met schijfsteun en geavanceerde MQTT-clientopties.
Belangrijk
U kunt de brokerresource niet bijwerken na de eerste implementatie. Configuratiewijzigingen in kardinaliteit, geheugenprofiel of schijfbuffer zijn niet toegestaan na de implementatie.
Als tijdelijke oplossing kunt u bij het implementeren van Azure IoT Operations met de opdracht az iot ops init de --broker-config-file
parameter opnemen met een JSON-configuratiebestand voor de MQTT-broker. Voor meer informatie, zie Geavanceerde MQTT-brokerconfiguratie en Kerninstellingen van de MQTT-broker configureren.
Standaardbrokerinstellingen weergeven
De instellingen voor de standaardbroker weergeven:
- Ga in Azure Portal naar uw IoT Operations-exemplaar.
- Selecteer onder Onderdelen de optie MQTT Broker.
- Selecteer onder Broker-details de JSON-weergave.