Docker部署
大约 4 分钟
Docker部署
前置条件
详见准备工作
开始部署
- 上传部署目录iot2.0至服务器
- 进入到部署目录,执行部署应用安装命令
./install.sh your_namespace -d[可选参数]
参数说明:
1. 第一个参数:设置命名空间名称,在 Kubernetes 中,命名空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。
同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。 命名空间作用域仅针对带有命名空间的对象, (例如 Deployment、Service 等);
2. -d 可选的参数,添加参数表示删除已安装的应用;
- 检验应用是否部署成功
检验应用是否部署成功
执行部署脚本后,除命名空间外,其他应用均会在上述命名空间下生成对应的三个组件(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数据库检验
- 检验postgres的deployment、service、pod、pv、PersistentVolumeClaim(pvc) 是否正常运行;
- 进入到postgres的Pod节点中,进入到容器环境,使用命令连接数据库,检验数据库是否能正常连接;
psql -h localhost -p 5432 -U postgres dbname[可选]
- 使用数据库工具,检验数据库是否能正常连接;
redis缓存数据库检验
- 检验redis的deployment、service、pod、pv、pvc 是否正常运行;
- 使用redis客户端连接工具进行连接测试;
./redis-cli -h your_host -p 6379
# 需要密码认证的
auth password('你的密码')
tdengine时序数据库检验
- 检验tdengine的deployment、service、pod、pv、pvc 是否正常运行;
- 进入到tdengine的Pod节点中,进入到容器环境,使用命令连接数据库,检验数据库是否能正常连接;
taos -h localhost
iot-backed应用检验
- 检验iot-backed的deployment、service、pod、pv、pvc 是否正常运行;
- 进入到iot-backed的Pod节点中,查看容器日志是否正常启动;
iot-frontend应用检验
- 检验iot-frontend的deployment、service、pod 是否正常运行;
- 浏览器访问iot-frontend-service中开放的端口地址,能否正常访问到物联网平台页面
如上所述,6个应用都正常访问,那么恭喜你,物联网平台部署成功。
常见问题
查询数据显示无权限;
解决方法:
- 登录用户是否有查询权限,如登录用户没有权限,则联系管理员在统一认证中心中授权;
- 检查统一认证中心中,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