本指南将帮助你使用OpenShift在集群模式下配置ThingsBoard。
ThingsBoard微服务在Kubernetes集群上运行要在本地部署OpenShift集群需要具有Docker CE才能运行OpenShift容器和OpenShift Origin本身。
请按照说明安装所有必需的软件。
访问OpenShift集群必须先登录默认情况下你可以以developer
用户身份登录:
$ oc login -u developer -p developer
在第一次启动时应该创建thingsboard
项目。
要创建它请执行下一条命令:
$ oc new-project thingsboard
从ThingsBoard v2.2开始可以使用新的微服务架构和Docker容器安装ThingsBoard集群。
有关更多详细信息请参见microservices体系结构页面。
git clone https://github.com/thingsboard/thingsboard-ce-k8s.git
在.env
文件中将PLATFORM
字段的值设置为openshift
。
在执行初始安装之前可以配置与ThingsBoard一起使用的数据库的类型。
设置数据库类型在.env
文件中的DATABASE
变量的值更改为以下值:
postgres
- 使用PostgreSQL数据库;hybrid
- 使用PostgreSQL保存实体Cassandra时间序列数据;注意:根据数据库类型将部署相应的kubernetes资源(请参阅basic/postgres.yml
或high-availability/postgres-ha.yaml
进行复制的postgrescommon/cassandra.yml
有关详细信息)。
在执行初始安装之前你可以配置ThingsBoard部署的类型。
请将.env
文件中的DEPLOYMENT_TYPE
变量值更改为以下其中一个内容:
basic
- 使用Zookeeper,Kafka和Redis的单个实例启动;high-availability
- 在集群模式下使用Zookeeper,Kafka和Redis启动;注意:根据部署类型将部署相应的kubernetes资源(有关详细信息请参见basic
和high-availability
的内容)。
如果选择cassandra
作为DATABASE
则还可以配置Cassandra节点的数量(common/cassandra.yml
配置文件中的StatefulSet.spec.replicas
属性)和.env
文件中的CASSANDRA_REPLICATION_FACTOR
属性。建议有3个Cassandra节点的CASSANDRA_REPLICATION_FACTOR
等于1。
注意: 如果你想配置CASSANDRA_REPLICATION_FACTOR
请先阅读Cassandra文档。
另外要以high-availability
部署模式运行PostgreSQL需要安装helm
。
执行以下命令以运行安装:
$ ./k8s-install-tb.sh --loadDemo
说明:
--loadDemo
- 可选参数是否安装演示数据。执行以下命令来部署第三方资源:
$ ./k8s-deploy-thirdparty.sh
如果是第一次在high-availability
的DEPLOYMENT_TYPE
中运行ThingsBoard未配置Redis集群则在系统提示时输入‘yes’。
执行以下命令以部署ThingsBoard资源:
$ ./k8s-deploy-resources.sh
要查看如何访问群集上的ThingsBoard应用程序请以developer用户身份登录(默认密码也为developer)打开thingsboard
项目然后转到Application -> Routes
菜单,你会看到所有已配置的路线。
root路由应类似于https://tb-route-node-root-thingsboard.127.0.0.1.nip.io/
。
你应该看到ThingsBoard登录页面。
使用以下默认凭据:
如果使用演示数据(使用--loadDemo
标志)安装了数据库则还可以使用以下凭据:
如有任何问题可以检查服务日志中是否有错误。 例如要查看ThingsBoard节点日志请执行以下命令:
1)获取正在运行的tb节点容器的列表:
$ oc get pods -l app=tb-node
2)获取tb节点容器的日志:
$ oc logs -f [tb-node-pod-name]
说明:
tb-node-pod-name
- 从正在运行的tb-node pod列表中获得的tb-node pod名称。使用oc get pods
来查看所有Pod的状态。
使用oc get services
来查看所有服务的状态。
使用oc get deployments
来查看所有部署的状态。
有关详细信息请参见[oc备忘单]oc Cheat Sheet命令参考。
执行以下命令删除所有ThingsBoard微服务:
$ ./k8s-delete-resources.sh
执行以下命令删除所有第三方微服务:
$ ./k8s-delete-thirdparty.sh
执行以下命令删除所有资源(包括数据库):
$ ./k8s-delete-all.sh
如果需要数据库升级请执行以下命令:
$ ./k8s-delete-resources.sh
$ ./k8s-upgrade-tb.sh --fromVersion=[FROM_VERSION]
$ ./k8s-deploy-resources.sh
说明:
FROM_VERSION
- 从哪个版本开始升级关于fromVersion
值请参见升级说明。入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。
设备连接 - 了解如何根据您的连接方式或解决方案连接设备。
数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。
数据处理 - 了解如何使用ThingsBoard规则引擎。
数据分析 - 了解如何使用规则引擎执行基本的分析任务。
硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。
高级功能 - 了解高级ThingsBoard功能。
开发指南 - 了解ThingsBoard中的贡献和开发。