一种基于Kubernetes的区块链即服务资源适配方法与流程

文档序号:13450036阅读:520来源:国知局
一种基于Kubernetes的区块链即服务资源适配方法与流程

本发明属于网络云计算资源配置以及区块链技术领域,具体涉及一种基于kubernetes的区块链即服务资源适配方法。



背景技术:

在以比特币为代表的数字加密货币系统面世之后,区块链技术飞速发展。根据组织形态的不同区块链可以分为公有链、联盟链和私有链。公有链最为中立和开放,对网络中的所有客户完全敞开,拥有不可比拟的网络效应。私有链通常仅对少量节点开放,通常节点均有很高的信任度,数据变更不需要所有节点来验证,从而具有速度快、成本低的优势。而联盟链结合了公有链的“低信任”和私有链的“单一高度信任”的特点,一定程度上兼具公有链系统和私有链系统的一些特点或优势。

私有链的灵活性也使得它在实际落地的过程中较公有链占优势,然而目前的私有链系统多由于出于实验目的而呈现相对孤立、各自为战的局面,这使得应用的布局也相对单一。未来,不同的应用场合以及不同的应用特性,亟需定制化强的区块链服务,实现各种应用的个性化部署。“区块链即服务”即把区块链当做一个基础设施,并在上面搭建各种满足普通用户需求的应用,一方面可以构建联盟链从而实现产业链各企业接口的对接,能够为企业级的b端客户进行服务,提供身份验证、电子证据保全、供应链管理、产品追溯等商业智能合约应用;另一方面,区块链即服务平台能够在全互联网范围内实现所有运营商所提供的云计算资源的优化配置,提升网络效率。

综上所述,区块链即服务概念在区块链技术发展中有着举足轻重的地位,其能极大地助推现实应用的集合式部署,丰富区块链应用的内涵。然而,目前仍鲜有区块链即服务方面的应用实例。



技术实现要素:

鉴于上述,本发明提供了一种基于kubernetes的区块链即服务资源适配方法,以期在合理配置网络中云计算资源的同时能够实现多应用场景的接入和部署。

一种基于kubernetes的区块链即服务资源适配方法,包括如下步骤:

(1)构建包括云计算资源、区块链即服务平台以及第三方用户在内的资源适配系统构架;

(2)基于kubernetes设计搭建包括多种服务和众多用户接口的区块链即服务平台;

(3)使多个承载有容器的pod动态关联,使得区块链即服务平台上所有pod互联互通;

(4)由第三方用户对pod自行创建和管理,维持pod的冗余状态来确保系统安全;

(5)基于操作系统级别虚拟化的容器进行虚拟化应用部署,使得容器可以在云以及不同版本的操作系统间进行移植。

所述步骤(1)中的资源适配系统构架为由云计算资源、区块链即服务平台以及第三方用户自下而上组成的三层结构;其中,所述云计算资源是指整个互联网范围内主流或全部云服务提供商所能提供的总计算资源,所述区块链即服务平台基于kubernetes设计搭建用于提供个性化部署区块链的解决方案,所述第三方用户为区块链多场景应用的需求方。

所述步骤(2)的具体实现方法为:利用kubernetes实现不间断的服务状态和原生云平台应用,构建含有多个pod的区块链即服务平台,每个pod承载一个或多个相关的容器,所有容器均在pod中运行,同一个pod中的容器部署在同一个物理机器上以实现资源共享;一个pod包含一个或多个磁盘卷组(volumes)且这些卷组将会以目录的形式提供给一个容器或被所有pod中的容器共享。

kubernetes是指谷歌公司开发的一个用于管理云平台中多个主机上的容器化的应用,kubernetes的核心特点是能够自主地管理容器使其按照用户的期望运行。pod直译是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是一个pod。

