Integrované místní zprostředkovatele MQTT operací Azure IoT
Důležité
Tato stránka obsahuje pokyny ke správě komponent operací Azure IoT pomocí manifestů nasazení Kubernetes, které jsou ve verzi Preview. Tato funkce je poskytována s několika omezeními a neměla by se používat pro produkční úlohy.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Operace Azure IoT nabízí zprostředkovatel MQTT vyhovující standardům na podnikové úrovni, který je škálovatelný, vysoce dostupný a nativní pro Kubernetes. Poskytuje rovinu zasílání zpráv pro operace Azure IoT, umožňuje obousměrnou komunikaci hraničních a cloudových aplikací a zajišťuje aplikace řízené událostmi na hraničních zařízeních.
Dodržování předpisů MQTT
Přenos telemetrie front zpráv (MQTT) se objevil jako lingua franca mezi protokoly v prostoru IoT. Jednoduchý návrh MQTT umožňuje jednomu zprostředkovateli obsluhovat desítky tisíc klientů současně s jednoduchým vytvářením a správou témat publikování a odběru. Mnoho zařízení IoT nativně podporuje MQTT, přičemž dlouhá chvost protokolů IoT je racionalizována do MQTT podřízenými branami překladu.
Zprostředkovatel MQTT podporuje vrstvu zasílání zpráv v operacích IoT a podporuje MQTT v3.1.1 i MQTT v5. Další informace o podporovaných funkcích MQTT najdete v tématu Podpora funkcí MQTT ve zprostředkovateli MQTT.
Architektura
Zprostředkovatel MQTT má dvě hlavní vrstvy:
- Bezstavová front-endová vrstva.
- Stavová a horizontálně dělená back-endová vrstva
Front-endová vrstva zpracovává připojení a požadavky klientů a směruje je do back-endu. Back-endová vrstva rozděluje data podle různých klíčů, jako je ID klienta pro relace klienta a název tématu pro zprávy tématu. Používá řetězovou replikaci k replikaci dat v rámci každého oddílu.
Cílem architektury je:
- Odolnost proti chybám a izolace: Publikování zpráv pokračuje, pokud back-endové pody selžou a brání selháním v šíření do zbytku systému.
- Obnovení po selhání: Automatické obnovení selhání bez zásahu operátora
- Žádná ztráta zpráv: Doručení zpráv, pokud je spuštěn alespoň jeden front-endový pod a jeden back-endový pod v oddílu
- Elastické škálování: Horizontální škálování publikování a přihlášení k odběru propustnosti pro podporu hraničních a cloudových nasazení
- Konzistentní výkon ve velkém měřítku: Omezení režie latence zpráv kvůli replikaci řetězu
- Jednoduchost provozu: Minimální závislost na externích komponentách pro zjednodušení údržby a složitosti
Konfigurace
Pro konfiguraci se zprostředkovatel MQTT skládá z několika vlastních prostředků Kubernetes, které definují různé aspekty chování a funkčnosti zprostředkovatele.
- Hlavním prostředkem je Broker, který definuje globální nastavení, jako je kardinalita, profil využití paměti a nastavení diagnostiky.
- Zprostředkovatel může mít až tři BrokerListeners, z nichž každý naslouchá příchozím připojením MQTT na zadaném typu služby (NodePort, LoadBalancer nebo ClusterIP). Každý brokerListener může mít více portů.
- Každý port v rámci BrokerListeneru může být přidružený k prostředku BrokerAuthentication a prostředku BrokerAuthorization. Jedná se o zásady ověřování a autorizace, které určují, kteří klienti se můžou připojit k portu a jaké akce můžou u zprostředkovatele provádět.
Takže vztah mezi zprostředkovatele a BrokerListener je 1:N a vztah mezi BrokerListener a BrokerAuthentication/BrokerAuthorization je M:N. Diagram vztahů entit (ERD) pro tyto prostředky je následující:
Operace Azure IoT ve výchozím nastavení nasadí výchozí zprostředkovatele, výchozí BrokerListener a výchozí BrokerAuthentication. Všechny tyto prostředky jsou pojmenované jako výchozí. Tyto prostředky společně poskytují základní nastavení zprostředkovatele MQTT potřebné pro fungování operací Azure IoT. Výchozí nastavení je následující:
Důležité
Pokud chcete zabránit neúmyslnému přerušení komunikace mezi interními komponentami operací Azure IoT, doporučujeme neupravovat žádnou výchozí konfiguraci.
Pokud chcete přizpůsobit nasazení zprostředkovatele MQTT, přidejte do výchozího zprostředkovatele nové prostředky, jako jsou BrokerListeners, BrokerAuthentication a BrokerAuthorization.
Samotný prostředek zprostředkovatele je neměnný a po nasazení není možné ho upravovat, ale v pokročilých scénářích potřebuje pouze přizpůsobení. Další informace o přizpůsobení prostředku zprostředkovatele najdete v tématu Přizpůsobení výchozího zprostředkovatele.
V úplném nasazení můžete mít více BrokerListeners, z nichž každý má více portů a každý port může mít přidružené jiné prostředky BrokerAuthentication a BrokerAuthorization.
Například od výchozího nastavení přidáte:
- LoadBalancer BrokerListener s názvem example-lb-listener se dvěma porty 1883 a 8883
- NodePort BrokerListener s názvem example-nodeport-listener s jedním portem 1884 (nodePort 31884)
- Prostředek BrokerAuthentication s názvem example-authn s vlastní metodou ověřování
- Prostředek BrokerAuthorization s názvem example-authz s vlastním nastavením autorizace
Pokud pak nakonfigurujete všechny nové porty, budou stejné prostředky BrokerAuthentication a BrokerAuthorization vypadat takto:
Tímto způsobem ponecháte výchozí nastavení beze změny a přidáte nové prostředky, které přizpůsobí nasazení zprostředkovatele MQTT vašim potřebám.
Výchozí prostředek zprostředkovatele
Každé nasazení operací Azure IoT může mít jenom jednoho zprostředkovatele a musí mít název výchozí. Pro fungování operací Azure IoT se vyžaduje výchozí prostředek zprostředkovatele. Je neměnný a po nasazení není možné ho změnit.
Upozornění
Neodstraňovat výchozí prostředek zprostředkovatele. Tím dojde k narušení komunikace mezi interními komponentami operací Azure IoT a nasazení přestane fungovat.
Přizpůsobení výchozího zprostředkovatele
Přizpůsobení výchozího prostředku zprostředkovatele se pro většinu nastavení nevyžaduje. Mezi nastavení, která vyžadují přizpůsobení, patří:
- Kardinalita: Určuje kapacitu zprostředkovatele pro zpracování více připojení a zpráv a zvyšuje vysokou dostupnost v případě selhání podu nebo uzlů.
- Profil paměti: Nastaví maximální využití paměti zprostředkovatele a způsob zpracování využití paměti při vertikálním navýšení kapacity zprostředkovatele.
- Vyrovnávací paměť zpráv na disku: Konfigurace pro ukládání zpráv do vyrovnávací paměti na disk při vyplňování paměti RAM.
- Nastavení diagnostiky: Konfigurace pro nastavení diagnostiky, jako je úroveň protokolu a koncový bod metrik.
- Pokročilé možnosti klienta MQTT: Konfigurace pokročilých možností klienta MQTT, jako je vypršení platnosti relace, vypršení platnosti zpráv a nastavení zachování stavu.
- Šifrování interního provozu: Konfigurace pro šifrování interního provozu mezi front-endem zprostředkovatele a back-endovými pody.
Přizpůsobení výchozího zprostředkovatele se musí provést během počáteční doby nasazení pomocí Azure CLI nebo webu Azure Portal. Pokud potřebujete jiné nastavení konfigurace zprostředkovatele, vyžaduje se nové nasazení.
Přizpůsobení výchozího zprostředkovatele během nasazování:
Pokud použijete průvodce nasazením operací Azure IoT, podívejte se v části Konfigurace do konfigurace zprostředkovatele MQTT. Tady můžete přizpůsobit nastavení kardinality a profilu paměti. Pokud chcete nakonfigurovat další nastavení, včetně vyrovnávací paměti zpráv založeného na disku a pokročilých možností klienta MQTT, použijte Azure CLI.
Zobrazení výchozího nastavení zprostředkovatele
Zobrazení nastavení výchozího zprostředkovatele:
- Na webu Azure Portal přejděte do vaší instance Azure IoT Operations.
- V části Součásti vyberte Zprostředkovatele MQTT.
- V části Podrobnosti zprostředkovatele vyberte zobrazení JSON.
Další kroky
Nasazení operací Azure IoT do clusteru Kubernetes s podporou arc