Skip to main content
Version: 3.0
MaestroHub on Kubernetes · Tier 2

Single-node on Kubernetes

The whole product in one pod on one node, the same process as the binary, with TimescaleDB and Prometheus beside it. One installation brings everything up.

Pods
MaestroHub, TimescaleDB, Prometheus
Nodes
One, any Kubernetes distribution
When it fails
Kubernetes restarts the pod
Run by your platform team

Your platform team installs, upgrades and runs this; MaestroHub supports the MaestroHub application. See Who is responsible for what.

What runs​

One pod runs every module, the message bus (NATS with JetStream), the MQTT broker and the UI, in one process. Devices and browsers reach it at one Service. Its small volume keeps execution history, logs, the message bus's streams and the keys it generates; the historian's data is on the TimescaleDB volume.

Single-node installationBrowsers and devices reach one Kubernetes Service on one node. Behind it, one MaestroHub pod runs every module, the NATS message bus, the MQTT broker and the UI in one process, with a small data volume. Beside it run a TimescaleDB pod with its volume and a Prometheus pod. A NATS cluster and Elasticsearch can be added.Browsers, APIUI and REST APIDevicesPLCs, gateways, sensorsKUBERNETES NODEany distributionService: one address8080/8443 UI and API · 1883/8883 MQTT · 8083 WebSocketMaestroHub podone replica · every module in one processauthauthzoauth2workspacesconnectorsengineschedulerunsgraphsemantics+ logs, search, audit, monitoring, notifications, licence…INSIDE THE PROCESSNATS JetStream · MQTT broker · UI and API/datareads, writesscrapesTimescaleDBmodule databasesand the historianor: your own servervolumePrometheusmetrics for theMonitoring pagesor: your cluster’s ownvolumeOPTIONALNATS clusterinstead of the bus insideElasticsearchlog and universal search
Browsers, APIUI and REST APIDevicesPLCs, sensorsKUBERNETES NODEService: one addressUI and API · MQTT · WebSocketMaestroHub podone replica · every moduleauthauthzoauth2workspacesconnectorsengineschedulerunsgraph+ semantics, logs, search, audit…INSIDE THE PROCESSNATS JetStreamMQTT broker · UI and API/dataTimescaleDBdatabases, historianvolumeor: your ownPrometheusmonitoring metricsvolumeor: your cluster’sOPTIONALNATS cluster · Elasticsearch
  • Requests: browsers and devices to MaestroHub
  • Databases and metrics
  • Optional, added when you need it

Good to know​

  • Bring your own database or PrometheusTimescaleDB can be your own PostgreSQL or TimescaleDB server, and Prometheus your cluster’s own. Connections to your own database use TLS in production.
  • At the edgeOn a small Kubernetes node at the line the pod can run with nothing beside it: every store is a file on its volume, as with the binary. One certificate in a Kubernetes Secret then serves HTTPS, MQTT over TLS and secure WebSocket.
  • When the pod or the node failsKubernetes starts the pod again on the same volume. Devices reconnect and resend what was not acknowledged, and pipelines keep unsent values in Store & Forward buffers. There is no second copy to take over meanwhile.
  • BackupsThe chart does not back up the bundled TimescaleDB. Protect its volume with your snapshots or backup tool, or use a database server you already back up.

Ports​

8080 · 8443

UI and API, HTTP and HTTPS

MaestroHub Service, or an ingress

1883 · 8883

MQTT, MQTT over TLS

MaestroHub Service

8083

MQTT over WebSocket, when turned on

MaestroHub Service

A Service exposed outside the cluster (NodePort or LoadBalancer) carries only the encrypted ports unless you open the plain ones on purpose.

Upgrades​

An upgrade replaces the one pod, so it is a short outage. Before the old pod stops, the chart checks the stored data against the new release: when the release needs its data converted first, the upgrade stops there and the running version keeps serving until the conversion has run. How stored data is converted is on Upgrades.