所述步骤(3)的具体实现方法为:首先,通过标签将服务的抽象以及固定的ip地址和dns名称与一系列的pod进行动态关联;其中标签是指用户给应用程序接口贴上的key和value,用户通过容器中的某个应用程序接口成功实现了对应功能后则给该接口打上一个标签,同一个应用程序接口额外拥有很多不同的标签,通过外部工具可使用这些key和value进行应用程序接口的检索;当要限制一组pod的某些操作或查询某组pod的状态时,后续则可通过标签来选择一组相关的应用程序接口去执行特定的操作;当一个pod中的容器访问固定ip地址的时候,该访问请求会被转发到该容器所处物理机器的本地代理,进而再转发到相应的后端容器;通过轮训机制选择相应的后端容器,本地代理时刻追踪着动态的pod,使得服务的ip地址保持不变。

所述步骤(4)的具体实现方法为:首先,用户基于相同的pod配置文件部署多个pod复制品,当一个pod失效或者硬件失效的时候创建一个可替代的pod;系统根据用户的需求创建大量冗余的pod,这些冗余的pod组成了一个完整应用或者服务或者服务中的一层;一旦一个pod被创建,系统就会不停的监控该pod的健康情况以及pod所在物理机器的健康情况,如果这个pod因为软件原因挂掉了或者所在的物理机器挂掉了,则相应控制器自动在一个健康的物理机器上创建一个相同的pod,来维持原来pod的冗余状态不变,一个应用的多个pod则共享一台物理机器

所述步骤(5)的具体实现方法为:首先,使容器之间相互隔离,每个容器有自己的文件系统且无法看到彼此之间的进程,同时容器之间的计算资源也是有界限的;然后,通过容器与底层设施以及机器文件系统解耦,使得其可以在云以及不同版本的操作系统间进行移植,由于容器小而快,一个应用可以被打包进一个容器映像,应用与容器镜像间保持一对一的关系,这使得容器便于监控和管理等优势得以凸显。

本发明提供了一种合理配置网络云计算资源及个性化部署区块链多场景应用的问题解决思路,其能够自主地管理容器从而保证云平台中的容器按照用户期望运行是kubernetes的核心特点,本发明利用这一特点通过在服务器上搭建kubernetes集群能够实现管理用户区块链节点容器以及为用户分配区块链节点所需计算资源的功能。本发明的成功应用一方面能够实现云服务提供商计算资源的高效配置利用,另一方面能够实现第三方用户多场景应用的便捷接入。

附图说明

图1为区块链即服务云计算资源适配系统的框架示意图。

图2为pod的动态关联示意图。

图3为pod的冗余状态维持过程示意图。

图4为基于区块链即服务平台模式的云计算资源适配方法网络布局示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

本发明基于kubernetes的区块链即服务资源适配方法,包括如下步骤:

(1)构建包括云服务提供商、区块链即服务平台以及第三方用户的云计算资源适配系统构架,构架包括云服务提供商提供的计算资源、区块链即服务平台以及第三方用户的自下而上的三层结构,如图1所示;其中,云计算资源是指整个互联网范围内主流或全部云服务提供商所能提供的总的计算能力,区块链即服务平台是基于kubernetes设计搭建的用于提供个性化部署区块链的解决方案,第三方用户是区块链多场景应用的需求方。

(2)基于kubernetes构建包括多种服务和众多用户接口的区块链即服务平台;kubernetes是指谷歌公司开发的一个用于管理云平台中多个主机上的容器化的应用,kubernetes的核心特点是能够自主地管理容器使其按照用户的期望运行。本发明利用kubernetes实现不间断的服务状态和原生云平台应用,构建了含有多个pod的区块链即服务(blockchainasaservice,baas)平台;每个pod承载一个或多个相关的容器,所有容器均在pod中运行;同一个pod中的容器会部署在同一个物理机器上并且能够共享资源。一个pod也可以包含任意个磁盘卷组(volumes),这些卷组将会以目录的形式提供给一个容器,或者被所有pod中的容器共享。

