产品定价 立即试用
MQTT Broker
安装 > Minikube (Kubernetes) 集群
入门 文档
架构 API 常见问题
目录

在 Minikube 上使用 Kubernetes 部署 TBMQ 集群

本指南将帮助您使用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=falseSECURITY_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
文档信息图标

如需升级到特定版本(如 TBMQ v2.0.0),将上述命令中的 release 分支替换为目标分支名,例如 release-2.0.0

注意:确保您的自定义更改(如有)在合并过程中不会丢失。

若合并过程中出现与您修改无关的冲突, 建议接受远程分支的所有新变更。

可通过执行以下命令撤销合并操作:

1
git merge --abort

然后通过接受 theirs 变更重新执行合并:

1
git pull origin release-2.2.0 -X theirs

默认合并策略的常用选项:

  • -X ours - 此选项强制以我方版本自动解决冲突块。
  • -X theirs - 与 ours 相反。更多详情请参阅 此处

之后,执行以下命令:

1
./k8s-upgrade-tbmq.sh
1
./k8s-upgrade-tbmq.sh --fromVersion=FROM_VERSION

其中 FROM_VERSION 表示升级的起始版本。参见 升级说明 了解有效的 fromVersion 取值。


说明: 升级数据库时,可选择使用以下命令停止 TBMQ pods:

1
./k8s-delete-tbmq.sh

这将导致服务中断,但可确保更新后 DB 状态一致。 多数更新不需要停止 TBMQ。

完成后,再次执行资源部署。这将触发 TBMQ 使用最新版本进行 rollout restart。

1
./k8s-deploy-tbmq.sh

后续步骤