Scale with your workload
Adjust EMQX node replicas as connection and message traffic changes. Use Kubernetes resource settings to plan capacity for your workload.
EMQX ON KUBERNETES
Deploy, manage, and scale EMQX clusters on Kubernetes with the EMQX Operator.
Overview
Scale MQTT workloads and simplify cluster operations with the EMQX Operator.
Adjust EMQX node replicas as connection and message traffic changes. Use Kubernetes resource settings to plan capacity for your workload.
Run multiple EMQX nodes across worker nodes or failure domains. Combine Kubernetes pod recovery with appropriate storage and client reconnection settings.
Declare your EMQX cluster in YAML and let the Operator reconcile its resources. Keep deployment and configuration changes in your existing Kubernetes workflow.
Architecture
Devices connect to EMQX through a Kubernetes Service. The Operator manages the cluster.
Kubernetes
EMQX Cluster
EMQX Pod
EMQX Pod
EMQX Pod
Monitoring
Grafana
Prometheus
Storage and configuration
Persistent Volumes
ConfigMaps
EMQX OperatorLifecycle Management
Capabilities
Automate EMQX deployment, scaling, and maintenance with the EMQX Operator.
Set EMQX node replicas in the custom resource. For autoscaling, check HPA support in your Operator version and deployment mode.
Scaling API referenceDefine the EMQX image, node replicas, and service settings in a custom resource, then apply it to an existing Kubernetes cluster.
Coordinate EMQX version updates through the Operator. Plan node availability, allow for MQTT client reconnection, and test the rollout before production.
Upgrade strategy guideCollect EMQX metrics with Prometheus and use Grafana dashboards to track cluster health. Configure EMQX Exporter for additional metrics.
Monitoring guideManage supported EMQX settings through the custom resource, including listeners and authentication. Apply configuration changes using the API for your Operator version.
Configuration guideUse the EMQX Operator on managed Kubernetes services or your own cluster. Adapt networking, storage, and access controls to each environment.
Customer story
BAIC MOTOR uses EMQX on Kubernetes for connected vehicle messaging, supporting hundreds of thousands of concurrent MQTT connections.
"The EMQX Kubernetes Operator has been a game-changer for our MQTT service. We can now handle hundreds of thousands of concurrent MQTT connections with low latency and high reliability. The scalability and automation of Kubernetes have also helped us expand our IoT application to new markets quickly."
How it works
Start with a compatible Kubernetes cluster and EMQX Operator version, then install, configure, and connect.
Before you start
Install the EMQX Operator in your Kubernetes cluster using the documented installation manifest, then wait for the controller to be ready.
Create an EMQX custom resource in YAML. Specify the EMQX image, node replicas, and settings supported by your Operator version.
Apply the manifest with kubectl and wait for the cluster to report Ready. Configure access to its MQTT listener, then test a client connection.
Deployment
Follow the EMQX Operator deployment guides for Amazon EKS, Azure AKS, and Google Kubernetes Engine.
Deploy EMQX with the Operator on Amazon Elastic Kubernetes Service.
EKS deployment guideDeploy EMQX with the Operator on Azure Kubernetes Service.
AKS deployment guideDeploy EMQX with the Operator on Google Cloud’s managed Kubernetes service.
GKE deployment guideUse cases
Run MQTT services for vehicles, factories, and IoT platforms using your Kubernetes infrastructure.
Collect vehicle telemetry and deliver messages to connected fleets. Manage broker capacity through Kubernetes as connection and message volumes change.
Explore connected vehiclesConnect factory equipment, sensors, and gateways through EMQX. Deliver MQTT data to downstream monitoring and analytics systems while managing the broker on Kubernetes.
Explore industrial IoTOperate MQTT clusters for an IoT platform or service offering. Configure authentication, topic authorization, and tenant isolation separately from the Operator’s cluster management.
Resources
FAQ
The EMQX Operator is a Kubernetes controller for deploying and managing EMQX clusters. You describe the desired cluster in an EMQX custom resource, and the Operator reconciles Kubernetes resources to match it.
The EMQX Operator is open source under the Apache 2.0 license. EMQX broker licensing is separate; check the terms for the broker version and edition you deploy.
Deploy multiple EMQX nodes and distribute them across Kubernetes worker nodes or failure domains. The Operator reconciles the desired cluster state, and Kubernetes restarts failed pods. Recovery also depends on replica count, storage configuration, and client reconnection behavior; test these under failure conditions.
Update the supported settings in your EMQX custom resource and apply the change. The Operator reconciles the cluster with that desired configuration. Check the configuration guide for your Operator and EMQX versions before rollout.
Yes. Configure Prometheus to collect EMQX metrics and use Grafana to visualize them. The monitoring guide also covers EMQX Exporter for metrics not available through the Prometheus API.
Deploy EMQX with the Operator, or plan your Kubernetes architecture with an EMQX expert.