容器云平台规划部署架构设计.docx

上传人:李司机 文档编号:7207774 上传时间:2024-06-29 格式:DOCX 页数:13 大小:121.79KB
返回 下载 相关 举报
容器云平台规划部署架构设计.docx_第1页
第1页 / 共13页
容器云平台规划部署架构设计.docx_第2页
第2页 / 共13页
容器云平台规划部署架构设计.docx_第3页
第3页 / 共13页
容器云平台规划部署架构设计.docx_第4页
第4页 / 共13页
容器云平台规划部署架构设计.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《容器云平台规划部署架构设计.docx》由会员分享,可在线阅读,更多相关《容器云平台规划部署架构设计.docx(13页珍藏版)》请在三一办公上搜索。

1、引言随着移动互联网时代的大步跃进,互联网公司业务的爆炸式增长发展给传统行业带来了巨大的冲击和挑战,被迫考虑转型和调整.对于我们传统的航空行业来说,还存在传统的思维、落后的技术。一项新业务从提出需求到立项审批、公开招标、项目实施、上线、交付运堆,没有一年半载下不来.而此中最为严函的问题是,系统交付时的功能可能已经偏离最初的需求,系统使用方不满意,IT人员觉得付出的劳动没有被认可,双方矛盾加剧.大力发展移动互联网业务,因此对业务需求的响应速度有了更高的要求,越来越多传统应用架构,为了适应不断变化的业务需求和难以预估的访问量而开始进行分布式改造、微服务改造,实现持续集成、持续发布、自动化测试、支持弹

2、性伸缩、灰度发布、蓝绿部署等能力,容器云平台恰恰可以很好的支律上述需求.容器技术是近些年来最火爆的技术方向之一,容器云能更好服务于应用,不断提升客户满意度。按照云计第的三种类型,建设PaaS(PlatformasaSerViCe)平台将有助于我们实现这些目标.目前许多公司采用了VMWare技术完成了Iaas虚拟化建设,而IaaS虚拟化层仅提供了对存储、网络、计算资源的管理,在IaaS上即使经过了深度的定制化自动改造,流程走完时也是普遍在交付时将带有应用软件及软件配苣的一台虚拟机交付到申请者手中,申请者需要自己通过IP登录到机器上部署相应的应用,更不用说各应用组件之间的配合设置.而在容器平台中从

3、代码开发集成到一个容器说像打包了应用程序和运行环境,加上容器的配置文件,一整套流程走下来时,应用已经可以直接上线了,负载均衡,安全策略都可以具备,可以说容器云平台是Devops理论的最佳实践。对于容器平台的建设,从初期就需要做好平台的整体规划,切莫为了容器化而容器化,还是要因地制宜,寻找平衡点逐渐落地,混合实施,了解开发运维等多方面的需求、平台相关技术的原理机制,团结开发、运维、用户等才能共同设计好一个容器平台.本文基于对容器云平台的应用和研究,详细探讨容器云平台的规划部署和架构设计.1云基础架构介绍1.1 IaaSPaaSSaaSIaaS:基础架构即服务云基明架构服务称为基础架构即服务(Ia

4、aS),由高度可扩展和自动化的计算资源组成.IaaS是完全自助服务,用于访问和监控计算、网络,存储和其他服务等内容,它允许企业按需求和需要购买资源,而不必购买全部硬件.PaaS:平台即服务云平台服务或平台即服务(PaaS)为某些软件提供云组件,这些组件主要用于应用程序.PaaS为开发人员提供了一个框架,使他们可以基于它创建自定义应用程序.所有服务器,存储和网络都可以由企业或第三方提供商进行管理,而开发人员可以负奏应用程序的管理.SaaS:软件即服务软件即服务(也称为云应用程序服务)代表了云市场中企业最常用的选项。SaaS利用互联网向其用户提供应用程序,这些应用程序由第三方供应商管理.大多数Sa

