安装

ThingsBoard安装和配置文档。

AWS EKS云集群

本指南将帮助你在AWS EKS中以集群模式设置ThingsBoard。

先决条件

ThingsBoard微服务在Kubernetes集群上运行。 你需要安terraform (v0.12+)和kubectl (v1.16+)。

terraform - 用于在AWS EKS中创建和管理云基础架构。

你可以选择其他可用的Kubernetes集群部署解决方案

步骤1.切换terraform工作目录

cd ./aws/eks

步骤2.AWS凭证

通过是iam角色访问AWS你需要有AWS_ACCESS_KEY和AWS_SECRET_ACCESS_KEY。

要添加环境变量请执行以下命令:

export AWS_ACCESS_KEY=xxxxxxxxx

export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxx

步骤3.安装EKS集群

初始化terraform工作目录请执行以下命令:

terraform init

创建配置terraform文件请执行以下命令:

nano terraform.tfvars

并添加以下示例配置:

cluster_name = "k8s-cluster-example"
aws_region = "eu-west-1"
worker_type = "t3.medium"
cluster_version = "1.17"

现在我们使用这个示例配置但是你可以在variables.tf中看到所有变量。

要查看将创建什么基础架构请执行以下命令:

terraform plan

要创建此基础结构请执行以下命令:

terraform apply

我们将从此命令的输出中获取cluster_name。

执行完此命令后我们将获得k8s集群。

为kubectl设置KUBECONFIG变量请执行以下命令:

export KUBECONFIG=$(pwd)/$your_kubeconfig_thingsboard_name

并检查集群中的节点:

kubectl get nodes

你需要安装”cluster_autoscaler”请在../../common/cluster-autoscaler-autodiscover中更改"cluster_name"并执行以下命令来安装"cluster_autoscaler": kubectl apply -f ../../common/cluster-autoscaler-autodiscover.yaml `

步骤3.查看架构页面

从ThingsBoard v2.2开始可以使用新的微服务架构和Docker容器安装ThingsBoard集群。

有关更多详细信息请参见microservices体系结构页面。

步骤4.Environment文件

请返回到根目录cd ../../

.env文件中PLATFORM将PLATFORM字段的值设置为aws-eks

步骤5.配置数据库

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

  • postgres - 使用PostgreSQL数据库;
  • hybrid - 使用PostgreSQL保存实体Cassandra时间序列数据;

注意:根据数据库类型将部署相应的kubernetes资源(请参阅basic/postgres.ymlhigh-availability/postgres-ha.yaml进行复制的postgrescommon/cassandra.yml有关详细信息)。

步骤6.选择部署类型

在执行初始安装之前你可以配置ThingsBoard部署的类型。

请将.env文件中的DEPLOYMENT_TYPE变量值更改为以下其中一个内容:

  • basic - 使用Zookeeper,Kafka和Redis的单个实例启动;
  • high-availability - 在集群模式下使用Zookeeper,Kafka和Redis启动;

注意:根据部署类型将部署相应的kubernetes资源(有关详细信息请参见basichigh-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

步骤7.运行

执行以下命令以运行安装:

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

说明:

  • --loadDemo - 可选参数是否安装演示数据。

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

./k8s-deploy-thirdparty.sh

如果是第一次在high-availabilityDEPLOYMENT_TYPE中运行ThingsBoard未配置Redis集群则在系统提示时输入‘yes’

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

./k8s-deploy-resources.sh

一段时间后当所有资源都将成功启动时可以使用负载均衡器的dns名称在浏览器中打开ThingsBoard Web界面。

可以使用以下命令查看负载均衡器的DNS名称:

kubectl get ingress -oyaml

或者你可以在GCP LB页面上看到此名称。

你应该看到ThingsBoard登录页面。

使用以下默认凭据:

  • System Administrator: sysadmin@thingsboard.org / sysadmin

如果使用演示数据(使用--loadDemo标志)安装了数据库则还可以使用以下凭据:

  • Tenant Administrator: tenant@thingsboard.org / tenant
  • Customer User: customer@thingsboard.org / customer

如有任何问题可以检查服务日志中是否有错误。 例如要查看ThingsBoard节点日志请执行以下命令:

1)获取正在运行的tb节点容器的列表:

kubectl get pods -l app=tb-node

2)获取tb节点容器的日志:

kubectl logs -f $tb-node-pod-name

说明:

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

使用kubectl get pods查看所有Pod的状态。 使用kubectl get services查看所有服务的状态。 使用kubectl get deployments来查看所有部署的状态。 有关详细信息请参见kubectl Cheat Sheet命令参考。

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

./k8s-delete-resources.sh

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

./k8s-delete-thirdparty.sh

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

./k8s-delete-all.sh

要删除k8s集群和AWS资源可以执行以下命令:

terraform destroy

升级

如果需要数据库升级请执行以下命令:

 ./k8s-delete-resources.sh
 ./k8s-upgrade-tb.sh --fromVersion=[FROM_VERSION]
 ./k8s-deploy-resources.sh

说明:

  • FROM_VERSION - 从哪个版本开始升级关于fromVersion值请参见升级说明

下一步

  • 入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。

  • 设备连接 - 了解如何根据您的连接方式或解决方案连接设备。

  • 数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。

  • 数据处理 - 了解如何使用ThingsBoard规则引擎。

  • 数据分析 - 了解如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 了解高级ThingsBoard功能。

  • 开发指南 - 了解ThingsBoard中的贡献和开发。