ワークロードに合わせてスケール
接続数やメッセージトラフィックの変化に応じて、EMQX ノードのレプリカ数を調整できます。Kubernetes のリソース設定を使って、ワークロードに見合った容量を計画します。
EMQX ON KUBERNETES
EMQX Operator を使って、Kubernetes 上で EMQX クラスターをデプロイ、管理、スケールできます。
概要
EMQX Operator で MQTT ワークロードをスケールし、クラスター運用を簡素化します。
接続数やメッセージトラフィックの変化に応じて、EMQX ノードのレプリカ数を調整できます。Kubernetes のリソース設定を使って、ワークロードに見合った容量を計画します。
複数の EMQX ノードをワーカーノードや障害ドメインに分散して実行します。Kubernetes の Pod 復旧機能に、適切なストレージ設定とクライアントの再接続設定を組み合わせます。
EMQX クラスターを YAML で宣言すれば、Operator がリソースをその状態に合わせて調整します。デプロイや設定変更は、既存の Kubernetes ワークフローのまま行えます。
アーキテクチャ
デバイスは Kubernetes Service 経由で EMQX に接続し、Operator がクラスターを管理します。
Kubernetes
EMQX Cluster
EMQX Pod
EMQX Pod
EMQX Pod
モニタリング
Grafana
Prometheus
ストレージと設定
Persistent Volumes
ConfigMaps
EMQX Operatorライフサイクル管理
機能
EMQX Operator で、EMQX のデプロイ、スケーリング、メンテナンスを自動化します。
カスタムリソースで EMQX ノードのレプリカ数を設定します。オートスケーリングを行う場合は、使用中の Operator のバージョンとデプロイモードが HPA に対応しているか確認してください。
スケーリング API リファレンスEMQX のイメージ、ノードのレプリカ数、サービス設定をカスタムリソースで定義し、既存の Kubernetes クラスターに適用します。
EMQX のバージョン更新は Operator を通じて調整します。ノードの可用性を計画し、MQTT クライアントの再接続を見込んだうえで、本番環境に適用する前にロールアウトをテストしてください。
アップグレード戦略ガイドPrometheus で EMQX のメトリクスを収集し、Grafana ダッシュボードでクラスターの状態を把握します。追加のメトリクスが必要な場合は EMQX Exporter を設定します。
監視ガイドリスナーや認証など、サポートされている EMQX の設定をカスタムリソースで管理します。設定変更は、使用中の Operator のバージョンに対応した API で適用します。
設定ガイドEMQX Operator は、マネージド Kubernetes サービスでも自社運用のクラスターでも利用できます。ネットワーク、ストレージ、アクセス制御は環境ごとに調整してください。
導入事例
BAIC MOTOR は Kubernetes 上の EMQX をコネクテッドカーのメッセージングに活用し、数十万の同時 MQTT 接続を支えています。
「EMQX Kubernetes Operator は、当社の MQTT サービスにとってゲームチェンジャーでした。現在、低レイテンシーと高信頼性で数十万の同時 MQTT 接続を処理できます。Kubernetes のスケーラビリティと自動化により、IoT アプリケーションを新しい市場に迅速に展開することもできました。」
仕組み
互換性のある Kubernetes クラスターと EMQX Operator のバージョンを用意し、インストール、設定、接続の順に進めます。
始める前に
ドキュメントに記載されたインストールマニフェストを使って Kubernetes クラスターに EMQX Operator をインストールし、コントローラーの準備が整うまで待ちます。
YAML で EMQX カスタムリソースを作成し、EMQX のイメージ、ノードのレプリカ数、使用中の Operator のバージョンでサポートされている設定を指定します。
kubectl でマニフェストを適用し、クラスターのステータスが Ready になるまで待ちます。MQTT リスナーへのアクセスを設定してから、クライアント接続をテストします。
デプロイ
Amazon EKS、Azure AKS、Google Kubernetes Engine 向けの EMQX Operator デプロイガイドをご覧ください。
Operator を使って Amazon Elastic Kubernetes Service に EMQX をデプロイします。
EKS デプロイガイドOperator を使って Azure Kubernetes Service に EMQX をデプロイします。
AKS デプロイガイドOperator を使って Google Cloud のマネージド Kubernetes サービスに EMQX をデプロイします。
GKE デプロイガイドユースケース
自社の Kubernetes インフラで、車両、工場、IoT プラットフォーム向けの MQTT サービスを運用できます。
車両のテレメトリーを収集し、コネクテッドフリートにメッセージを配信します。接続数やメッセージ量の変化に合わせて、Kubernetes でブローカーの容量を管理します。
コネクテッドカーの詳細を見る工場の設備、センサー、ゲートウェイを EMQX で接続します。ブローカーを Kubernetes で管理しながら、MQTT データを下流の監視・分析システムに配信します。
産業用 IoT の詳細を見るIoT プラットフォームやサービス向けに MQTT クラスターを運用します。認証、トピック認可、テナント分離は、Operator によるクラスター管理とは別に設定します。
リソース
FAQ
EMQX Operator は、EMQX クラスターをデプロイ・管理するための Kubernetes コントローラーです。目的のクラスター構成を EMQX カスタムリソースに記述すると、Operator がそれに合わせて Kubernetes リソースを調整します。
EMQX Operator は Apache 2.0 ライセンスで公開されているオープンソースソフトウェアです。EMQX ブローカーのライセンスは別に定められているため、デプロイするブローカーのバージョンとエディションの利用条件をご確認ください。
複数の EMQX ノードをデプロイし、Kubernetes のワーカーノードや障害ドメインに分散させます。Operator が目的のクラスター状態を維持し、障害が発生した Pod は Kubernetes が再起動します。復旧の可否はレプリカ数、ストレージ設定、クライアントの再接続動作にも左右されるため、障害を想定した条件でテストしてください。
EMQX カスタムリソースでサポートされている設定を更新し、変更を適用します。Operator はその設定に合わせてクラスターを調整します。ロールアウトの前に、使用中の Operator と EMQX のバージョンに対応した設定ガイドを確認してください。
はい。Prometheus で EMQX のメトリクスを収集し、Grafana で可視化できます。Prometheus API から取得できないメトリクスについては、監視ガイドで EMQX Exporter を使う方法も紹介しています。
Operator で EMQX をデプロイするか、EMQX の専門家と Kubernetes アーキテクチャを検討できます。