(3)使多个包含众多容器的pod的动态关联,使得平台上所有pod互联互通。为了更好地服务于现代互联网应用由多层服务构成的架构,本发明提供了服务的抽象以及固定的ip地址和dns名称,然后通过标签将其与一系列的pod进行动态关联。其中,标签是指用户给对象贴上的key:value,当要限制一组pod的某些操作或者查询某组pod的状态,用户可以给应用程序编程接口中的任何对象贴上一组key:value的标签,后续就可以通过标签来选择一组相关的应用程序编程接口对象去执行一些特定的操作。每个资源额外拥有一组(很多)keys和values,然后外部的工具可以使用这些keys和values值进行对象的检索,整个过程如图2所示。本发明中可以关联任何想关联的pod,当一个pod中的容器访问这个固定ip地址的时候,这个请求会被转发到本地代理,每台机器上均有一个本地代理,然后被转发到相应的后端容器。通过轮训机制选择相应的后端容器,本地代理时刻追踪着动态的pod使得服务的ip地址保持不变。

(4)实现第三方用户对pod的自行创建和管理,维持pod的冗余状态来确保系统安全;一方面用户可以基于相同的pod配置文件部署多个pod复制品,另一方面当一个pod失效或者硬件失效的时候可以创建一个可替代的pod。系统可以根据用户的需求创建许多冗余的pod,这些冗余的pod组成了一个完整应用或者服务或者服务中的一层;一旦一个pod被创建,系统就会不停的监控pod的健康情况以及pod所在主机的健康情况,如果这个pod因为软件原因挂掉了或者所在的机器挂掉了,复制控制器会自动在一个健康的机器上创建一个一模一样的pod,来维持原来的pod冗余状态不变,一个应用的多个pod可以共享一个机器,整个过程如图3所示。

(5)部署基于操作系统级别虚拟化的容器进行虚拟化替代传统的通过硬件来进行虚拟化的应用部署方式,容器可以在云和不同版本的操作系统间进行移植,提升系统的可扩展性。

传统的通过操作系统的包管理器来安装应用的传统应用部署方式,把应用的运行、配置、库与生存周期和机器的操作系统纠缠在一起,无法实现应用在不同操作系统间的移植。本发明采用部署基于操作系统级别虚拟化的容器进行虚拟化来进行应用部署,这些容器之间相互隔离:它们有自己的文件系统,然而它们也无法看到彼此之间的进程,并且它们之间的计算资源也是有界限的。

相较于虚拟机容器也更容易部署,并且因为它们是和底层设施和机器文件系统解耦的,它们可以在云和不同版本的操作系统间进行迁移。因为容器小而快,一个应用可以被打包进一个容器映像,应用与容器镜像间保持一对一的关系,这使得容器便于监控和管理等优势得以凸显。

以下我们构建了一个如图1所示的包括四个原始pod的区块链即服务平台来实现互联网云计算资源的适配和区块链应用部署。四个pod中分别包括了载有区块链节点的四个容器,如order、peer、ccenv、ca。四个pod可以纵向地接受第三方用户的区块链应用服务需求接入,相互之间通过固定的ip地址、dns名称以及标签实现动态关联,可以实现横向的查询、检索等相互配合的服务。系统可以根据用户的需求创建许多冗余的pod,一旦一个pod被创建,系统就会不停的监控pod的健康情况以及pod所在主机的健康情况,如果这个pod因为软件原因挂掉了或者所在的机器挂掉了,复制控制器会自动在一个健康的机器上创建一个一模一样的pod,来维持原来的pod冗余状态不变,从而保证系统的安全性。

本发明基于区块链即服务平台模式的云计算资源适配方法网络布局方案如图4所示,与传统应用布局模式中第三方用户仅能自己直接访问云计算提供商服务器不同,本发明中第三方用户主要通过访问区块链即服务平台,再由区块链即服务平台完成应用的部署和计算资源的匹配的方式来实现对区块链应用及云计算资源的满足,改善了网络中应用部署的随意性和资源索取的盲从性,能够提高区块链应用布局及运作效率、提高网络计算资源利用率。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1