云原生GIS技术篇——学起来!云原生GIS应用部署运维实操

发布时间:2020 年 01 月 15 日  文/云产品研发中心 苏乐乐 王伊湋
导读:为了推广落地云原生GIS,SuperMap将繁琐的部署流程封装,通过SuperMap iManager实现了一键部署,大大降低人工与时间成本。

  应用(Application)在日常生活与工作中越来越频繁地出现。办公软件Microsoft Office、WPS,通讯软件QQ、微信,应用程序Word、PowerPoint等,无论手机APP还是PC端软件,都属于应用。

  常规应用的部署相对简单,执行安装程序即可。云原生GIS应用部署门槛较高,需要把应用制作成Docker 镜像,通过编排文件对应用进行配置,再将编排文件传至Kubernetes中。其涉及到的实例类型包括Service(配置服务)、Deployment(部署)、Statefulset(有状态副本集)、Job(任务)、PersistenVolumeClaim(持久化存储卷索取)、ServiceAccount(服务账户)、ConfigMap(配置字典)等。

  面对如此复杂的部署流程,大量用户被迫被拒之门外。为了推广落地云原生GIS,SuperMap将繁琐的部署流程封装,通过SuperMap iManager实现了一键部署,大大降低人工与时间成本。

  云原生GIS应用部署

  SuperMap提供Helm部署与iManager部署两种方式。前提条件:Kubernetes环境1.9及以上。

  ● 方法一:Helm部署

  Helm可管理Kubernetes中的GIS应用,将多个GIS应用统一打包,实现快速部署。Helm包名称:imanagerfork8s_gettingstart。

  1、打开Helm包中的变量文件:

  vi imanagerfork8s_gettingstart/values.yaml

  2、编辑变量

  · 配置Kubernetes主节点URL

  deploy_kubernetes_master_url: https://192.168.169.42:6443

  部署时,上例中192.168.169.42:6443需用您的实际IP和端口号替换。

  · 配置Kubernetes服务器对外IP

  deploy_kubernetes_public_ip: 192.168.194.42

  部署时,上例中192.168.169.42需用您的实际IP替换。其余变量均设有默认值,可保持不变或根据实际环境更改。

 

 图1 Helm包配置云原生GIS应用变量

  配置完成后保存并退出。

  3、执行安装命令

  helm install -n imanager --namespace icn ./imanagerfork8s_gettingstart/

  等待安装,若无报错,则安装成功。

  ● 方法二:SuperMap iManager部署

  SuperMap iManager是一款GIS监管运维产品,将它安装在Kubernetes环境中,可一键部署多种GIS应用环境。

  SuperMap iManager包名称:supermap-imanager-for-kubernetes-10.0.0-190819-91-linux64.tar.gz

  1、安装SuperMap iManager

  · 解压iManager部署包

  tar -zxf supermap- imanager-for-kubernetes-10.0.0-190819-91-linux64.tar.gz

  · 配置环境

  进入解压后的目录

  cd supermap-imanager-for-kubernetes

  打开配置环境变量

  sudo vi .env

  所有变量均设有默认值,可保持不变或根据实际环境更改。

  

图2 SuperMap iManager包配置环境变量

  配置完成后保存并退出。

  · 执行部署命令,安装iManager

  chmod +x startup.sh && ./startup.sh

  安装完成后,通过http://IP:31100访问iManager (* IP用Kubernetes的Master节点IP替换,例:http://192.168.194.42:31100)。

  2、部署云原生GIS应用

  SuperMap iManager安装完成后,可一键部署8种GIS 应用环境,7种GIS数据库环境,能有效避免复杂的环境搭建、部署、配置、调试工作。云原生GIS为其中的一种环境,可在“GIS微服务”快速创建,点击“创建GIS微服务”并输入环境名称,即可在Kubernetes中自动部署。

  

