首页 >> 国遥动态 >> 技术分享 >> EV-Server7基于Kubernetes的GIS云平台搭建
EV-Server7基于Kubernetes的GIS云平台搭建
发布时间:2022-12-14 | 来源: | 点击量:5886

 北京国遥新天地信息技术股份有限公司EV-Server研发团队一直在积极探索更好的产品交付方式和更优的服务资源管理,从而实现基于传统的虚拟化技术到基于Docker的容器化交付转变。

 最近,该团队结合Kubernetes(简称K8s)的部署运维优势,搭建了基于K8s的GIS云平台—EV-Server7,以便提高生产环境中对集群管理、运行效率和产品运维等方面的综合能力。

 一、容器化部署优势

222.png

 统一运行环境:

 传统GIS平台都部署在物理机或虚拟机中,在部署和维护过程中,需要关心平台的CPU、内存、硬盘等硬件资源。近些年,容器的出现彻底解决了资源依赖问题,使用户能够更好的关注GIS业务本身。

 弹性能力更强:

 在规模化、集群化部署时,通过使用容器方式,用户可以无需考虑系统平台之间的差异,从而使服务部署、启停管理变得更加方便,节点伸缩更加容易,减少用户运维成本。

 交付时间缩短:

 通过容器化部署应用,在业务发生增加或变化时,用户可以动态添加和维护已有业务服务,而不影响终端用户应用,实现服务滚动更新迭代,优化产品交付时间。

 容错能力强:

 EV-Server 7将服务容器化后,可通过K8s实现动态伸缩,有效避免服务单点故障。

 鉴于容器化的上述优势,EV-Server 7已经对服务全部进行了微服务化改造,以适应容器化应用。

 二、EV-Server7基于K8s的部署架构

图片1.png

EV-Server7基于K8s的部署架构图

 自上而下,EV-Server7将各个业务功能解耦为独立的微服务。在K8s中,每一个微服务运行在独立的容器中,并且每个微服务都可以部署在单个或多个容器中以提高在高负载情况下的服务可用性。同时,由于不同容器之间不共享资源,容器运行时不会相互影响,大大提高了服务可靠性。在EV-Server7中,通过注册中心和服务网关可以快速聚合各个微服务和自定义插件的API,最终实现服务接口统一对外提供。

 三、快速搭建高可用GIS云平台

 进行微服务改造的目的是为了更好的容器化,这样可以借助K8s进行容器编排。如图所示,在EV-Server7部署完成后,每一个服务都是一个单独的容器,服务之间环境隔离,运行时互不影响。当对某个服务进行升级更新时,只需单独更新某一个镜像即可。

图片2.png

 部署集群时相比在虚拟机或物理机部署要容易很多,通过K8s部署集群基本不用考虑物理环境。每个服务分配在哪个物理节点都是由K8s完成,在K8s中每个服务都会有一个服务名(如下图的ev-rasterserver),服务之间的通讯通过服务名进行,这样服务可以自动发现、自动修复。如果某个服务因为某种原因挂掉,服务会被迅速拉起,进行故障迁移,保证线上环境能够不间断运行。

图片3.png

 当线上业务量增加时,可以动态增加服务实例的数量,比如当业务需要大量访问影像时,可以启动多个影像服务。EV-Server7集群内部会根据负载均衡策略,启动相应的影像服务来应对突出其来的访问压力。当业务高峰过后,亦可将多余的服务实例回收,节约集群资源。

555.png

 四、可扩展、快速交付

 集群插件开发和EV-Server7单机插件开发一样,只需将原本的插件打包为一个docker镜像,之后将docker镜像推送到镜像仓库。下面展示具体的插件部署流程,以下步骤只在首次部署时完成即可,以后只需从仓库拉取镜像,大大加快了交付流程。

 在Kuboard中创建对应的插件容器,首先配置镜像的名称和描述等信息。

图片1-.png

 之后配置容器的镜像仓库信息和容器的启动命令,参数中的配置必须进行添加,将插件添加到注册中心,由服务网关进行统一调用。配置完成后,点击保存则会开始创建对应的镜像容器。

图片2-.png

 镜像启动完成后如下图所示。

图片3-.png

 当前,云GIS已经越来越多的应用于各行各业,EV-Server7结合K8s实现了GIS支撑环境的快速构建和硬件资源的有效管理,从而为更好地服务于各行业提供有效保障。