产品定价 立即试用
专业版
ThingsBoard专业版Kubernetes与Minikube集群设置指南
入门 文档 指南 安装 架构 API 常见问题
目录

ThingsBoard专业版Kubernetes与Minikube集群设置指南

本指南将帮助您使用 Kubernetes 和 Minikube 以集群模式设置 ThingsBoard。 为此,我们将使用 Docker Hub 上提供的 Docker 容器镜像。

前置条件

ThingsBoard 微服务在 Kubernetes 集群上运行。您需要拥有 Kubernetes 集群,且 kubectl 命令行工具必须已配置为与集群通信。 若未安装 Minikube,请按照此处说明操作。

启用 ingress 插件

Minikube 中 ingress 插件默认禁用,仅在集群 provider 中可用。 要启用 ingress,请执行以下命令:

1
minikube addons enable ingress

从 Docker Hub 拉取 ThingsBoard PE 镜像

运行以下命令验证您能否从 Docker Hub 拉取镜像。

1
2
3
4
5
6
7
8
9
docker pull thingsboard/tb-pe-node:4.3.0.1PE
docker pull thingsboard/tb-pe-web-report:4.3.0.1PE
docker pull thingsboard/tb-pe-web-ui:4.3.0.1PE
docker pull thingsboard/tb-pe-js-executor:4.3.0.1PE
docker pull thingsboard/tb-pe-http-transport:4.3.0.1PE
docker pull thingsboard/tb-pe-mqtt-transport:4.3.0.1PE
docker pull thingsboard/tb-pe-coap-transport:4.3.0.1PE
docker pull thingsboard/tb-pe-lwm2m-transport:4.3.0.1PE
docker pull thingsboard/tb-pe-snmp-transport:4.3.0.1PE

步骤 1. 查看架构页面

自 ThingsBoard v2.2 起,可使用新的微服务架构和 Docker 容器安装 ThingsBoard 集群。 详见 微服务 架构页面。

步骤 2. 克隆 ThingsBoard PE Kubernetes 脚本

1
2
git clone -b release-4.3.0.1 https://github.com/thingsboard/thingsboard-pe-k8s.git --depth 1
cd thingsboard-pe-k8s/minikube

步骤 3. 获取许可证密钥

我们假定您已选择订阅计划或决定购买永久许可证。 否则,请前往 pricing 页面选择适合的许可证选项并获取许可证。 详见 如何获取按需付费订阅如何获取永久许可证

文档警告图标

本指南稍后将使用 PUT_YOUR_LICENSE_SECRET_HERE 引用您在本步骤获取的许可证密钥。

步骤 4. 配置许可证密钥

1
nano tb-node.yml

并填入许可证密钥参数:

1
2
3
4
# tb-node StatefulSet configuration

- name: TB_LICENSE_SECRET
  value: "PUT_YOUR_LICENSE_SECRET_HERE"

步骤 5. 查看架构页面

自 ThingsBoard v2.2 起,可使用新的微服务架构和 Docker 容器安装 ThingsBoard 集群。 详见 微服务 架构页面。

步骤 6. 配置 Minikube

Minikube 中 ingress 插件默认禁用,仅在集群 provider 中可用。 要启用 ingress,请执行以下命令:

1
minikube addons enable ingress

步骤 7. 配置 ThingsBoard 数据库

执行初始安装前,可配置 ThingsBoard 使用的数据库类型。 要设置数据库类型,请将 .env 文件中 DATABASE 变量的值改为以下之一:

  • postgres - 使用 PostgreSQL 数据库;
  • hybrid - 实体数据库使用 PostgreSQL,时序数据使用 Cassandra;

注意:将根据数据库类型部署相应的 kubernetes 资源(详见 postgres.ymlcassandra.yml)。

步骤 8. 配置 Trendz(可选)

8.1. 从 Docker Hub 拉取 Trendz 镜像

运行以下命令以验证可从 Docker Hub 拉取镜像:

