在 GCP 中部署 EMQX
EMQX 是一款高性能的开源分布式物联网 MQTT 消息服务器,它提供了可靠、高效的消息传递功能。而 Google Kubernetes Engine (GKE)作为一种托管的 Kubernetes 服务,提供了便捷的容器化应用程序部署和管理能力。在本文中,我们将介绍如何利用 EMQX Operator 在 GCP GKE 上部署 EMQX,从而构建强大的物联网 MQTT 通信解决方案。
前提条件
在开始之前,您必须具备以下条件:
要在 Google Cloud Platform 上创建 GKE 集群,您需要在 GCP 订阅中启用 GKE 服务。您可以在 Google Kubernetes Engine 文档中找到有关如何执行此操作的更多信息。
要使用 kubectl 命令连接到 GKE 集群,您可以在本地计算机上安装 kubectl 工具,并获取集群的 KubeConfig 以连接到集群。或者,您可以通过 GCP 控制台使用 Cloud Shell 来使用 kubectl 管理集群。
要使用 kubectl 连接到 GKE 集群,您需要在本地计算机上安装并配置 kubectl 工具。有关如何执行此操作的详细说明,请参阅 连接到 GKE 集群 文档。
要使用 Cloud Shell 连接到 GKE 集群,您可以直接使用 GCP 控制台中的 Cloud Shell 来连接到 GKE 集群并使用 kubectl 管理集群。有关如何连接到 Cloud Shell 并使用 kubectl 的详细说明,请参阅 使用 Cloud Shell 管理 GKE 集群 文档。
要安装 EMQX Operator,请参考 安装 EMQX Operator。
WARNING
要在 Google Kubernetes Engine 上安装
cert-manager
,请参阅官方文档:运行
helm
命令时,请记得使用--set installCRDs=true
标志安装 CRD。更多信息请访问 cert-manager。
快速部署 EMQX 集群
以下是 EMQX 自定义资源的相关配置。您可以根据您希望部署的 EMQX 版本选择相应的 APIVersion。有关具体的兼容关系,请参阅 EMQX Operator 兼容性:
使用 MQTT X CLI 连接到 EMQX 集群发布/订阅消息
MQTT X CLI 是一个开源的 MQTT 5.0 命令行客户端工具,旨在帮助开发人员在没有 GUI 的情况下更快地开发和调试 MQTT 服务和应用程序。
获取 EMQX 集群的外部 IP 地址
订阅消息
shell$ mqttx sub -t 'hello' -h ${external_ip} -p 1883 [10:00:25] › … Connecting... [10:00:25] › ✔ Connected [10:00:25] › … Subscribing to hello... [10:00:25] › ✔ Subscribed to hello
在新的终端窗口中发送消息
shell$ mqttx pub -t 'hello' -h ${external_ip} -p 1883 -m 'hello world' [10:00:58] › … Connecting... [10:00:58] › ✔ Connected [10:00:58] › … Message Publishing... [10:00:58] › ✔ Message published
在订阅的终端窗口中查看接收到的消息
shell[10:00:58] › payload: hello world
使用 LoadBalancer 进行 TLS 终结
由于 Google LoadBalancer 不支持 TCP 证书,请参阅这个文档解决 TCP 证书卸载问题。