跳至主要內容

Docker部署

技术中心大约 4 分钟

Docker部署

前置条件

详见准备工作

开始部署

  1. 上传部署目录iot2.0至服务器
  2. 进入到部署目录,执行部署应用安装命令
./install.sh your_namespace -d[可选参数]

参数说明:

1. 第一个参数:设置命名空间名称,在 Kubernetes 中,命名空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。
   同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。 命名空间作用域仅针对带有命名空间的对象, (例如 Deployment、Service 等); 
2. -d 可选的参数,添加参数表示删除已安装的应用;
  1. 检验应用是否部署成功

检验应用是否部署成功

执行部署脚本后,除命名空间外,其他应用均会在上述命名空间下生成对应的三个组件(deployment、pod、service),同时部分应用还需进行数据的持久化操作,

防止应用节点因更新或重启丢失数据,数据挂载需要使用k8s的Persistent Volume(以下简称PV)功能,因此还需要验证应用(postgres、redis、tdengine、iot-backend)是否持久化成功

1. deployment用来管理pod生命周期的K8S应用程序;
2. Pod 代表的是集群上处于运行状态的一组容器的集合。
3. Service时将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。使得外部能访问到pod中应用程序

命名空间检验

方法一(已安装k8s控制台页面):

1. 登录k8s控制台页面;
2. 单击Cluster > Namespaces,进入到命名空间列表,查看对应的命名空间是否创建;

方法二(使用命令查看):

你可以使用以下命令列出集群中现存的名字空间:

kubectl get namespace
NAME              STATUS   AGE
default           Active   1d
kube-node-lease   Active   1d
kube-public       Active   1d
kube-system       Active   1d

postgres数据库检验

  1. 检验postgres的deployment、service、pod、pv、PersistentVolumeClaim(pvc) 是否正常运行;
  2. 进入到postgres的Pod节点中,进入到容器环境,使用命令连接数据库,检验数据库是否能正常连接;
psql -h localhost -p 5432 -U postgres dbname[可选]
  1. 使用数据库工具,检验数据库是否能正常连接;

redis缓存数据库检验

  1. 检验redis的deployment、service、pod、pv、pvc 是否正常运行;
  2. 使用redis客户端连接工具进行连接测试;
./redis-cli -h your_host -p 6379 

# 需要密码认证的
auth password('你的密码')

tdengine时序数据库检验

  1. 检验tdengine的deployment、service、pod、pv、pvc 是否正常运行;
  2. 进入到tdengine的Pod节点中,进入到容器环境,使用命令连接数据库,检验数据库是否能正常连接;
taos -h localhost 

iot-backed应用检验

  1. 检验iot-backed的deployment、service、pod、pv、pvc 是否正常运行;
  2. 进入到iot-backed的Pod节点中,查看容器日志是否正常启动;

iot-frontend应用检验

  1. 检验iot-frontend的deployment、service、pod 是否正常运行;
  2. 浏览器访问iot-frontend-service中开放的端口地址,能否正常访问到物联网平台页面

如上所述,6个应用都正常访问,那么恭喜你,物联网平台部署成功。

常见问题

查询数据显示无权限;

解决方法:

  1. 登录用户是否有查询权限,如登录用户没有权限,则联系管理员在统一认证中心中授权;
  2. 检查统一认证中心中,iot服务端授权的应用是否有权限菜单,如未添加权限菜单,请在统一认证中心数据库中执行以下命令:
# 注意事项:
# 1. 使用以下命令确保client_menu_function.sql文件放置在postgres账号有权限的目录,否则会报“Permission denied”错误。
# 2. 执行命令前替换 your_client 为你的授权iot-server应用的client_id
# 3. 确保你的数据库host与port的正确性,以下命令默认使用的host与port 是 localhost与 5432 ,使用 -h 与 -p 指定你的地址与端口
### 默认地址与端口命令
psql -d cljs-sso -v client_id=<your_client> -f /home/postgres/client_menu_function.sql
# 指定地址与端口命令
psql -h <your_host> -p <your_port> -d cljs-sso -v client_id=<your_client> -f /home/postgres/client_menu_function.sql

使用到的sql文件client_menu_function.sql