1
2
docker pull thingsboard/trendz:1.15.0.4
docker pull thingsboard/trendz-python-executor:1.15.0.4

8.2. 在现有 RDS 实例中创建 Trendz 数据库

编辑 “trendz/trendz-secret.yml” ,将 YOUR_RDS_ENDPOINT_URL 和 YOUR_RDS_PASSWORD 替换后执行 Kubernetes Job:

1
2
kubectl apply -f ./trendz/trendz-secret.yml
kubectl apply -f ./trendz/trendz-create-db.yml

执行以下命令可查看日志:

1
kubectl logs job/trendz-create-db -n thingsboard

8.3. 启动 Trendz

执行以下命令以运行数据库初始设置。该命令将启动短期存在的 ThingsBoard pod 以创建必要的 DB 表、索引等:

1
 ./k8s-deploy-trendz.sh

命令完成后,控制台应显示:

1
Trendz installed successfully!
文档信息图标

否则,请检查 trendz-secret.yml 中的 PostgreSQL URL 和 PostgreSQL 密码是否配置正确。

步骤 9. 运行

执行以下命令进行安装:

1
./k8s-install-tb.sh --loadDemo

其中:

  • --loadDemo - 可选参数。是否加载额外演示数据。

执行以下命令部署第三方资源:

1
./k8s-deploy-thirdparty.sh

首次以 high-availability DEPLOYMENT_TYPE 运行 ThingsBoard 或尚未配置 Redis 集群时,提示时输入 ‘yes’

执行以下命令部署 ThingsBoard 资源:

1
./k8s-deploy-resources.sh

所有资源成功启动后,可在浏览器中打开 http://{your-cluster-ip}(例如 http://192.168.99.101)。 可使用以下命令查看集群 IP:

1
minikube ip

您应能看到 ThingsBoard 登录页面。

使用以下默认凭据:

  • 系统管理员:sysadmin@thingsboard.org / sysadmin

若使用演示数据安装数据库(使用 --loadDemo 参数),还可使用以下凭据:

  • 租户管理员:tenant@thingsboard.org / tenant
  • 客户用户:customer@thingsboard.org / customer

如有问题,可查看服务日志以排查错误。 例如,要查看 ThingsBoard 节点日志,请执行以下命令:

1) 获取运行的 tb-node pod 列表:

1
kubectl get pods -l app=tb-node

2) 获取 tb-node pod 的日志:

1
kubectl logs -f [tb-node-pod-name]

其中:

  • tb-node-pod-name - 从运行的 tb-node pod 列表中获得的 pod 名称。

或使用 kubectl get pods 查看所有 pod 状态。 或使用 kubectl get services 查看所有服务状态。 或使用 kubectl get deployments 查看所有部署状态。 详见 kubectl Cheat Sheet 命令参考。

执行以下命令删除所有 ThingsBoard 微服务:

1
./k8s-delete-resources.sh

执行以下命令删除所有第三方微服务:

1
./k8s-delete-thirdparty.sh

执行以下命令删除所有资源(包括数据库):

1
./k8s-delete-all.sh

升级

升级到新版 ThingsBoard

若要升级,请从 master 分支拉取最新更改:

1
git pull origin master

然后执行以下命令:

1
2
3
./k8s-delete-resources.sh
./k8s-upgrade-tb.sh
./k8s-deploy-resources.sh

注意,需逐一升级版本(例如 4.0.0 -> 4.0.1 -> 4.1.0 等)。

文档信息图标

对于早期升级版本(3.9.1之前),需要使用"--fromVersion"参数,例如:

# 升级到v3.9.0...
./k8s-upgrade-tb.sh --fromVersion=3.8.1

有关有效的"fromVersion"值,请参阅升级说明

升级到新版 Trendz(可选)

若要升级,请从 master 分支拉取最新更改:

1
git pull origin master

然后执行以下命令:

1
 ./k8s-upgrade-trendz.sh

注意,可从任意版本直接升级 Trendz 至最新版本(例如 1.12.0 -> 1.15.0 等)。

后续步骤