Build
基础环境
- JAVA 8
- Maven 3.1.0+
- NodeJS
Build流程
1、获取源码
2、如果没有梯子,提前下载好node_module(option)
在这两个项目的目录下执行 cnpm install
./ui-ngx/
./msa/js-executor/
3、在项目根目录下执行一下指令进行项目的打包
mvn clean install -Dmaven.test.skip=true -Pprod -Ddockerfile.skip=false
常见问题
- JavaScript Executor Microservice失败,提示fetched-vXXXX装不上
手动下载对应的包,然后放到指定位置,目录为:/User/XXXX/.pkg-cache/V2.6/,下载地址为:https://github.com/vercel/pkg-fetch/releases
- npm install安装组件超时
通过cnnpm先手动将对应的组件下载完成,或者挂梯子
- tb项目打包下载超时
可以将./msa/tb这个包剔除,这个对应的数据库的镜像,如果已经有数据库了可以不用进行打包,直接使用现有的数据库即可
Deploy
Kubernetes部署
1、先配置环境./k8s/.evn,默认通过高可用的方式进行部署
# 使用自建的kubernetes进行部署
PLATFORM=minikube
# 采用高可用方式进行部署
DEPLOYMENT_TYPE=high-availability
# 数据库采用混合的方式,pgsql存放持久化数据,cassandra用于存放时序数据(主要是遥测的数据)
DATABASE=hybrid
CASSANDRA_REPLICATION_FACTOR=3
2、部署数据库组件并初始化数据库(pgsql集群、cassandra集群)
./k8s/k8s-install-tb.sh
3、部署第三方组件(zk集群、kafka集群、redis集群)
./k8s/k8s-deploy-thirdparty.sh
4、修改web-ui的ingress文件,使用对应的host
./k8s/minikube/routes.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: tb-ingress
namespace: thingsboard
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
spec:
rules:
- host: tb.sz
5、部署tb组件(tb-node核心组件、js-executor、web-ui(option)、http-transport(option)、mqtt-transport(option)、coap-transport(option))
./k8s/k8s-deploy-resources.sh
6、通过nodeport或者lb的方式将transport暴露给外部,进行数据采集
- 高可用的部署的thingsboard,web-ui与tb-node(核心组件)是分离的,只能通过ingress的方式进行web-ui的暴露,无法通过nodeport的方式暴露
Upgrade
1、将对应的镜像push到镜像仓,并修改对应的部署文件中的镜像名称
# 数据库更新使用到的组件
./k8s/common/database-setup.yml
# 核心组件
./k8s/common/tb-node.yml
# transport组件、web组件以及js执行引擎组件
./k8s/common/thingsboard.yml
2、停止所有的tb组件
./k8s/k8s-delete-resources.sh
3、更新数据库
./k8s/k8s-upgrade-tb.sh --fromVersion=XXXX
其中fromVersion为之前的版本名称,例如从3.0.1升级到3.1.0,则 fromVersion=3.0.1
具体的升级可参考如下地址:
https://thingsboard.io/docs/user-guide/install/cluster/minikube-cluster-setup/
https://thingsboard.io/docs/user-guide/install/pe/upgrade-instructions/
4、启动所有的tb组件
./k8s/k8s-deploy-resources.sh
Uninstall
./k8s/k8s-delete-all.sh
网友评论