概述大纲
以微服务方式,部署thingsboard,探索云原生技术。
配合使用KubeSphere,一个以 Kubernetes 为内核的云原生分布式操作系统,降低k8s使用门槛,可视化方式应对部署thingsboard过程中问题,观察部署thingsboard状态,同时方便后续维护。
前置条件
ThingsBoard微服务在Kubernetes集群上运行你需要有一个Kubernetes集群并且必须配置kubectl命令行工具才能与你的集群通信。
1、本次教程不用安装Minikube,但需要提前安装好Kubernetes集群
2、建议全新的linux,在 Linux 上以 All-in-One 模式安装 KubeSphere,同时完成Kubernetes集群
在 Linux 上以 All-in-One 模式安装 KubeSphere:https://kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/
thingsboard3.4.4安装参考:基于Minikube集群安装方式 Cluster setup using Minikube | ThingsBoard Community Edition
第 1 步,查看thingsboard体系结构
参考:物联网板微服务架构 |事物板社区版 (thingsboard.io)
第 2 步,复制安装脚本到本地目录, ThingsBoard CE Kubernetes scripts repository
git clone -b release-3.4.4 https://github.com/thingsboard/thingsboard-ce-k8s.git
cd thingsboard-ce-k8s/minikube
第 3 步。配置 ThingsBoard 数据库
在执行初始安装之前,您可以配置要与 ThingsBoard 一起使用的数据库类型。 为了设置数据库类型,将文件中变量的值更改为以下值之一:DATABASE.env
- postgres- 使用PostgreSQL数据库;
- hybrid- 将PostgreSQL用于实体数据库,将Cassandra用于时间序列数据库;
注意:根据数据库类型,将部署相应的 kubernetes 资源(有关详细信息,请参阅 和)。postgres.ymlcassandra.yml
[图片上传失败...(image-d4369c-1684206046587)]如果选择为 ,您还可以配置 Cassandra 节点的数量(配置文件中的属性)和 in 文件。如果要配置,请先阅读 Cassandra 文档。cassandraDATABASEStatefulSet.spec.replicascassandra.ymlCASSANDRA_REPLICATION_FACTOR.envCASSANDRA_REPLICATION_FACTOR
建议有 3 个等于 2 的 Cassandra 节点。CASSANDRA_REPLICATION_FACTOR
如果测试,不用修改安装脚本,默认使用PostgreSQL数据库
第 4 步,运行安装脚本
执行以下命令运行安装:
./k8s-install-tb.sh --loadDemo
- --loadDemo- 可选参数。是否加载其他演示数据。
- 通过KubeSphere观察pod启动及完成状态,再执行下一步。
[图片上传失败...(image-33e3b6-1684206046587)]
执行以下命令,部署第三方资源。
./k8s-deploy-thirdparty.sh
#通过KubeSphere观察pod启动及完成状态,再执行下一步。
执行以下命令以部署 ThingsBoard 资源:
./k8s-deploy-resources.sh
#通过KubeSphere观察pod启动及完成状态,再执行下一步。
Thingsboard空间内部,容器组全部正常启动
第 5 步,启用入口插件
在KubeSphere开启项目网关,允许被外网访问
KubeSphere 项目中的网关是一个 NGINX Ingress 控制器。KubeSphere 内置的用于 HTTP 负载均衡的机制称为应用路由,它定义了从外部到集群服务的连接规则。如需允许从外部访问服务,用户可创建路由资源来定义 URI 路径、后端服务名称等信息。
KubeSphere 除了提供项目范围的网关外,还提供集群范围的网关,使得所有项目都能共享全局网关。
准备工作
您需要创建一个企业空间、一个项目和一个用户 (project-admin)。该用户必须被邀请至项目,并且在项目中的角色为 admin。有关更多信息,请参见创建企业空间、项目、用户和角色。
设置网关
以 project-admin 用户登录 KubeSphere Web 控制台,进入您的项目,从左侧导航栏进入项目设置下的高级设置页面,然后点击设置网关。
-
在弹出的对话框中选择网关的访问方式。
NodePort:通过网关访问服务对应的节点端口。
LoadBalancer:通过网关访问服务的单独 IP 地址。 在设置网关对话框,您可以启用应用治理以使用 Tracing 功能和不同的灰度发布策略。如果启用应用治理后无法访问路由,请在路由 (Ingress) 中添加注解(例如 nginx.ingress.kubernetes.io/service-upstream: true)。
选择访问方式后点击保存。
一段时间后,当所有资源都成功启动时,您可以在浏览器中打开。上图中(网关地址+节点端口)
参考资料
- KubeSphere 3.3.0 发布:全面拥抱 GitOps:https://kubesphere.io/zh/news/kubesphere-3.3.0-ga-announcement/
- 在 Linux 上以 All-in-One 模式安装 KubeSphere:https://kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/
- thingsboard3.4.4安装参考:基于Minikube集群安装方式: Cluster setup using Minikube | ThingsBoard Community Edition
来源 | 知识星球 | 物联网低代码平台的价值
声明:如转载,请注明本文链接,谢谢合作。