CN111580930A - 一种面向国产平台的云原生应用架构支撑方法及系统 - Google Patents
一种面向国产平台的云原生应用架构支撑方法及系统 Download PDFInfo
- Publication number
- CN111580930A CN111580930A CN202010384960.8A CN202010384960A CN111580930A CN 111580930 A CN111580930 A CN 111580930A CN 202010384960 A CN202010384960 A CN 202010384960A CN 111580930 A CN111580930 A CN 111580930A
- Authority
- CN
- China
- Prior art keywords
- node
- container
- component
- virtual machine
- management component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 241000322338 Loeseliastrum Species 0.000 claims abstract description 25
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 23
- 230000002776 aggregation Effects 0.000 claims abstract description 15
- 238000004220 aggregation Methods 0.000 claims abstract description 15
- 230000002085 persistent effect Effects 0.000 claims abstract description 4
- 238000005516 engineering process Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000006978 adaptation Effects 0.000 claims 1
- 230000003862 health status Effects 0.000 claims 1
- 241001026509 Kata Species 0.000 abstract description 22
- 238000011161 development Methods 0.000 abstract description 5
- 230000005012 migration Effects 0.000 abstract description 5
- 238000013508 migration Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 30
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 6
- 230000008602 contraction Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向国产平台的云原生应用架构支撑方法及系统,属于云原生应用架构领域,本发明要解决的技术问题为针对国产云平台的实际需求,如何能够有效避免在云环境迁移过程中遇到的开发过程复杂、弹性能量不足、资源运维复杂等,采用的技术方案为:该方法具体如下:使用Kubernetes容器管理组件,根据应用负载大小对集群进行扩容或缩容;使用Kata组件提供轻量化虚机容器,轻量化虚机容器跑在Kubernetes容器管理组件上,并受Kubernetes容器管理组件的管理;使用Ceph组件支持分布式存储能力,轻量化虚机容器使用Kubernetes容器管理组件的容器持久化卷关联Ceph集群;使用Calico组件管理轻量化虚机容器的网络,结合Kubernetes容器管理组件的服务路由功能,实现轻量化虚机的通信聚合能力。
Description
技术领域
本发明涉及云原生应用架构领域,具体地说是一种面向国产平台的云原生应用架构支撑方法及系统。
背景技术
云原生从字面意思上来看可以分成云和原生两个部分。云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端。原生就是土生土长的意思,在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如云服务的弹性和分布式优势。
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能,提高了大规模容器集群管理的便捷性和高可用性。
故针对国产云平台的实际需求,如何能够有效避免在云环境迁移过程中遇到的开发过程复杂、弹性能量不足、资源运维复杂等是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种面向国产平台的云原生应用架构支撑方法及系统,来解决针对国产云平台的实际需求,如何能够有效避免在云环境迁移过程中遇到的开发过程复杂、弹性能量不足、资源运维复杂等的问题。
本发明的技术任务是按以下方式实现的,一种面向国产平台的云原生应用架构支撑方法及系统,该方法具体如下:
使用Kubernetes容器管理组件,根据应用负载大小对集群进行扩容或缩容;
使用轻量化虚机组件(Kata组件)提供轻量化虚机容器,轻量化虚机容器跑在Kubernetes容器管理组件上,并受Kubernetes容器管理组件的管理;其中,轻量化虚机组件(Kata组件)支持虚机实例容器化,通过运行轻量化虚机容器,启动时间不大于100毫秒;
使用低延迟分布式存储组件(Ceph组件)支持分布式存储能力,轻量化虚机容器使用Kubernetes容器管理组件的容器持久化卷关联Ceph集群;
使用多虚拟资源实例通信聚合组件(Calico组件)管理轻量化虚机容器的网络,结合Kubernetes容器管理组件的服务路由功能,实现轻量化虚机的通信聚合能力,进而实现Kubernetes、Kata、Ceph、Calico的国产化替代。
一种面向国产平台的云原生应用架构支撑系统,该系统包括Kubernetes容器管理组件、轻量化虚机组件(Kata组件)、低延迟分布式存储组件(Ceph组件)和多虚拟资源实例通信聚合组件(Calico组件),通过Kubernetes容器管理组件、轻量化虚机组件(Kata组件)、低延迟分布式存储组件(Ceph组件),同时采用多虚拟资源实例通信聚合组件(Calico组件)以及基于负载预测的弹性伸缩与资源同步技术实现适配国产处理器。
作为优选,所述Kubernetes容器管理组件包括Master节点和应用节点,轻量化虚机容器跑在Kubernetes容器管理组件的应用节点;其中,Master节点包括apiserver、副本控制器和调度器;副本控制器和调度器使用一主多从的高可用方式,在同一时刻只允许一个服务器处理具体任务;Kubernetes容器管理组件通过etcd统一存储以实现副本控制器和调度器的选主功能;副本控制器和调度器服务之间无通信,利用etcd的强一致性实现在分布式高并发情况下leader节点的全局唯一性;
apiserver(本身是无状态服务)用于把资源数据存储到etcd,后续的业务逻辑由副本控制器和调度器执行;Kubernetes容器管理组件同时运行多个apiserver服务,通过代理把流量转发到不同的apiserver上实现接入层的高可用。
更优地,所述Kubernetes容器管理组件通过etcd统一存储以实现副本控制器和调度器的选主功能具体如下:
(1)、副本控制器和调度器在启动后先尝试获取leader节点身份,在获取leader节点身份后执行具体业务逻辑;
(2)、副本控制器和调度器分别在etcd中创建自己的节点信息,节点信息中记录当前leader节点信息以及上次更新时间;
(3)、leader节点定期更新节点信息,维护自己的leader身份;
(4)、每个从节点的服务均定期检查节点信息并判断leader节点信息是否在规定时间范围内更新:
①、若未更新,则从节点将尝试更新自己为leader节点。
更优地,所述应用节点通过不断与Master进行通信来维护自己的健康工作状态;如果Master无法访问到某个节点,则会将该节点标记为不可用,不再向该节点调度应用,同时会把不可用节点的应用调度到其他节点。
作为优选,所述轻量化虚机组件(Kata组件)通过RuntimeClass技术与Kubernetes容器管理组件整合到一起,通过Kubernetes容器管理组件管理轻量化虚机组件(Kata组件)。
更优地,所述轻量化虚机组件(Kata组件)包括,
kata-runtime,在一个OCI兼容的容器运行时,用于处理OCI运行时规范指定的所有命令并启动kata-shim实例;
Kata-shim,用于处理容器的所有I/O流(I/O流包括stdout、stdin和stderr)、转发所有的要发送出去的信号以及监控容器进程;
Kata-agent,用于运行在guest中,管理容器和处理容器的运行;
Kata-proxy,用于给多个kata-shim和kata-runtime客户端提供对kata-agent的访问,在每个kata-shim和kata-agent之间路由I/O流和信号。
作为优选,所述低延迟分布式存储组件(Ceph组件)是通过使用Kubernetes的PersistentVolumeClaim、StorageClass、PersistentVolume创建,确保在同一个Kubernetes集群内,定义和提供不同类型的、不同参数的卷,并有能力选择不同的存储选项;并利用StorageClass直接创建PersistentVolumeClaim即可分配使用,并自动创建PersistentVolume,对应Ceph块存储上的一个image。
更优地,所述低延迟分布式存储组件(Ceph组件)包括RADOS对象存储系统、librados库层、块存储接口、文件系统接口和文件系统的元数据服务器(MDS);
其中,RADOS对象存储系统是一个可靠的、自组织的、可自动修复、自我管理的分布式对象;RADOS对象存储系统内部包括ceph-osd后台服务进程和ceph-mon进程;
librados库层用于本地或者远程通过网络访问RADOS对象存储系统并支持多种语言的接口;
块存储接口通过librbd库提供块存储访问接口并为容器提供卷;
文件系统接口提供两种接口,一种是标准的posix接口,另一种通过libcephfs库提供文件系统访问接口;
文件系统的元数据服务器(MDS)用于提供元数据访问,元数据直接通过librados库访问。
作为优选,所述多虚拟资源实例通信聚合组件(Calico组件)包括,
Felix,用于负责配置路由及ACL的信息来确保Endpoint的连通状态;Felix作为CalicoAgent运行在每台节点;
Etcd(分布式键值存储),用于负责网络元数据一致性,确保Calico网络状态的准确性;
BGP Client(BIRD),用于负责把Felix写入Kernel的路由信息分发到当前Calico网络,确保Workload间的通信的有效性;
BGP Route Reflector(BIRD),用于大规模部署时使用,摒弃素有节点互联的mesh模式,通过一个或者多个BGP Route Reflector来完成集中式的路由分发。
本发明的面向国产平台的云原生应用架构支撑方法及系统具有以下优点:
(一)通过使用本发明可以提供换一个基于国产处理器的软硬件平台,保证单个轻量级虚拟资源实例启动时间不大于100毫秒,存储访问延迟不大于3毫秒,并支持多实例间的通信聚合,有效推动国产平台云原生应用的进步;
(二)本发明可以支持云原生应用架构技术国产化、轻量级虚拟实例容器化、低延迟分布式存储、虚拟资源实例通信聚合等能力,为国产化平台提供一个云原生应用架构;
(三)本发明采用最流行的Kubernetes实现虚拟实例的容器化管理,保证虚拟实例可以快速创建和有效管理。
附图说明
下面结合附图对本发明进一步说明。
附图1为面向国产平台的云原生应用架构支撑方法的流程框图;
附图2为面向国产平台的云原生应用架构支撑系统的结构框图;
附图3为Kubernetes容器管理组件的架构图;
附图4为Kata组件的架构图;
附图5为Ceph组件的架构图;
附图6为Calico组件的架构图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种面向国产平台的云原生应用架构支撑方法及系统作以下详细地说明。
实施例1:
如附图1所示,本发明的面向国产平台的云原生应用架构支撑方法,该方法具体如下:
S1、使用Kubernetes容器管理组件,根据应用负载大小对集群进行扩容或缩容;
S2、使用Kata组件提供轻量化虚机容器,轻量化虚机容器跑在Kubernetes容器管理组件上,并受Kubernetes容器管理组件的管理;其中,Kata组件支持虚机实例容器化,通过运行轻量化虚机容器,启动时间不大于100毫秒;
S3、使用Ceph组件支持分布式存储能力,轻量化虚机容器使用Kubernetes容器管理组件的容器持久化卷关联Ceph集群;
S4、使用Calico组件管理轻量化虚机容器的网络,结合Kubernetes容器管理组件的服务路由功能,实现轻量化虚机的通信聚合能力,进而实现Kubernetes、Kata、Ceph、Calico的国产化替代。
实施例2:
如附图2所示,基于实施例1的面向国产平台的云原生应用架构支撑系统,该系统包括Kubernetes容器管理组件、Kata组件、Ceph组件和Calico组件,通过Kubernetes容器管理组件、Kata组件、Ceph组件,同时采用Calico组件以及基于负载预测的弹性伸缩与资源同步技术实现适配国产处理器。
容器技术已经成为一种被大家广泛认可的服务器资源共享方式,在按需构建容器技术操作系统实例的过程当中,为系统管理员提供极大的灵活性。
容器技术的优势:
①、容器技术最大的优点是创建容器实例比创建虚拟机实例快得多,容器轻量级的脚本可以从性能和大小方面减少开销;
②、每个容器都可以看作是一个不同的微服务,因此可以独立升级,而不用担心同步;
③、每一个容器的镜像都有版本控制,这样就可以追踪不同版本的容器,监控版本之间的差异;
④、容器封装了所有运行应用程序所必需的相关的细节比如应用依赖以及操作系统,这就使得镜像从一个环境移植到另外一个环境更加灵活;比如,同一个镜像可以在开发、测试或Staging环境中运行;
⑥、容器之间的进程是相互隔离的,一个容器的升级或者变化不会影响其他容器
如附图3所示,Kubernetes是一个全新的基于容器技术的分布式架构领先方案,在容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性和高可用性。
Kubernetes具有如下特性:
(一)、组件容器化:通过不断检测的方式保证容器服务和节点代理服务的高可用,其他组件将以静态容器的方式由节点代理保证高可用。
(二)、采用高可用、强一致性的服务发现存储仓库:etcd是一个高可用强一致性的键值存储系统,主要用于共享配置和服务发现。etcd专门为管理分布式系统中节点状态、集群环境的服务发现和注册而设计,它提供数据TTL失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。etcd让服务快速透明地接入到计算集群中,让共享配置信息快速被集群中的所有机器发现,通过etcd可以构建一套高可用、安全、易于部署以及响应快速的服务集群。etcd通过Raft一致性算法以保证强一致性,解决了分布式场景中最为常见的一致性问题,为服务发现提供了一个稳定高可用的消息注册仓库,为以微服务协同工作的架构提供了无限可能。
(三)、Master节点高可用:在平台中,Master节点服务扮演着总控中心的角色。Master节点包括apiserver、副本控制器和调度器;副本控制器和调度器使用一主多从的高可用方式,在同一时刻只允许一个服务器处理具体任务;Kubernetes容器管理组件通过etcd统一存储以实现副本控制器和调度器的选主功能,具体如下:
(1)、副本控制器和调度器在启动后先尝试获取leader节点身份,在获取leader节点身份后执行具体业务逻辑;
(2)、副本控制器和调度器分别在etcd中创建自己的节点信息,节点信息中记录当前leader节点信息以及上次更新时间;
(3)、leader节点定期更新节点信息,维护自己的leader身份;
(4)、每个从节点的服务均定期检查节点信息并判断leader节点信息是否在规定时间范围内更新:
①、若未更新,则从节点将尝试更新自己为leader节点。
其中,副本控制器和调度器服务之间无通信,利用etcd的强一致性实现在分布式高并发情况下leader节点的全局唯一性;
apiserver(本身是无状态服务)用于把资源数据存储到etcd,后续的业务逻辑由副本控制器和调度器执行;Kubernetes容器管理组件同时运行多个apiserver服务,通过代理把流量转发到不同的apiserver上实现接入层的高可用。
(四)、应用节点组件高可用:应用节点通过不断与Master进行通信来维护自己的健康工作状态;如果Master无法访问到某个节点,则会将该节点标记为不可用,不再向该节点调度应用,同时会把不可用节点的应用调度到其他节点。
如附图4所示,Kata组件通过RuntimeClass技术与Kubernetes容器管理组件整合到一起,通过Kubernetes容器管理组件管理Kata组件。Kata组件包括,
kata-runtime,在一个OCI兼容的容器运行时,用于处理OCI运行时规范指定的所有命令并启动kata-shim实例;
Kata-shim,用于处理容器的所有I/O流(I/O流包括stdout、stdin和stderr)、转发所有的要发送出去的信号以及监控容器进程;
Kata-agent,用于运行在guest中,管理容器和处理容器的运行;
Kata-proxy,用于给多个kata-shim和kata-runtime客户端提供对kata-agent的访问,在每个kata-shim和kata-agent之间路由I/O流和信号。
Kata是一个可以使用容器镜像以超轻量级虚机的形式创建容器的运行时工具。运行在一个优化过的内核之上,基于IntelVT技术能够提供针对网络、IO和内存等资源硬件级别的安全隔离。Kata兼容当前业界主流的容器接口规范,比如:Kubernetes的CRI;兼容不同架构的硬件平台和不同的虚拟化环境。Kata不再需要虚拟机内部嵌套容器。Kata优化过的内核可以提供与传统容器技术一样的极致速度。
分布式存储技术采用业界成熟的Ceph技术实现,Ceph是一个分布式存储系统,提供了对象存储、块存储和文件存储三种功能。存储集群基于RADOS,提供了极大伸缩性,可供成千用户访问PB乃至EB级的数据。Ceph节点以普通硬件和只能守护进程作为支撑点,它们之间靠相互通讯来复制数据。同时采用CRUSH算法动态地重分布数据。Ceph经过多年开发,已经逐渐步入成熟。没有单点故障,多数据副本,自动管理,自动修复;数据分布均衡,并行化度高。Ceph组件是通过使用Kubernetes的PersistentVolumeClaim、StorageClass、PersistentVolume创建,确保在同一个Kubernetes集群内,定义和提供不同类型的、不同参数的卷,并确保在无需了解太多的情况下,有能力选择不同的存储选项;StorageClass的方式抽象了存储提供者,无需预先创建固定大小的PersistentVolume,等待使用者创建PersistentVolumeClaim来使用;而是利用StorageClass直接创建PersistentVolumeClaim即可分配使用,并自动创建PersistentVolume,对应Ceph块存储上的一个image。
块存储的StorageClass样例具体如下:
如附图5所示,Ceph组件包括RADOS对象存储系统、librados库层、块存储接口、文件系统接口和文件系统的元数据服务器(MDS);
其中,RADOS对象存储系统是一个可靠的、自组织的、可自动修复、自我管理的分布式对象;RADOS对象存储系统内部包括ceph-osd后台服务进程和ceph-mon进程;
librados库层用于本地或者远程通过网络访问RADOS对象存储系统并支持多种语言的接口;
块存储接口通过librbd库提供块存储访问接口并为容器提供卷;
文件系统接口提供两种接口,一种是标准的posix接口,另一种通过libcephfs库提供文件系统访问接口;
文件系统的元数据服务器(MDS)用于提供元数据访问,元数据直接通过librados库访问。
多虚拟资源实例通信聚合技术采用业界成熟的Calico组件实现,Calico是一个基于BGP的纯三层的数据中心网络方案,与Kubernetes容器平台有良好的集成。主要功能包括:数据转发、路由传播、网络控制等功能。如附图6所示,Calico组件包括,
Felix,用于负责配置路由及ACL的信息来确保Endpoint的连通状态;Felix作为CalicoAgent运行在每台节点;
Etcd(分布式键值存储),用于负责网络元数据一致性,确保Calico网络状态的准确性;
BGP Client(BIRD),用于负责把Felix写入Kernel的路由信息分发到当前Calico网络,确保Workload间的通信的有效性;
BGP Route Reflector(BIRD),用于大规模部署时使用,摒弃素有节点互联的mesh模式,通过一个或者多个BGP Route Reflector来完成集中式的路由分发。
Calico最大的特点就是节点组网可以直接利用数据中心的网络结构,不需要额外的NAT、隧道或者Overlay Network。这种方式解决了原数据分析人员对于大数据分析的瓶颈。Calico设计要求物理网络是L2拓扑,这样vRouter间直接可达,路由不需要把物理设备当做下一跳;为了支持L3拓扑,Calico推出了IPinIP的选项。Calico基于iptables使用丰富而灵活的网络策略,保证通过各个节点上的ACL来提供Workload的多租户隔离、安全组以及其他可达性限制等功能。Calico方案简单可控,而且没有封包解包,节约CPU计算资源的同时,提高了整个网络的性能。
其中,弹性伸缩与资源同步技术是拟提出基于负载预测的动态弹性伸缩与资源同步理论,并将其作为SDN控制器的一项重要应用验证,在不影响用户使用的情况下提高资源利用率、降低云平台的资源投入成本。该验证应用分为三个模块:
第一部分是负载预测:针对较短时间内云平台负载存在的线性相关性,拟基于此建立线性模型来进行预测,也就是根据云平台当前的负载情况来预测下一段的负载是可行的。针对云平台负载变化的历史自相似性,拟建立基于历史数据的负载估测模型或采用模式识别算法来预测运行过程中相似时期的负载情况。针对负载的波动性特点,拟在预测算法中加入相应的调整和修正策略,来尽可能地保证预测的准确性。在进行模型建立和算法设计时,同时考虑模型和算法的复杂度,尽量对算法本身进行优化,以减少负载预测时带来的额外开销,以降低对平台性能的影响。
第二部分是弹性伸缩:在满足资源伸缩需求的前提,构建新的实例租赁收益计算方法(弹性伸缩服务免费,但等比扩展的实例收费等),从而求解出收益最大的水平伸缩量和垂直伸缩量,通过云控制台或云API简单操作进行相应的资源扩展和释放,以及基于负载迁移的资源变配。垂直伸缩是指在现有的服务节点上增加或者减少资源,比如,增加或减少CPU、内存、线程池和存储空间、可通过对虚拟机的大小进行重新配置等实现。而水平伸缩是指在现有的服务节点基础上增加或者减少服务节点,可通过增加或减少虚拟机的数目来实现,从而支持更多或者更少的服务请求。例如,预测未来某时段访问量增加或适应未来新业务需要,动态实现存储空间、计算单元、内存、CPU带宽等资源的等比扩展,在访问高峰退去之后再释放掉这些资源,按量付费。
第三部分是基于高精度预测的资源同步:自定义自动伸缩发生的时间和频率。尤其对于所预测的负载高低变化极端迅速情况,自动伸缩发生的频率要降低,发生时间要相对滞后等,从而避免资源刚被释放,又要重新分配,或反向过程的发生,克服系统抖动问题。
基于内容连通的云网络可靠性保障技术:网络连通度描述了网络在其中一些节点/链路遭到破坏时,能否保持网络连通的问题,网络的连通度越高表明网络的健壮性越好。依赖于云网络之间的同步技术以及软件定义的控制技术,数据可以在多个云进行备份或者进行实时地迁移,传统的网络连通理论将不能准确地描述云网络的连通关系。多路径保护作为一种频谱效率较高的生存性策略,是同时提高网络生存性和网络性能的一个较好选择。多路径保护通过构建K(K≥2)条不相交的路径,并将数据流分成子数据流分别在这些路径上传输,这样,当某条路径因为故障发生连接中断时,其它路径上传输的数据不受影响,从而提高了业务的抗毁能力。在云网络中,由于用户请求的内容可以在多个云之间备份,使得该场景下的多路径保护与传统的面向点到点业务的多路径保护有所不同。具体的,传统多路径保护的不相交路径数目受限于网络连通度,其在网络建设时已经基本固定,而在云网络中,由于有多个云可供选择,不相交路径数目极大增多;其次,由于用户可以从任意云获得服务,源宿节点之间的路径距离可以相对缩短,可以进一步提升云网络的资源使用效率。基于内容连通的云网络可靠性保障技术利用内容分布式存储和多路径传输的优势,通过合理规划内容在不同云之间的协同部署,尽可能地提高多路径的数目,为云网络的可靠运行提供保障。基于内容连通的云网络可靠性保障技术主要包括两大关键技术:节点到节点集最大不相交路径的计算和分布式内容协同备份技术。节点到节点集最大不相交路径的计算属于NP-Complete问题,可以基于整数线性规划、贪婪算法和智能算法三种策略来实现点到点集最大不相交路径的计算。ILP主要用于解决静态点到点集最大不相交路径的计算。ILP模型中在保证点到点集所有路径是节点不相交约束前提下,将优化的目标函数定为寻找最大数目的不相交路径。基于贪婪算法的求解策略以Dijkstra's Algorithm(迪杰斯特拉算法,简称D算法)作为实现的基础,进行点到点集之间最大不相交路径的计算。贪婪算法的原则是首先计算一条节点到节点集的最短路径,然后从原拓扑中删除这条路径上的链路,继续寻找节点到节点集最短的路径,直到网络中节点到节点集中的任何节点都是不连通的。分布式内容协同备份技术可以采用多种方案,但是首先要满足内容连通约束,也就是说用户到数据/业务之间至少存在K条不相交的路径。分布式内容协同备份技术需要考虑云网络存储和计算资源、网络带宽资源以及灾难风险等多种要素。本项目拟从云网络存储和计算资源受限、网络带宽资源受限以及灾难场景这三个角度进行分布式内容协同备份方案的选择。针对云网络存储和计算资源受限场景,提出资源感知的分布式内容协同备份策略;针对网络带宽资源受限场景,提出带宽感知的分布式内容协同备份策略;针对灾难场景,提出灾难感知的分布式内容协同备份策略。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种面向国产平台的云原生应用架构支撑方法,其特征在于,该方法具体如下:
使用Kubernetes容器管理组件,根据应用负载大小对集群进行扩容或缩容;
使用轻量化虚机组件提供轻量化虚机容器,轻量化虚机容器跑在Kubernetes容器管理组件上,并受Kubernetes容器管理组件的管理;其中,轻量化虚机组件支持虚机实例容器化,通过运行轻量化虚机容器,启动时间不大于100毫秒;
使用低延迟分布式存储组件支持分布式存储能力,轻量化虚机容器使用Kubernetes容器管理组件的容器持久化卷关联Ceph集群;
使用多虚拟资源实例通信聚合组件管理轻量化虚机容器的网络,结合Kubernetes容器管理组件的服务路由功能,实现轻量化虚机的通信聚合能力。
2.一种面向国产平台的云原生应用架构支撑系统,其特征在于,该系统包括Kubernetes容器管理组件、轻量化虚机组件、低延迟分布式存储组件和多虚拟资源实例通信聚合组件,通过Kubernetes容器管理组件、轻量化虚机组件、低延迟分布式存储组件,同时采用多虚拟资源实例通信聚合组件以及基于负载预测的弹性伸缩与资源同步技术实现适配国产处理器。
3.根据权利要求2所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述Kubernetes容器管理组件包括Master节点和应用节点,轻量化虚机容器跑在Kubernetes容器管理组件的应用节点;
其中,Master节点包括apiserver、副本控制器和调度器;副本控制器和调度器使用一主多从的高可用方式,在同一时刻只允许一个服务器处理具体任务;Kubernetes容器管理组件通过etcd统一存储以实现副本控制器和调度器的选主功能;副本控制器和调度器服务之间无通信,利用etcd的强一致性实现在分布式高并发情况下leader节点的全局唯一性;
apiserver用于把资源数据存储到etcd,后续的业务逻辑由副本控制器和调度器执行;Kubernetes容器管理组件同时运行多个apiserver服务,通过代理把流量转发到不同的apiserver上实现接入层的高可用。
4.根据权利要求3所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述Kubernetes容器管理组件通过etcd统一存储以实现副本控制器和调度器的选主功能具体如下:
(1)、副本控制器和调度器在启动后先尝试获取leader节点身份,在获取leader节点身份后执行具体业务逻辑;
(2)、副本控制器和调度器分别在etcd中创建自己的节点信息,节点信息中记录当前leader节点信息以及上次更新时间;
(3)、leader节点定期更新节点信息,维护自己的leader身份;
(4)、每个从节点的服务均定期检查节点信息并判断leader节点信息是否在规定时间范围内更新:
①、若未更新,则从节点将尝试更新自己为leader节点。
5.根据权利要求3或4所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述应用节点通过不断与Master进行通信来维护自己的健康工作状态;如果Master无法访问到某个节点,则会将该节点标记为不可用,不再向该节点调度应用,同时会把不可用节点的应用调度到其他节点。
6.根据权利要求2所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述轻量化虚机组件通过RuntimeClass技术与Kubernetes容器管理组件整合到一起,通过Kubernetes容器管理组件管理轻量化虚机组件。
7.根据权利要求2或6所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述轻量化虚机组件包括,
kata-runtime,用于处理OCI运行时规范指定的所有命令并启动kata-shim实例;
Kata-shim,用于处理容器的所有I/O流、转发所有的要发送出去的信号以及监控容器进程;
Kata-agent,用于运行在guest中,管理容器和处理容器的运行;
Kata-proxy,用于给多个kata-shim和kata-runtime客户端提供对kata-agent的访问,在每个kata-shim和kata-agent之间路由I/O流和信号。
8.根据权利要求2所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述低延迟分布式存储组件是通过使用Kubernetes的PersistentVol umeClaim、StorageClass、PersistentVolume创建,确保在同一个Kubernete s集群内,定义和提供不同类型的、不同参数的卷,并有能力选择不同的存储选项;并利用StorageClass直接创建PersistentVolumeClaim即可分配使用,并自动创建PersistentVolume,对应Ceph块存储上的一个image。
9.根据权利要求2或8所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述低延迟分布式存储组件包括RADOS对象存储系统、librados库层、块存储接口、文件系统接口和文件系统的元数据服务器;
其中,RADOS对象存储系统是一个可靠的、自组织的、可自动修复、自我管理的分布式对象;RADOS对象存储系统内部包括ceph-osd后台服务进程和ceph-mon进程;
librados库层用于本地或者远程通过网络访问RADOS对象存储系统并支持多种语言的接口;
块存储接口通过librbd库提供块存储访问接口并为容器提供卷;
文件系统接口提供两种接口,一种是标准的posix接口,另一种通过libcephfs库提供文件系统访问接口;
文件系统的元数据服务器用于提供元数据访问,元数据直接通过librados库访问。
10.根据权利要求2所述的面向国产平台的云原生应用架构支撑系统,其特征在于,所述多虚拟资源实例通信聚合组件包括,
Felix,用于负责配置路由及ACL的信息来确保Endpoint的连通状态;Felix作为CalicoAgent运行在每台节点;
Etcd,用于负责网络元数据一致性,确保Calico网络状态的准确性;
BGP Client,用于负责把Felix写入Kernel的路由信息分发到当前Calico网络,确保Workload间的通信的有效性;
BGP Route Reflector,用于大规模部署时使用,摒弃素有节点互联的mesh模式,通过一个或者多个BGP Route Reflector来完成集中式的路由分发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384960.8A CN111580930A (zh) | 2020-05-09 | 2020-05-09 | 一种面向国产平台的云原生应用架构支撑方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010384960.8A CN111580930A (zh) | 2020-05-09 | 2020-05-09 | 一种面向国产平台的云原生应用架构支撑方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111580930A true CN111580930A (zh) | 2020-08-25 |
Family
ID=72126266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010384960.8A Pending CN111580930A (zh) | 2020-05-09 | 2020-05-09 | 一种面向国产平台的云原生应用架构支撑方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580930A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214282A (zh) * | 2020-10-12 | 2021-01-12 | 成都精灵云科技有限公司 | 分布式系统及支持接口配置的分布式系统 |
CN112612572A (zh) * | 2020-12-17 | 2021-04-06 | 南京南瑞信息通信科技有限公司 | 一种基于图形化的交互式云原生应用分发管理系统及方法 |
CN112698917A (zh) * | 2020-12-31 | 2021-04-23 | 武汉达梦数据技术有限公司 | 一种基于容器化的PaaS平台网络架构及其实现方法 |
CN113204353A (zh) * | 2021-04-27 | 2021-08-03 | 新华三大数据技术有限公司 | 一种大数据平台组件部署方法及装置 |
CN113225211A (zh) * | 2021-04-27 | 2021-08-06 | 中国人民解放军空军工程大学 | 细粒度的服务功能链扩展方法 |
CN113676524A (zh) * | 2021-08-09 | 2021-11-19 | 浪潮云信息技术股份公司 | 一种实现多cpu架构容器网络代理的方法 |
CN113791954A (zh) * | 2021-09-17 | 2021-12-14 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113886093A (zh) * | 2021-12-07 | 2022-01-04 | 北京微吼时代科技有限公司 | 基于多云架构的云资源管理系统和电子设备 |
CN114756170A (zh) * | 2022-04-02 | 2022-07-15 | 苏州空天信息研究院 | 一种面向容器应用的存储隔离系统及其方法 |
CN115328651A (zh) * | 2022-08-12 | 2022-11-11 | 扬州万方科技股份有限公司 | 基于国产vpx服务器的轻量化微云系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145367A1 (en) * | 2011-09-27 | 2013-06-06 | Pneuron Corp. | Virtual machine (vm) realm integration and management |
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN109062655A (zh) * | 2018-06-05 | 2018-12-21 | 腾讯科技(深圳)有限公司 | 一种容器化云平台及服务器 |
CN110569111A (zh) * | 2019-09-12 | 2019-12-13 | 天津华云软件有限公司 | 一种基于传统容器的虚拟机实现方法、装置及系统 |
WO2020062131A1 (zh) * | 2018-09-29 | 2020-04-02 | 北京连云决科技有限公司 | 一种基于区块链技术的容器云管理系统 |
-
2020
- 2020-05-09 CN CN202010384960.8A patent/CN111580930A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145367A1 (en) * | 2011-09-27 | 2013-06-06 | Pneuron Corp. | Virtual machine (vm) realm integration and management |
WO2016101638A1 (zh) * | 2014-12-23 | 2016-06-30 | 国家电网公司 | 一种电力系统云仿真平台的运营管理方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN109062655A (zh) * | 2018-06-05 | 2018-12-21 | 腾讯科技(深圳)有限公司 | 一种容器化云平台及服务器 |
WO2020062131A1 (zh) * | 2018-09-29 | 2020-04-02 | 北京连云决科技有限公司 | 一种基于区块链技术的容器云管理系统 |
CN110569111A (zh) * | 2019-09-12 | 2019-12-13 | 天津华云软件有限公司 | 一种基于传统容器的虚拟机实现方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
毕小红等: "微服务应用平台的网络性能研究与优化" * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214282A (zh) * | 2020-10-12 | 2021-01-12 | 成都精灵云科技有限公司 | 分布式系统及支持接口配置的分布式系统 |
CN112612572A (zh) * | 2020-12-17 | 2021-04-06 | 南京南瑞信息通信科技有限公司 | 一种基于图形化的交互式云原生应用分发管理系统及方法 |
CN112612572B (zh) * | 2020-12-17 | 2022-08-09 | 南京南瑞信息通信科技有限公司 | 一种基于图形化的交互式云原生应用分发管理系统及方法 |
CN112698917B (zh) * | 2020-12-31 | 2022-06-21 | 武汉达梦数据技术有限公司 | 一种基于容器化的PaaS平台网络架构及其实现方法 |
CN112698917A (zh) * | 2020-12-31 | 2021-04-23 | 武汉达梦数据技术有限公司 | 一种基于容器化的PaaS平台网络架构及其实现方法 |
CN113225211A (zh) * | 2021-04-27 | 2021-08-06 | 中国人民解放军空军工程大学 | 细粒度的服务功能链扩展方法 |
CN113204353A (zh) * | 2021-04-27 | 2021-08-03 | 新华三大数据技术有限公司 | 一种大数据平台组件部署方法及装置 |
CN113204353B (zh) * | 2021-04-27 | 2022-08-30 | 新华三大数据技术有限公司 | 一种大数据平台组件部署方法及装置 |
CN113225211B (zh) * | 2021-04-27 | 2022-09-02 | 中国人民解放军空军工程大学 | 细粒度的服务功能链扩展方法 |
CN113676524A (zh) * | 2021-08-09 | 2021-11-19 | 浪潮云信息技术股份公司 | 一种实现多cpu架构容器网络代理的方法 |
CN113791954A (zh) * | 2021-09-17 | 2021-12-14 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113791954B (zh) * | 2021-09-17 | 2023-09-22 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113886093A (zh) * | 2021-12-07 | 2022-01-04 | 北京微吼时代科技有限公司 | 基于多云架构的云资源管理系统和电子设备 |
CN114756170A (zh) * | 2022-04-02 | 2022-07-15 | 苏州空天信息研究院 | 一种面向容器应用的存储隔离系统及其方法 |
CN114756170B (zh) * | 2022-04-02 | 2023-03-24 | 苏州空天信息研究院 | 一种面向容器应用的存储隔离系统及其方法 |
CN115328651A (zh) * | 2022-08-12 | 2022-11-11 | 扬州万方科技股份有限公司 | 基于国产vpx服务器的轻量化微云系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580930A (zh) | 一种面向国产平台的云原生应用架构支撑方法及系统 | |
Xiong et al. | Extend cloud to edge with kubeedge | |
EP3340055B1 (en) | Communicating state information in distributed operating systems | |
CN102244685B (zh) | 一种支持负载均衡的分布式缓存动态伸缩方法及系统 | |
US9143452B2 (en) | Data processing | |
US20160234071A1 (en) | Distributed application framework that uses network and application awareness for placing data | |
US20190104061A1 (en) | Controller communications in access networks | |
Beck et al. | Distributed and scalable embedding of virtual networks | |
WO2011109135A1 (en) | System and method for assisting virtual machine instantiation and migration | |
Mayer et al. | Graph: Heterogeneity-aware graph computation with adaptive partitioning | |
CN105340241A (zh) | 用于均衡在sdn网络中的负载的方法和系统 | |
US10915370B2 (en) | Inter-host communication without data copy in disaggregated systems | |
CN104679594A (zh) | 一种中间件分布式计算方法 | |
Shen et al. | Supercloud: A library cloud for exploiting cloud diversity | |
Bartolomeo et al. | Oakestra: A lightweight hierarchical orchestration framework for edge computing | |
CN115357375A (zh) | 一种面向MPI的Serverless并行计算方法及其系统 | |
CN117579550A (zh) | 一种基于可编程交换机和容器状态信息卸载的路由方法 | |
US11916998B2 (en) | Multi-cloud edge system | |
Feng et al. | COVE: Co-operative virtual network embedding for network virtualization | |
US11422866B2 (en) | Computer network of computing resource infrastructures and method for allocating said resources to client applications | |
Khalifa et al. | Towards a mobile ad-hoc cloud management platform | |
WO2020056550A1 (zh) | 软件定义网络中的服务分配的设备、方法和存储介质 | |
Khorsandi et al. | Adaptive function chaining for efficient design of 5G xhaul | |
CN107660281B (zh) | 同步分布式计算运行时间的系统和方法 | |
Poularakis et al. | Modeling and optimization in software-defined networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200825 |
|
RJ01 | Rejection of invention patent application after publication |