文档介绍:该【基于Rancher的微服务部署 】是由【司棋夸克】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【基于Rancher的微服务部署 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。计算机时代2021年第6期·1·
DOI:.cn33-1094/
基于Rancher的微服务部署
蔡永健1,2,何栓康1,2,顾丹鹏1,2,陈肖勇1,2,唐海涛1,2,3
(,浙江杭州311122;;
)
摘要:随着软件系统功能日益增加,代码呈现出一种高度耦合的现象。微服务架构将一个单体应用分解为多个微型
服务,使系统高可用和可扩展成为可能,并已成为主流架构风格。同时,Docker容器技术的发展,特别是各种Kubernetes
系列开源产品的成熟化,使得微服务落地成为现实。文章基于Rancher容器平台给出一种部署微服务系统的解决方案,
并在工程数据中心项目开发环境实现了微服务的整体部署,为今后软件自动化运维提供了重要的经验。
关键词:微服务;Docker;Kubernetes;Rancher;DevOps
中图分类号:TP399文献标识码:A文章编号:1006-8228(2021)06-01-04
DeploymentofmicroservicebasedonRancher
CaiYongjian1,2,HeShuankang1,2,GuDanpeng1,2,ChenXiaoyong1,2,TangHaitao1,2,3
(,Hangzhou,Zhejiang311122,China;
TechnologyCo.,Ltd.;)
Abstract:Assoftwaresystemfunctionsincreasedaybyday,
architecturedecomposesasingleapplicationintomultiplemicroservices,makingthesystemhighlyavailableandscalable,andhas
,withthedevelopmentofDockercontainertechnology,especiallythe
maturationofvariousKubernetesseriesofopensourceproducts,
Ranchercontainerplatform,thispaperpresentsasolutionfordeployingamicroservicesystem,andrealizestheoveralldeployment
ofmicroserviceintheprojectdevelopmentenvironmentoftheengineeringdatacenter,whichprovidesimportantexperiencefor
futuresoftwareautomaticoperationandmaintenance.
Keywords:microservice;Docker;Kubernetes;Rancher;DevOps
0引言码量少且便于维护,程序不会高度耦合。Rancher集成
单体应用随着需求频繁变化及用户数量的增加,了Kubernetes可实现微服务快速上线,并在某些微服
软件系统将成为一个庞然大物,一处更改往往会带来务资源不足时增加节点数实现扩容满足峰值需求,
多处变化,加之各种功能集合在一起,导致各个业务Rancher的出现为微服务落地提供了完美的解决方案。
高度耦合进而导致系统复杂性加大,编译、调试周期1微服务简介
变长,代码复用率降低,系统冗余增大,维护系统稳定
性成本增大,风险增高。为解决这种情况,
构[1]应运而生,并已成为主流代码架构。我司的主要微服务架构风格是一种以一组小型服务来开发
产品是工程数字化管理软件,采用微服务架构编写,单一软件应用的方法,每个服务运行在自己的进程
以及使用基于Rancher的Kubernetes[2]实现部署。微服中,服务之间采用轻量级通信机制通信。这些服务
务架构的出现可以将一个大型的单体应用程序拆分围绕业务能力构建,并且可通过全自动部署机制独立
为数十个微服务,每个微服务只做一种服务功能,代部署。这些服务几乎不需要集中式的管理,服务可用
收稿日期:2020-09-23
作者简介:蔡永健(1994-),男,浙江温岭人,助理工程师,主要研究方向:自动化运维。
万方数据
·2·
不同的语言编写,使用不同的数据存储技术。过Rancher,企业可不必使用一系列开源软件去从头搭
。Rancher提供了各环境中使用管理
⑴
方便开发和调试Docker和Kubernetes的全栈化容器部署和管理平台,
每一个微服务专注于单一功能,并通过定义良好的满足IT需求并为DevOps团队提供支持。
接口来清晰表述它的边界。服务越小,复杂度越低,
⑴
开发起来也就越简单、越快,调试和维护也更方便。采用图形化方式
这就缩短了服务开发和修改的周期,使程序能更快地易用的Web管理界面,在Docker易用性的基础上,
迭代。再一次降低了使用容器技术部署容器应用的难度。
⑵⑵
方便部署与更新管理主机集群
在微服务架构中,各个服务独立部署,当某个微管理对象是多台主机的集群,而不仅仅是单台容
服务发生变更时,只需要对特定部分的代码进行修器主机,创建和管理几台、几十台应用服务器集群,只
改,快速编译和部署相应的服务,而不用重新编译和需要复制、粘贴就能解决。
⑶
部署整个系统。这使得部署发布更加高效。如果新资源弹性分配
部署的服务出了问题,也只会影响一个服务,并且容内置应用负载均衡器,“服务”最小只需1个容器
易快速回滚,这意味着缩小了每个变更和部署的影响实例,当负载不够/或过剩时,只需要点点鼠标,增加/
范围,降低了风险,便于更快地使用新功能。减少“服务”中的容器数,即可解决问题,应用系统具
⑶
方便系统集成有天生的弹性扩容能力。
使用不同的语言、不同的技术栈开发的服务,只3Rancher部署方案研究
要按照统一的协议暴露,比如统一使用HTTPRESTful
形式暴露为服务,就可以方便地相互调用和协同。
使得我们能够将各类系统轻松集成在一起。微服务软件采用Java语言的SpringCloud框架[3]
⑷
提高容错能力编写,在微服务系统部署时一共有三台服务器:一台
单体应用中当某一个模块或组件发生故障时,容用于Rancher单机部署,运行无状态的服务,一台用于
易导致整个系统变得不可用。比如,某个模块的内存部署数据库等有状态的服务,一台用于做NFS数据持
泄露可能会导致整个应用因内存不足而崩溃。由于久挂载卷[4],三台服务器之间可互相通信。
微服务架构中的服务粒度很小且服务相互隔离,因此数据库服务器使用Centos764位服务器,无论是
即使某个服务出现问题,处理起来也相对容易,影响关系型数据库、NoSQL、缓存数据库等都使用Docker-
范围有限。微服务系统可以通过失败重试、失败转compose编排部署。
移、服务降级等机制实现容错处理,避免问题扩大,微NFS数据持久卷服务器,主要是用于特殊业务服
服务系统甚至能自动从故障中恢复。务做数据持久化使用,比如文件存储、日志存储等。
⑸
按需伸缩不同的服务通过不同的路径进行隔离,确保Rancher
可根据需求实现扩展。例如,系统中的某个微服上服务更新时数据不会丢失。
务遇到了瓶颈,可结合这个微服务的业务特点,增加Rancher使用Rancher官方文档进行离线安装,配
这个微服务的内存、升级CPU或者是增加节点数量,置时需要配置Harbor进行Docker镜像的拉取和使用,
而不用增加整个系统的部署导致运维成本上涨。而各微服务使用Nacos服务注册[5]管理工具管理各服务
且,由于不同的服务对资源的要求不同,我们可以根的注册和发现,并使用APIgateway管理微服务之间的
据实际情况灵活地对服务进行混合部署,以便更合理通信。最后,待服务部署完成后启动Rancher的
地分配服务器资源。Prometheus监控[6]配置、告警以及邮件通知功能。
2Rancher简介
各微服务使用Docker镜像进行部署,借助于
+Docker+Harbor+Maven+GitLab的CI/CD自动
Rancher是一个开源的企业级容器管理平台。通化[7]流程,开发人员将代码提交到GitLab源代码服务
万方数据
计算机时代2021年第6期·3·
器中,触发jenkins的自动化流程,调用maven进行编译,4Rancher部署方案应用
由于微服务代码中有docker-maven-plugin依赖配置,
故直接打包成Docker镜像后上传到Harbor镜像中心。
运维人员根据开发节点要求,将最新版本的镜像工程数据中心项目目标是为建立各工程行业
更新到Rancher的Kubernetes上。如果此服务是新增BIM模型及工程数据标准,梳理设计、建管、运维三大
的,可以使用部署服务的方式就行部署,也可以使用平台的主数据及关系,实现工程全过程数据贯通,并
导入yaml文件方式进行部署,配置时将镜像拉取变成在此基础上不断围绕工程进行数据的集成、复用、沉
Always,即“imagePullPolicy:Always”,如果不是第一淀,从而创造数据价值和业务价值。
次部署则只需要点一下更新部署按钮即可实现服务本项目使用SpringCloud微服务框架编写,根据功
更新。另外,由于每个镜像的版本不一样,可以根据能的不同将系统分成了十数个微服务,各微服务模块
需求回滚到之前的某个版本,部署也只需要一步。根据自身的需求使用不同的数据库类型,并利用
当某个服务的资源使用不足时,根据需求弹性地Nacos进行服务的注册和判别,用APIGateway进行
伸缩扩容。通信的管理,如图1所示。
图1项目网络拓扑图
、XXL-job定时任务、kafka
微服务系统使用Maven进行编译,每次编译借助于消息队列、各类数据库;第一次部署根据配置步骤将
代码层面的docker-maven-plugin插件以及基于Jenkins每个微服务都部署完成,并确保已经注册到Nacos并
的CI能力进行自动化编译打包并上传至镜像仓库。可访问。之后每次更新服务时,可选择点击重新部署
在第一次部署时,需要先搭建基础服务,比如按钮进行服务更新,如图2所示。
万方数据
里萌④滴口缪画‘
·4·
图2服务运行示意图
当微服务系统正常运行后,根据Rancher自带的根据阈值将告警信息及时发送给运维人员,及时对相应
告警、通知机制配置告警阈值,每当出现资源不足时,的微服务进行解决问题,资源监控可视化如图3所示。
图3资源监控示意图
工程数据中心项目现有14个业务微服务,6个各以上概述,可以看到该技术对持续交付、持续部署、持
种类型的数据库,还有Nacos服务、EFK日志平台,续监控、持续反馈方面有很大的提升作用,在很大程
kafka等诸多组件,在没有使用Rancher部署维护时,使度上减少了开发运维人员的时间和精力,同时也为项
用Docker-compose编排,每次都是所有服务全部更目履约提供了进一步的技术保障。在微服务落地方
新,导致出现服务短时间无法访问的问题,同时也经面,为微服务今后在Kubernetes集群上部署积累了宝
常会出现资源不足导致微服务宕机无法重启的问题,贵的的实践经验。在公司技术发展方面,为DevOps[8]
严重影响了软件研发的进度。自从迁移到Rancher进发展提供了理论依据和实践成果,更为今后公司实现
行维护,很方便地就能实现在Web页面更新、扩展服自动化运维提供了更多的技术支撑和经验。
务,在很大程度上解放了运维人力,另外通过Rancher参考文献(References):
的健康检查等功能达到了微服务自我修复,极大地提[1][J].
高了系统的稳定性。中国信息化,.
[2]屠雪真,[J].
5结束语
计算机与现代化,.
本文重点介绍了基于Rancher的微服务部署实现[3]黄强文,
方案,并概述了在工程数据中心项目上的实践。基于(下转第8页)
万方数据
慨耄善㈣黜础嗍珊狲磁盘使用率磁盘网络数据包集群负载鼢泓
·8·
会被外界不确定因素所影响,致使操作所得结果缺乏技术会持续进步,其应用更加普及,通过指纹非特征
准确性[10]。另外一种算法是细化二值化图像,在提取点识别算法的精准化处理能够为解决指纹信息衰减
指纹图像的特征点时,其可以弥补前者的不足之处。等难题提供更好的解决方案,进而在公安实践中提升
经过预处理后的二值化图像,只需要一个3×3的模板特征点少的残缺指纹准确识别的可能性,也可以控制
就可以提取出指纹图像中的分叉点和端点。此方法并降低匹配识别过程中人工干预等原因引入的误差
操作简单、可信度高,并且应用范围更为广泛。问题。
相信在不久的将来,指纹识别技术必将会广泛应
4指纹图像存储技术的发展
用于生活中的更多领域,特别是在可穿戴式设备研发
指纹自动识别系统在指纹图像采集、图像增强、领域具有极其广阔的发展市场。因此,随着科技的发
图像特征点提取直至图像存储等多个方面已经实现展,指纹自动识别技术必将成为时代的“热宠”。
了操作体系与程序的完善化,后续发展的攻关任务就参考文献(References):
是创建一个系统完善、功能强大的指纹数据库系统。
[1][D].南京理工大学,2008:
通过将采集获得的指纹数据存储于数据库中,必然使30-35
得指纹信息的数据量持续扩大。这也使得后续公安[2][J].人力资源管理,
刑事技术鉴定进行指纹匹配识别时,:251
库中搜索获得指纹信息的可能性以及利用指纹比对[3]倪增超,[J].科技创新
完成个体识别的准确性都将大为提升。但这其中的与应用,:40
关键是数据整合,因为数据归类整理将会在直接影响[4][J].
匹配识别结论的准确性。淮南师范学院学报,(5):105-107
[5]顾陈磊,刘宇航,聂泽东,李景振,
为了解决上述问题,国内已有学者提出了特征点
状[J].中国生物医学工程学报,(4):470-482
圆柱存储单元的理念,即将特征点的位置和方向等
[6][D].沈阳理工
信息分别转换和存储,通过转换存储,获得指纹特征
大学,2017:21-26
点的数据信息,随后提取检材中不同特征点与指纹[7][J].电子测试,
数据库中比对样本进行比较检验,:264-267
%。但是目前由于指纹数据库仍然[8]姚辰松,[J].科技信息(学
缺少统一的存储标准,因而导致应用效能的整体提升术研究),:272-273
尚无法实现。[9]
综上所述,指纹自动识别技术已经在诸多领域取和实现[D].电子科技学,2015.
[10][J].计
得了良好的应用。相信在科技不断革新与发展力量
算机光盘软件与应用,:24-26▲
的推动下,模式识别、人工智能以及高分辨指纹采集CE
􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔􀤔
(上接第4页)
架构设计[J].微型电脑应用,[J].电子技术与软件工程,.
[4]严丽云,何震苇,杨新章,张凌,[7]蔡永健,路云菲,邬远祥,
数据存储[J].电信科学,[J].计算机
[5]叶建辉,周帆,殷智,韩博文,,.
搜索引擎[J].中国科技信息,.[8]黄璜,张贺,[J].
▲
[6]马永,吴跃,何李囡,,
万方数据