美文网首页
Thingsboard Build说明

Thingsboard Build说明

作者: 哦呵呵_3579 | 来源:发表于2020-07-22 18:58 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:Thingsboard Build说明

          本文链接:https://www.haomeiwen.com/subject/jwbtlktx.html