本指南将帮助您使用Minikube以集群模式部署TBMQ。
前置条件
您需要拥有Kubernetes集群,并且 kubectl 命令行工具必须配置为与您的集群通信。
如果尚未安装Minikube,请遵循这些说明。
此外,您需要安装 helm。
步骤1. 克隆TBMQ仓库
1
2
git clone -b release-2.2.0 https://github.com/thingsboard/tbmq.git
cd tbmq/k8s/minikube
步骤2. 安装
要安装TBMQ,执行以下命令:
1
./k8s-install-tbmq.sh
步骤3. 运行
执行以下命令部署TBMQ:
1
./k8s-deploy-tbmq.sh
当所有资源成功启动后,您可以在浏览器中打开 http://{your-cluster-ip}:30001(例如 http://192.168.49.2:30001)。
您可以使用以下命令检查集群IP:
1
minikube ip
您将看到TBMQ登录页面。请使用以下 System Administrator(系统管理员)默认凭据:
用户名:
1
sysadmin@thingsboard.org
密码:
1
sysadmin
首次登录时,系统将要求您将默认密码修改为自定义密码,然后使用新凭据重新登录。
步骤4. 日志、删除statefulset和服务
如有任何问题,您可以检查服务日志以查找错误。 例如,要查看TBMQ节点日志,执行以下命令:
1) 获取正在运行的tb-broker pod列表:
1
kubectl get pods -l app=tb-broker
2) 获取tb-broker pod的日志:
1
kubectl logs -f TB_BROKER_POD_NAME
其中:
TB_BROKER_POD_NAME- 从正在运行的tb-broker pod列表中获取的tb-broker pod名称。
或使用以下命令查看所有pod的状态。
1
kubectl get pods
使用以下命令查看所有服务的状态。
1
kubectl get services
使用以下命令查看所有deployment的状态。
1
kubectl get deployments
使用以下命令查看所有statefulset的状态。
1
kubectl get statefulsets
有关更多详细信息,请参阅 kubectl速查表命令参考。
执行以下命令删除TBMQ节点:
1
./k8s-delete-tbmq.sh
执行以下命令删除所有资源(包括数据库):
1
./k8s-delete-all.sh
升级
查看 release notes 和 升级说明 了解最新变更详情。
若您当前版本无 Upgrade to x.x.x 说明,可直接按升级说明执行。
若文档未涵盖您的升级场景,请联系我们以获取进一步指导。
备份和恢复(可选)
强烈建议备份PostgreSQL数据库,但在进行升级之前这是可选的。 有关进一步指导,请遵循以下说明。
升级到2.2.0
在此版本中,MQTT认证机制已从YAML/env配置迁移到数据库。 升级期间,TBMQ需要了解部署中启用了哪些认证提供程序。 此信息通过传递给 upgrade pod 的环境变量提供。
升级脚本需要一个名为 database-setup.yml 的文件,该文件明确定义这些变量。
您的 tb-broker.yml 文件中的环境变量在升级期间不会应用——仅使用 database-setup.yml 中的值。
提示 如果仅使用Basic认证,请设置
SECURITY_MQTT_SSL_ENABLED=false。 如果仅使用X.509认证,请设置SECURITY_MQTT_BASIC_ENABLED=false和SECURITY_MQTT_SSL_ENABLED=true。
支持的变量
SECURITY_MQTT_BASIC_ENABLED(true|false)SECURITY_MQTT_SSL_ENABLED(true|false)SECURITY_MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT(true|false) — 通常为false。
准备好文件并验证值后,继续升级过程。
升级到2.1.0
TBMQ v2.1.0 引入多项改进,包括新的 Integration Executor 微服务及第三方服务版本升级。
添加 Integration Executor 微服务
本版本通过新的 Integration Executor 微服务支持外部集成。
要获取包括 Integration Executor 在内的最新配置文件,请从release分支拉取更新。 按照 运行升级说明 中的步骤操作,直至执行升级脚本前(暂不执行 .sh 命令)。
更新第三方服务
v2.1.0 中,TBMQ 更新了关键第三方依赖版本,包括 Redis、PostgreSQL 和 Kafka。 可通过以下 链接 查看变更详情。
| 服务 | 更新前版本 | 更新后版本 |
|---|---|---|
| Redis | 7.0 | 7.2.5 |
| PostgreSQL | 15.x | 16.x |
| Kafka | 3.5.1 | 3.7.0 |
建议 将环境中的第三方版本与上述更新版本对齐,以确保与本版本完全兼容。 也可选择不升级,但兼容性仅在推荐版本下得到保证。
按需处理第三方服务版本后,可继续 升级流程 的剩余步骤。
执行升级
如果您想升级,请从最新release分支拉取最新更改:
1
git pull origin release-2.2.0
注意:确保您的自定义更改(如有)在合并过程中不会丢失。
若合并过程中出现与您修改无关的冲突, 建议接受远程分支的所有新变更。
可通过执行以下命令撤销合并操作:
1
git merge --abort
然后通过接受 theirs 变更重新执行合并:
1
git pull origin release-2.2.0 -X theirs
默认合并策略的常用选项:
- -X ours - 此选项强制以我方版本自动解决冲突块。
- -X theirs - 与 ours 相反。更多详情请参阅 此处。
之后,执行以下命令:
|
其中 |
说明: 升级数据库时,可选择使用以下命令停止 TBMQ pods:
1
./k8s-delete-tbmq.sh
这将导致服务中断,但可确保更新后 DB 状态一致。 多数更新不需要停止 TBMQ。
完成后,再次执行资源部署。这将触发 TBMQ 使用最新版本进行 rollout restart。
1
./k8s-deploy-tbmq.sh
后续步骤
-
快速入门指南 - 本指南提供 TBMQ 的快速概览。
-
安全指南 - 学习如何为 MQTT 客户端启用认证与授权。
-
配置指南 - 了解 TBMQ 配置文件和参数。
-
MQTT 客户端类型指南 - 了解 TBMQ 客户端类型。
-
与 ThingsBoard 集成 - 了解如何将 TBMQ 与 ThingsBoard 集成。