5、aS应用程序亘接通过Web浏览器运行,不需要在客户端进行任何下载或安装.1.2 新宠CaaS(容器即服务)CaaS(容器即服务)一相对于IaaS和PaaS服务,CaaS对底层的支持比PaaS更灵活,而对上层应用的操控又比IaaS更容易.CaaS是以容器为核心的,它介于IaaS和PaaS之间,起到了屏蔽底屐系统IaaS,支撵并丰富上展应用平台PaaS的作用.将底层的IaaS封装成一个大的资源池,我们只要把自己的应用部署到这个资源池中,不再需要关心资源的申诘、管理,以及与业务开发无关的事情.PackagedSoftwareInfrastructureQSaService)Platform(asaS

6、ervice)Software(asaService)Appl(.MonsI*3Applicationsa11ageApplicationsApplicationsDataData三IDaURuntimeRUntinWErRuntimeRuntimeMiddlewareMiddirwdreMiddlETeMidd!rwreo/sO/SVirtualizationVftu,7atHnVirtualizationServersStOr的CetwokiViftgIIZabOnServersStcxagcServersServers9cagcNetworkingStorageNehvorking.Ne

7、tWOfking2容器云平台功能架构用户可以创建项目的GitIab服务,镜像仓库服务以及JenkinS服务,实现对项目的代码以及镜像的管理,运用Jenkins实现项目的持续集成,持续部署,持续交付等功能.不同角色处理不同的业务需求.系统管理员的主要任务是进行集群管理和云持续交付常理.系统管理员可以将部署好的集群海加到容器云平台上进行管理,同时可以进行修改集群,直看计凭资源等操作;在集群添加成功的情况下,系统售理员可以选择相应的集群和项目,创建项目Gitlab服务进行代码管理,创建项目镜像仓库服务进行项目镜像的管理,创建项目的JenkinsE反务,实现持续交付,持续集成,持续部署等功能.2.3

8、多租户管理在同一硬件平台的基础上实现多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间资源的隔离性和安全性.在对外运营的云平台中,租户管理用于监控用户使用的资源情况,方便进行资源的可用度计算和租户的计费.而在企业内部中,多租户的用户往往为各个不同的项目组,便于企业内部不同项目之间的隔离.2.4 跨主机集群可以将本地云平台内部的容器资源与平台外部的客户自有容器资源,及各种第三方公有云容器资源结合到一起形成混合容器云资源模式,增强平台的包容性,降低用户的使用门梯,同时用户无需放弃自身原有的基础资源.2.5 镜像仓库提供本地公有/私有潢像仓库,提供第三方镜像仓库如QUay等的潼像资源集成。

9、可以将本地镜像push到指定的镜像仓库中,也可以查看镜像的版本等信息.镜像仓库可以对平台使用人员应用开发成果进行统一保存管理,平台支持将应用制作成镜像,方便测试和运维.2.6 应用编排服务应用编徘服务是使容器之间能够通信、彼此可以传递运行期,同时省理多个容器的行为。当容器集群共同构建应用架构时,需要考虑集群环境中的容器,哪些端口需要品露、哪些卷需要挂载等信息.2.7 平台支漳服务容器云平台中需要一些公共服务,基于PaaS之上的公有中间展SDK开发组件或API调用接口,及公有PaaS服务平台.例:用户统一身份认证组件,APP的消息推送组件,公有消息队列平台等.2.8 容器首控对容器进行CPU/内

10、存资源配置,SSH或控制台容器接入,网络配普,环境变景设JS,数据卷挂接,资源监控,日志管控,事件记录,二级域名或自有域名分出等功能.2.9 数据卷或云盘基于云平台的数据存储工具.主要用于容器间数据共享,或某容器的外接数据卷进行数据持久化存储.3容器云平台架构设计容器云在未来有可能会成为云管理平台的统治者,也还会有更多的应用在容器云上原生运行起来。因为对于容器云,它可以把很多分散的物理计算资源抽象成一个大的资源池,利用这些资源来执行用户的计算任务.对于用户来说,操作一个分散的集群资源就像在使用一台计算机。无论是容器技术,还是DeVOPS和微服务,都说明灵活、弹性、轻量化的IT应用模式逐渐形成.

11、而这种模式的形成对于豆杂产品的快速开发有着积极意义,容器云架构方案,划分为六大部分,每个部分承担了正要的职责.具体技术架构如下:3.1 容器管理方案Kubernetes的主要功能包括:1.基于容器的应用部署.维护和滚动升级;2.负载均衡和服务发现;3.若机器和跨地区的集群调度;4.自动伸缩;5.无状态服务和有状态服务;6.广泛的Volume支持;7.插件机制保证扩展性。Kubernetes提供了很多的功能,它可以简化应用程序的工作流,加快开发速度.这里最佳实践是选择基于kubernetes的容器云平台,以便更轻松地部罟、扩展和管理应用程序,用户可以使用1.abel以自己的方式组织管理资源,还可

12、以使用Annotation来自定义资源的描述信息,比如为管理工具提供状态检直等.此外,Kubernetes控制器也是构建在跟开发人员和用户使用的相同的API之上.用户还可以编写自己的控制器和调度器,也可以通过各种插件机制扩展系统的功能.这种设计使得可以方便地在Kubernetes之上构建各种应用系统。3.2 平台监控方案3.2.1 容器监控容器监控的对象主要包括Kubernetes集群(各组件)、应用服务.Pod、容器及网络等.这些对蕊主要表现为以下三个方面:I-Kubernetes集群自身健康状态监控(5个基他组件、Docker、Etcd.Calico等)2.系统性能的监控,比如:CPU、内

13、存、磁盘、网络、filesystem及processes等;3.业务资源状态监控,主要包括:rc/rs/deployment、Pod.Service等;针对容器的整体运行状况及性能状况监控,目前主流的开源监控技术对比如下:Dockerps/top/statsSysdigWeaveScopeCAdvisorPrometheus*3H据详如度*妥HOSt监控nonenonenone*倍鲁功能nonenonenonenone监控苹容H资不none*笔者所使用的PrometheUS监控方案如下:3.2.2主机监控笔者这边使用zabbix全面采集并监控物理和虚拟服务器的可用性,CPU,磁盘交间和内存利用

14、率等关犍性能指标,采集网络中的所有性能指标和事件数据,全面监控网络性能,实时检测网络故障,排除故障并防止停,基于zabbix二次开发辅助功能,用于各类中间件的运行状态监控.3.2.3特定中间件监控提供常见中间件的性能监控(Weblogic、Tomcat、Nginx等),为中间件镜像制作脚本,中间件监控程序直接整合到容器镜像中,容器一启动,即时上报性能数据到监控平台。可以直接在ZabbiX监控平台查看中间件的运行状况。3.3 日志收集方案容器平台的日志系统一般包括:KUberneteS组件的日志,资源的事件日志及容器所运行的应用的日志.关于容器日志的收集,笔者整理了之前做过的四种方案,并对每种方

15、案进行对比:编号方案优点缺点I容器日志输出到标准整出接U收集起来用单方便应用程序要做改m、日志没有文本保存2在运行应用程序的POd中专门运行个收集日志的容器低融合.扩展性强.方便维护和升级需ISMkuboEEosya三l文件退行改造3缈个HPP的校像中都集或11石收集组件部胃方便.kubemete*的yael文件无须特冽M置.可以为每个app自定义口芯收集配置需要修改dockcrfilc,限轴Ifttt,会造成悔像过大4将POd口小目录统映射到南主机的个指定目京,然后在起1个日出收集程序完全的耦.不能要修改dockerfile.管理方便需要部K应用时.将日忠目录映射到*主机.统收集规则本容器云

16、平台,使用fuentd(以DaemonSet的方式启动)来收集日志,并将收集的日志发送给统一日志平台。3.4 镜像管理方案容器云平台中的镜像主要来源:1、用户私有的潦像仓库;2、云平台公共虢像仓库;私有虢像仓库作为用户之间部署镜像的基本隰离,是容器隰离的基础;而云平台的公共镜像仓库提供常用开源镜像的基咄服务.目前常用的镜像仓库有RegiStry、Nexus3,Harbor,QUay等.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源DockerDistribution.作为一个企业级私有RegiS

17、try服务器,Harbor提供了更好的性能和安全.提升用户使用RegiStry构建和运行环境传输镜像的效率.本课程中选取Harbor作为镜像仓库.下表是部分镜像仓库的基本功能都对比:RcgiitryDocker-RcQistry-WfrbNoxusHarboc白化WobUl/e*wa镇S除/权认还9访闷校制/套找能这/操作计/RtSTfulAPI/服务开*中文支约/3.5基础资源管理方案3.5.1 主机首理容器云平台的宿主机的接入方式是开放的,主机可以基于IaaS云平台,使用IaaS云平台归集所有计算资源,对计凭典资源进行二次分死之后,再接入云平台中;也可以直接基于裸机接入容器云平台;租户可以

18、根据自身使用情况任意添加自己的云主机到容器环境中来;而容器的整体资源限制交给容器管理平台来管理,对容器管理平台的规划是:让容器管理平台管理资源,分配容器,容器所在的操作系统归租户所有.3.5.2 网络管理CalicoArchitectureOoudOSBGPRR底层容器网络可以使用各种符合CNI格式的插件,如Calico.Calico是一个纯三层网络,没有引入一个DP1没有封包.在主机内部做另外一个容器,可以三条到达终端,你可以知道是谁出了问颖,调试的时候很容易,很好管理.容器内的应用数据传出来,和二层完全隔离,对于我们绝大多数的应用来讲只需要三层就够了,很少有应用处理二层.而且Calico支

19、持丰富的网络策略,可以实现多租户管理.3.5.3 存储管理方案目标:极快的创建速度,极小的存储资源消耗以及容器迁移的便捷性.后端存储主要采用CePh驱动.CePh独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。Ceph的强大足以支撞IT基础架构、和管理海量数据.CePh可提供极大的伸缩性供成千用户访问PB乃至EB级的数据.Ceph节点以普通硬件和智地守护进程作为支撑点,Ceph存博集群组织起了大量节点,它们之间靠相互通讯来自制数据、并动态地函分布数据.Ceph在容器云中主要应用场里是有状态服务.包括关系型数据库和nosql数据库等数据方要持久化的业务。4总结CaaS平台衍生出来的整个DevOps体系是至关再要的.Kubernetes起初作为用于容器调度的平台,其虽然实现了从容器到应用、从网络到存懂的诸多基础架构抽象,但其本身还是运行于传统OS的诸多应用进程,仍然需要通过必要的设计,来加强自身可靠性。CaaS云平台的使用可以节省开发成本,同时让开发、运堆人员将精力更加集中于业务本身,大蝠度降低运维难度和成本.而使用OPenStaCk等云技术提供强大的基础设施管理功能,共享计算资源、存储资源和网络资源,可以灵活的分配资源,为上层提供稳定可靠的资源服务.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号