本指南将帮助您使用Minikube工具以集群模式搭建ThingsBoard。
前置条件
ThingsBoard微服务运行在Kubernetes集群上。您需要拥有一个Kubernetes集群,并且kubectl命令行工具必须配置为与您的集群通信。
如果尚未安装Minikube,请按照这些说明操作。
启用ingress插件
Minikube中默认禁用ingress插件,仅在集群提供商中可用。 要启用ingress,请执行以下命令:
1
minikube addons enable ingress
步骤1. 查阅架构页面
从ThingsBoard v2.2开始,可使用新的微服务架构和Docker容器安装ThingsBoard集群。 详见微服务架构页面了解更多信息。
步骤2. 克隆ThingsBoard CE Kubernetes脚本仓库
1
2
git clone -b release-4.3.0.1 https://github.com/thingsboard/thingsboard-ce-k8s.git --depth 1
cd thingsboard-ce-k8s/minikube
步骤3. 配置ThingsBoard数据库
在执行初始安装之前,可以配置ThingsBoard使用的数据库类型。
要设置数据库类型,请将.env文件中的DATABASE变量值更改为以下之一:
postgres- 使用PostgreSQL数据库;hybrid- 使用PostgreSQL作为实体数据库,Cassandra作为时序数据库;
注意:根据数据库类型,将部署对应的Kubernetes资源(详见postgres.yml和cassandra.yml)。
步骤4. 运行
执行以下命令运行安装:
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快速参考。
执行以下命令删除所有ThingsBoard微服务:
1
./k8s-delete-resources.sh
执行以下命令删除所有第三方微服务:
1
./k8s-delete-thirdparty.sh
执行以下命令删除所有资源(包括数据库):
1
./k8s-delete-all.sh
升级
如需升级,请从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等)。
迁移到专业版
您还可以使用./k8s-upgrade-tb.sh脚本从社区版(CE)迁移到专业版(PE):
-
升级到最新的CE版本。
- 执行以下命令停止ThingsBoard资源:
1
./k8s-delete-resources.sh
-
将您的配置与最新的PE Minikube脚本合并。请勿忘记配置许可证密钥。
- 运行以下升级脚本,将数据库数据从CE迁移到PE:
1
./k8s-upgrade-tb.sh --fromVersion=CE
- 执行以下命令部署ThingsBoard资源:
1
./k8s-deploy-resources.sh