下载此文档

容器云平台多集群管理设计之多集群规划准备.pdf


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
该【容器云平台多集群管理设计之多集群规划准备 】是由【baba】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【容器云平台多集群管理设计之多集群规划准备 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..容器云平台多集群管理设计之多集群规划准备:..本文基于在容器云平台建设中的实践和多集群需求,es的多集群管理方案,包括多集群实际需求场景、es多集群概况及存在的问题、多集群规划准备。本文包括三视角四层次一闭环的多集群设计方案等阐述。如果您对系统学习该方面知识有兴趣,请关注本文后附介绍。1概述随着容器平台项目的落地和应用的深入,构建与实现多集群的统一管理成为一个亟待解决的问题。es作为容器调度管理框架,是实现容器化PaaS(平台即服务)平台的主要工具,es的多集群的统一管理能力,不过大部es的集群联邦来实现的,很少从PaaS平台来考虑整体的规划和设计。我们基于在容器云平台建设中的实践和多集群需求,es的多集群管理方案,对多集群管理及后续多云管理的主要问题提出了一种可行的解决方案。主要内容如下:(1)多集群需求场景(2)es集群联邦介绍(3)多集群部署潜在问题(4)es的多集群规划准备(5)基本概念定义(6)多集群容器云平台设计(7)多集群安全多集群设计工作主要包括多集群资源管理设计、多集群应用管理设计、多集群服务注册设计、多集群服务访问管理或多集群服务治理等内容。如果使用我们的“三视角四层次一闭环”的设计架构,这些问题将很容易解决,而且整个容器云平台设计是一个有机的整体,各个部分形散神聚,以松耦合架构实现平台的完整和统一。2多集群需求场景es+Docker提供了容器调度管理的基本能力,但对于一个集群跨机房部署、日常升级维护、应用的备份升级等都带来了一些不便,多集群跨机房跨数据中心的部署场景日趋明晰。在容器云平台使用过程中逐步提出了以下多集群需求场景::高可用:..多集群场景很重要的一个用途是为了业务应用服务集群级的高可用部署,防止意外情况下整个集群不可用,特别是生产环境。在虚拟化平台上构建容器云平台将会比较便利,但也存在虚拟化平台异常、网络异常等导致整个集群不可用的情况;这种情况下仅在一个集群里部署服务多实例无法满足高可用要求。这就需要考虑多集群部署实现高可用。:灾备一些关键业务传统是采用两地三中心的模式实现灾备。容器云平台涉及部署一些面向C端的重要业务,要求能实现灾备部署。不同集群往往要求位于不同的数据中心,从而实现关键应用的灾备部署。:集群升级es在不断变化和完善之中,es的容器云平台也需要及时升级。单es集群升级时不可避免的影响到业务运行。在多集群环境下,实现业务应用的蓝绿部署,可以一个一个的升级集群而不影响到正常的业务运行,实现用户无感知。es集群管理能力。:负载分发集群提供单一的访问出入口,在高并发场景下可能会存在性能瓶颈,通过多集群负载分发流量到不同集群,解决高并发场景下可能的性能瓶颈问题。:业务就近处理客户遍及全国各地的情况下,在不同地域的数据中心部署多个集群,实现客户访问的就近分发处理。这可能会涉及到不同地域客户数据的分库处理。在多集群场景下应用管理设计需要考虑这些不同的场景需求,这不同于单集群场景,如何能无缝使用不同集群的资源满足高可用等需求,使租户不增加额外的配置和操作,无感于多集群资源区别,是需要认真考虑的问题。es多集群的介绍。es多集群联邦介绍es使用集群联邦实现多集群管理。,增加了“集群联邦”Federation的功能。这个功能使企业能够快速有效的、低成本的跨区跨域、甚至在不同的云平台上运行集群。这个功能可以按照地理位置创建一个复制机制,将多个es集群进行复制,即使遇到某个区域连接中断或某个数据中心故障,也会保持最关键的服务运行。,不需要使用依赖云平台。:..K8s集群“集群联邦”es集群很相似。有一个“集群联邦”的APIserver提esAPI,并且通过etcd来存储状态。不同的是,一个通常的es只是管理节点计算,而“集群联邦”es集群。:kube-dns,这个插件可以在集群内部提供DNS服务,通es服务。es服务是由一组esPod组成的,这些Pod是一些已经容器化了的应用,这些Pod前面使用到了负载均衡器。es集群,这个集群里面有一个服务叫做Mysql,这个服务是由一组MysqlPod组成的。es集群中,其他应用可以通过DNS来访问这个Mysql服务。集群联邦federation/v1beta1API扩展基于DNS服务发现的功能。利用DNS,让Pod可以跨集群、透明的解析服务。:..,es集群中。es集群中分配工作负载。通过跨集群调度,我们可以:◎es集群均匀的调度任务负载◎es集群的工作负载进行最大化,es集群超出了承受能力,es集群中。◎根据应用地理区域需求,es集群中,对于不同的终端用户,提供更高的带宽和更低的延迟。,故障自动迁移集群联邦可以跨集群冗馀部署,当某个集群所在区域出现故障时,并不影响整个服务。集群联邦还可以检测集群是否为不可用状态,如果发现某个集群为不可用状态时,可以将失败的任务重新分配给集群联邦中其他可用状态的集群上。es多集群部署问题es集群可以跨机房跨数据中心,但不得不面对的现实问题是,网络延时和多集群应用和集群本身的升级问题。:..不管是传统两地三中心机房,或者新的数据中心,网络延时随着距离增加而增加,特别受制于网络带宽,跨机房或数据中心集群管理的网络延时可能会导致集群不稳定等问题。,往往并行可能是相异版本的。所以平台就需要支持多es版本,并且在多集群升级的时候,而用户无感知。这可能有些超越集群联邦能力,需要在平台层扩展支持。,大则几个G十多个G,跨集群部署或者迁移,势必对网络造成大的影响,也限制着服务的敏捷性响应。,但实际的环境中往往需要超越es集群联邦的基本能力,需要进行扩展。实现一层平台层,更好的管理多版本集群和支持应用的部署、运维、运营。5多集群规划准备在实际的项目过程中,es集群联邦的问题,因此我们不把重点放在es集群联邦的实现上,es从企业容器化PaaS平台实际建设需要出发,我们来规划多集群的设计和实现,包括:?多集群管理portal?es多集群?镜像仓库?日志中心?监控中心?配置中心?注册发现中心?服务治理?API网关?负载均衡?CI流水线?基础设施资源:..容器云平台多集群规划首先要考虑集群资源和基础设施资源的规划准备。,它存储着集群的核心数据。Etcd部署可和master部署在一起(Stackedetcd),也可独立于master外部署(externaletcd),各有优缺点。Stackedetcd方式master和etcd成员耦合在同一节点上。它比具有外部etcd节点的集群更易于设置,并且更易于管理复制。但是,stackedetcd群集存在耦合失败的风险。如果一个节点宕机,etcd成员和master实例都会丢失,冗余也会受损。因此为了高可用至少要部署3个节点来降低失败的风险。这种部署结构将master和etcd成员分离。因此,它提供了一个HA设置,其中丢失master实例或etcd成员的影响较小,对集群冗余的影响不如stackedetcdHA拓扑大。:..但是,此部署结构需要的主机数量是stackedHA的两倍。对于具有此部署结构的HA集群,至少需要三台主机(用于master节点)和三台主机(用于etcd节点)。基于实际的需求和etcd部署方式的优缺点,在测试环境可以以stackedetcd方式部署,生产环境则以external的方式部署。多集群场景下,每个集群都部署一套ETCD集群,随着集群节点数的增长,etcd节点的配置可能也需要调整扩容(具体配置需要根据实际环境测试确认,某环境etcd虚拟机4C8G3节点集群支持约200个节点)。,es集群,同时需要支持多个es版本的集群。多集群环境可能是跨数据中心、跨机房、跨不同的网络域等,因es的集群联邦功能,es集群联邦进行扩展,在portal能实时或近实时展示并监控所有集群的运行状态和集群上应用的运行状态。。我们很重要的一个场景es的升级,es版本及时的升级,同时又不影响到实际的业务应用。基于此我们规划3个集群,集群A1、集群A2和集群B,分别部署于不同的机房,同时实现高可用和灾备要求。:..集群A1、A2部署在A机房,集群B部署于B机房,两个机房互为备份,主要用于关键业务的高可用部署。集群A1、A2则实现集群级的灾备能力,在网络和节点上实现分离,一个集群的异常或崩溃不会影响到另外一个集群。。我们采用虚拟化主机,配置8C16G资源100G本地磁盘空间。在实际的运营过程中,在集群节点数达到100左右时,资源占用已经达到80-90%,不得不扩展资源到16C32G。多集群环境下每个集群都需要至少3个master节点。,比如通用节点、内存优化的节点、CPU优化的节点、IO优化的节点、GPU节点、双网卡节点等。Node节点通过虚拟化来管理可以实现节点的快速创建和回收,能够敏捷响应并容易实现自动化资源管理和分配流程,同时也会带来性能的部分损失。物理服务器则受限于机房机架资源,配置通常比较高,往往需要部署:..众多的容器,存在潜在的大范围故障影响。因此node节点的类型需要根据业务需要来定义。。es没有提供客户端负载均衡,需要以HAProxy或Nginx等来实现负载均衡,否则可能会导致只有一个master节点干活,另外的节点都在休息的状态(可以用keepalive实现高可用)。es内部已经实现,但如果是用springboot开发的应用使用外部注册中心(比如eureka),是需要在客户端实现负载均衡的,注册中心看到的是容器的地址。所以通常建议不用外部注册中心,直接使用容器的弹性伸缩特性,在容器平台内注册。还有一点是网络类型,2层网络和3层网络在服务的负载实现方面也会不同。2层网络可以直接通过容器地址访问,所以可以使用外部或租户级负载均衡器。3层网络则无法直接访问。。选择underlay或是overlay需要基于实际的需求,为安全和管理方便,建议overlay方式。多集群环境下每个集群的网络类型可能是不一样的。,在实际生产环境中可能需要实现高可用部署。否则可能会影响业务服务的调用。Ingress是集群级的,在多集群环境,可能需要在集群外部部署负载均衡器,实现请求的负载分发。、镜像仓库存储需求、应用存储需求。平台支持的存储类型和每块存储的大小可以根据实际来确定。多集群环境下每个集群都会有这些存储需求。,一个镜像仓库供平台所有集群使用。集群需要配置镜像仓库地址信息,通过租户权限管理来实现访问控制。每个集群也可以有自己的镜像仓库,集群可以配置和管理多个镜像仓库,以实现不同的业务部署管理需求。:..,用于汇集企业所有日志数据,同时支撑企业各种日志数据的查询、分析、分类、聚合等。如果企业已经建立了自己的日志中心,容器云平台或容器化PaaS平台可以规划对接已有日志中心,不建议部署重复冗余的组件。、组件等的配置,配置中心根据网络和业务需要可以规划为企业级或者集群级。也可对接已存在的配置中心。、告警提醒等,同时作为数据源为其他系统或平台提供监控源数据,用于查询和分析。告警方式有多种,通常采用邮件、短信、微信等方式,在监控告警中心进行配置。同时容器云平台在对接企业监控告警中心时,需要能实现双向的数据流动。,并提供注册服务的查询能力。通常情况下是不需要外部注册发现中心的,使用容器自身的注册发现机制会更便利。但也有很多开发人员不懂容器,采用SpringCloud框架实现了服务注册发现的自管理能力,就可能需要配置一个注册发现中心备用。也可对接已有的注册发现中心。,既可以用于服务集成、服务治理、安全控制等,又可以作为容器云平台前端的标准API开放平台。实现和容器云平台的双层安全治理能力。,服务治理能力是体现容器云平台应用管理核心价值的功能。通过容器云平台和API网关双层的服务治理能力满足企业多场景业务需求。,比如Ingress层、平台层、API网关层等都会涉及负载均衡的应用,也包括平台本身组件的负载均衡,比如master节点之间、。提供众多的工具通过自定义组合形成编译打包流水线,实现敏捷CI流程。这项功能更多是PoC测试演示用,实际场景中不是很实用。:..,在基础设施资源准备的时候需要考虑多数据中心或者多机房/机架,以满足灾备等需求。。同时需要根据实际的业务需求来确定多集群的部署方案,我们不建议什么最佳实践和本本主义,一定要基于自己企业实际的需求来确定最合适的方案。,也可以选择物理机,各有优缺点,通常要基于公司的实际来确定。,由于已经建设了虚拟化平台,使用虚拟机对容器节点的管理和运维、监控也便利很多,因此我们选择虚拟机作为容器节点。不同业务应用规划了多种类型的容器节点,使用不同的配置。,一个稳定安全的容器云平台,很大的决定因素在于操作系统是否稳定可靠,这里推荐一些大厂有维保的操作系统,如RHEL,也可以选择免费的CentOS,但是SELinux必须是打开的,要求至少为permissivemode,最好是enforcingmode,es版本中,由于kubelet不支持在SELinux开启enforcingwork,但是新版本中已能支持。(很多系统管理员为了方便,第一时间关闭SElinux,这在传统环境尚可容忍,但是若一个主机上跑百十个容器,多个系统时,风险被无限放大),SELinux定义了内核强制执行规则,在启用了SELinux的RHEL系统上,即使是运行特权容器,其中潜在的危险也得到了解除。SELinux阻止没有权限的容器进程访问主机内容,这虽然会带来一定的不方便,但安全方面的收益是值得的。在安装的OpenShift的生产环境,建议开启SELinux的Enforcing模式。,比如通用节点、组件节点、GPU节点、内存优化节点等,以满足不同业务类型的需求。,可以在容器云平台实现统一的管理。比如Portal节点、部署机、镜像:..仓库主机、独立部署的etcd主机等,es联邦中是不管理的,但需要在容器云平台上把这些节点管理起来。,因此可以简单的使用NFS、NAS存储,随着多集群的建设以及业务应用的增多,需要考虑建设对象存储。,另外如果容器采用2层网络,需要给容器规划IP段和vlan。2层网络模型有优势也有缺点,因此网络也需要根据实际确定。在多集群环境,可能部署不同网络模型的集群,以充分利用各种网络模型的优点匹配不同的业务场景需求。也可以单集群内使用overlay的网络,毕竟一个大规模的容器云平台,可管理性是非常重要的,所以,OVS、Flannel都是毕竟好的选择;国内还有不少客户喜欢Calico,这在小规模集群的时候是一个很好的选择。另外还可以选择Macvlan等。不同的集群可以使用不同的网络SDN,以满足不同的业务场景的需要。,我们定义如下一般性原则:?服务注册发现不跨集群,无论容器平台内部注册或者使用外部注册中心,每个集群都有自己独立的注册发现中心。?不同集群中的同一服务的负载均衡通过外部负载均衡器实现,比如通过API网关实现负载分发或者nginx服务实现负载分发。

容器云平台多集群管理设计之多集群规划准备 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人baba
  • 文件大小1.03 MB
  • 时间2024-09-23
最近更新