图3 云原生GIS环境

  行业应用扩展

  云原生GIS的高扩展性支持添加第三方行业应用,帮助行业应用快速上云、一键部署,达到GIS平台应用与行业应用统一监管运维的目的。具体步骤如下:

  1、将行业应用制作成Docker镜像。

  2、Push行业应用镜像到镜像仓库。

  修改镜像tag:

  docker tag f4sh32t3455dregistry.cn-beijing.aliyuncs.com/supermap/mygisapp:v1

  * f4sh32t3455d是镜像ID,操作时用您的实际镜像ID或名称替换。

  * registry.cn-beijing.aliyuncs.com是镜像仓库地址,操作时用您的实际仓库地址替换。

  * supermap是镜像仓库命名空间,操作时用您的实际命名空间替换。

  * mygisapp:v1是镜像的名称及版本号,mygisapp需用您的实际镜像名称替换,v1可自定义。

  Push镜像到镜像仓库:

  docker push registry.cn-beijing.aliyuncs.com/supermap/mygisapp:v1

  * registry.cn-beijing.aliyuncs.com/supermap/mygisapp:v1与上一步的修改保持一致。

  3、编写YAML文件,SuperMap iManager支持的实例类型包括Service,Deployment, Statefulset, Job, PersistentVolumeClaim, ServiceAccount, ConfigMap。(YAML编写规则请参见Kubernetes官方文档)

  以Service的annotation和labels属性为例:

  图4 YAML文件编写

  上图为行业应用中一个服务的部分编排示例。服务名称为“mygisapp”(name: mygisapp),定义该服务为行业应用的访问入口(entrance: true),访问入口的端口号为“5678”(entrance-port: 5678),并对外暴露端口(type: NodePort)。

  4、在SuperMap iManager界面上传YAML文件,添加行业应用:

 

 图5 添加行业应用

  5、添加完成后,行业应用会显示在SuperMap iManager 左侧导航栏中,参照部署云原生GIS应用的方式部署行业应用。

  

图6 创建行业应用

  GIS运维

  云原生GIS在运维方面提供资源监控、日志收割、内置存储以及内置计算等能力。支持资源实时监控,可监控物理机与服务节点的CPU、内存、磁盘及网络系统文件的使用情况;支持UI、微信告警,可通过微信命令调节服务节点。支持访问分析,统计服务节点访问量,查看节点日志;支持容器日志查询,掌握容器动态。内置存储池与计算池,可一键开启分布式存储资源以及计算集群资源。

  ● 资源监控

  SuperMap iManager可实时监控Kubernetes节点机器、GIS应用环境与GIS数据库环境的运行情况,监控指标包含CPU占用率、内存使用率、文件系统使用率,以及网络通讯状况。

  在使用过程中,发现系统响应速度变慢、部署时间过长等问题,可在SuperMap iManager左侧导航栏点击“概览”,查看Kubernetes节点状况。环形统计图通过颜色与百分比展示环境总体健康,折线图记录了各节点机器的运行历史,方便找出异常机器与异常原因。

 

 图7 Kubernetes节点机器监控

  GIS应用环境与GIS数据库环境出现问题,如访问入口失效、数据不能上传,可点击环境名称进入服务详情页面。当“状态”一栏分子为“0”时,表示该服务节点未正常运行,可点击“重新部署”进行修复。下拉页面,折线图记录了各服务的运行历史,方便找出异常服务与异常原因。

 

 图8 GIS环境监控

  在“报警服务”中添加“报警规则”,可指定“报警对象”与“触发条件”。达到触发条件时,SuperMap iManager会自动报警,通过微信报告故障。使用微信下达指令,还可获取告警列表、伸缩指定服务。

  

图9 微信告警

  ● 日志收割

  SuperMap iManager提供服务节点日志与容器日志。服务节点日志基于EFK方案,即Fluentd收集Kubernetes运行中产生的日志和节点访问记录,Elasticsearch统一存储,Kibana提供可视化展示。在服务详情页面点击“日志”,在“发现”处可查看服务节点发生事件的类型、时间、原因,通过关键词筛选重要日志信息。

  “仪表盘”可查看服务的“请求总量”、“节点平均响应时间”、“请求类型统计”、“节点访问数量统计”等指标,掌握用户动态。

  容器日志记录了容器实时运行状况。监控时发现异常服务,通过容器日志能快速定位故障原因,及时发现并处理。

  ● GIS存储资源内置能力

  针对分布式分析服务存储,SuperMap iManager提供内置HBase、PostGIS、PostgreSQL、HDFS目录环境,无需繁琐的人工搭建,开启即可使用。

  ● GIS计算资源内置能力

  在大数据计算处理方面,SuperMap iManager提供了内置Spark与Hadoop YARN集群环境,可一键“开启/禁用”,不但免环境搭建,还能节省系统资源。

  超图云原生GIS提供了一整套GIS应用、管理运维解决方案,较之传统GIS应用更强壮、易用、开放。安装SuperMap iManager后,可实现GIS环境的一键部署,方便行业应用快速上云。面对更细粒度的微服务,提供了更加完善的监控指标、运维方法,帮助相关从业者应对运维难题。

版权所有© 1997-2019 中国科学院地理信息产业发展中心 《超图通讯》编辑部