一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对驻留在KUBERNETES持久卷上的数据静态加密数据的方法与流程

2022-02-20 13:34:21 来源:中国专利 TAG:

对驻留在kubernetes持久卷上的数据静态加密数据的方法
1.版权声明
2.本专利文档的公开的一部分包含受版权保护的材料。版权所有人不反对任何人在专利文档或专利公开出现在专利商标局文件或记录中时对其进行复制再现,但是除此之外保留所有一切版权权利。
技术领域
3.本发明总体上涉及用于数据加密的系统和方法,特别地涉及符合kubernetes平台的加密发起。


背景技术:

4.kubernetes是一种可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,它有利于声明性配置和自动化。kubernetes文档,包括规范,可在www.kubernetes.io(统称为“kubernetes”)找到,并且其在本技术的申请日教导的所有内容被通过引用并入在此。
5.软件容器编排,例如通过实现kubernetes(通常简称为“k8s”),经常在各节点上启动和重新定位应用容器。节点可驻留在物理或虚拟主机上。经常,挂载在特定容器内部的块存储卷需要被挂载在不同的节点上,或者需要被重新定位到新启动的容器。kubernetes提供了持久卷(persistent volume,pv)机制,以抽象出存储如何被提供并被pod消耗,进而被pod的容器消耗。
6.为了满足各种法规遵从,例如通用数据保护条例(general data protection regulation,gdpr)和加州消费者隐私法案(california consumer privacy act,ccpa),或者以其它方式支持数据安全,驻留在pv上(底层存储硬件或“盘”上)的数据必须被静态加密。
7.在利用kubernetes持久卷时,只有当存储提供商(例如,亚马逊网络服务弹性块存储、portworx,等等)拥有创建由pv管理的加密的盘的选项时,才能实现盘加密。与卷相关联的存储类提供了一个选项,以创建数据被静态加密的pv。并非所有的pv类型和相应的存储类都提供加密,也并非所有厂商的解决方案以及本地卷都有现成的加密可用。因此,当使用kubernetes持久卷对数据进行静态加密时,应用必须依赖于提供这种功能的底层存储提供商。
8.虽然上述解决方案可实现优势,但问题和限制仍然存在。


技术实现要素:

9.在提供加密功能方面对存储提供商产生了依赖性的先前解决方案限制了加密选项,并且减少了提供安全和可扩展解决方案的机会。例如,加密选项可能与特定的存储提供商挂钩;加密也可能要求并且限于这种功能的企业许可;以及加密参数(例如,使用的特定算法、密钥大小、密钥的粒度、是用集群范围的密钥还是每个卷的密钥来加密多个卷,等
等)。这种“一刀切”的方法通过强制对所有内容进行加密(甚至在其它情况下需要加密时)并且通过提供加密参数来限制了选项。因此,需要额外的处理来加密-解密可存储为明文的信息和/或可能更适合于特定实现方式的加密参数是不可用的。本文提供的实施例的好处是,使得定制的加密参数成为可能,并且将加密/非加密数据混合存储在同一盘上,以最适合特定用途的方式对数据进行静态加密。
10.一些先前的解决方案可能会导致整个虚拟机(virtual machine,vm)被加密,这无济于事,因为由kubernetes pv管理的盘是浮动盘,其可被从一个虚拟机移动到另一个。例如,如果kubernetes盘被用vm1的密钥加密,然后被移动到vm2,则该盘就不能被vm2读取。
11.在kubernetes集群中运行的应用使用持久卷功能来获取存储。持久卷与存储提供商交互,以按照配置为容器配设存储。如果希望对持久卷管理的存储进行静态数据加密,那么问题仍然存在,因为并非所有的存储提供商都提供这种功能;即使提供,也没有独立于存储提供商的静态数据加密手段可用;某些确实提供静态加密的存储提供商有许可引起的限制;并且现有技术没有在不要求改变应用代码来实现这种加密的情况下提供“静态”加密的机制可用。“静态”加密是指在数据持续存在时对其进行加密,例如在盘上,而不是在其它时间期间,例如在传输过程中。作为一个好处,攻击者或其它未经授权者在访问盘硬件时,会发现数据被加密了。加密可利用rest api(经由http提供的“restful”api接口,利用http post、put、patch、delete和get)但不应与其相混淆,后者是kubernetes的基本结构,支持组件和外部用户之间的操作和通信,并且由kubernetes api服务器处理。
12.这些和其它需求由本文公开的各种实施例、方面和配置解决,这可能取决于利用的特定配置。这些和其它优点将从本文的公开中清楚显现。
13.作为总体概述,在一个实施例中,公开了系统和方法,以加密由kubernetes pv配设的盘。作为一种好处,克服了现有技术的缺点,并且提供了当前技术水平的进步,例如提升现有的安全选项和改变卷的镜像,以包括包含加密的额外工具库。更具体地说,本文描述的实施例使得能够在盘级进行加密,该加密在存储厂商(及其不同的命令、协议、密钥格式、加密方法,等等)之间是独立和可移植的;选择性地使能在数据、盘或分区级别的加密;当块存储卷被挂载在特定的容器内部并且被挂载在不同的节点上或被重新定位到新的容器时,维持块存储卷的可使用性和加密;在静止状态下对底层盘上的数据进行加密;提供虚拟机(vm)加密,而不要求对整个vm进行加密,也不要求用旧密钥解密并且用新的vm密钥重新加密以将加密的数据从一个vm移植到另一个vm以允许第二vm读取该数据;为应用镜像提供额外的工具库以执行加密;选择性地加密数据库和非数据库组件;在内核级别执行加密(应用不需要重新编码以包括加密);应用容器可具有内核级别的加密,即使是在不作为将要求根访问的特权容器运行时;避免在崩溃和重新启动的情况下重新加密;并且所有都同时维持符合加密要求(例如,gdpr、ccpa,等等)。因此,可在没有每个服务要求修改和与拥有其自己的加密服务相关联的开销的情况下进行加密,而是提供了针对本文实施例描述的盘加密服务。可实现其它好处,例如,与列或应用级别的加密相比,通过具有操作系统(os)级别的加密来改善了响应时间。虽然本文的实施例被描述为利用kubernetes容器编排,以及kubernetes提供的服务、特征和缺点,但应当理解的是,本文描述的部分或全部实施例可适用于至少具有本文所涉及的kubernetes的特征和缺点的任何平台。
14.如上所述,先前的解决方案提供的加密可被提供给存储数据存储上的整个盘,因
此在数据存储上写入的任何数据都是加密的。然而,这使得数据存储不能同时用于加密和未加密的卷。存储卷可被加密,例如由存储解决方案提供商加密,但加密必须事先定义,不能例如在启动pod前才实现,而且在任何时候都不能有存储提供商的异质混合。
15.应用级别的加密也是一种选项,但这时要求应用执行配置和维护,以对敏感和非敏感信息进行分类。这影响了应用的性能,并且可能使数据变得脆弱,因为应用可能充当数据总线,并且可能没有能力对数据进行分类。因此,这种解决方案依靠盘加密来提供静态数据加密。
16.在另一个实施例中,提供了盘加密。实施例可在盘附接到pod之后,但在pod被特定应用容器使用之前,通过利用在启动包含应用的关联应用容器之前运行至完成的kubernetes的变异准入webhook(例如,“mutatingadmissionwebhook”作为对于事件通知利用http post的http回调,以及初始化容器(例如,“init容器”)功能,来准备加密的盘。作为一个好处,提供加密不要求修改应用代码以包括加密。如本领域普通技术人员所知,init容器和mutatingadmissionwebhook被应用单独用于解决不同的用例(例如,利用mutatingadmissionwebhook执行网络管理)。因此,就本文公开的某些实施例而言,提供了加密与mutatingadmissionwebhook的组合,以促进部署的灵活性和安全性,并且推进技术的发展。
17.kubernetes利用持久性对象来表示节点集群的状态。对象是从规范中创建的,并且如本文所公开的,对象可读取和注释规范,以自我构建具有所需盘加密的平台。
18.在一个实施例中,公开了提供盘加密的系统和方法,它可作为一种服务来实现。mutatingadmissionwebhook和initcontainer的组合对目标pv进行加密,并且经由对挂载传播技术的智能使用,仅从少数注释(例如,元数据)引起pv的加密。然后,加密的pv在请求加密的pv的容器内被提供。加密被应用于盘上静态的数据,并且作为加密的目标pv呈现。
19.在一个实施例中,提供了一个高级别处理流程,包括:
20.1.当kubernetes api服务器接收到对于对挂载加密的pv感兴趣的pod的pod创建请求时,定义kubernetes的mutatingadmissionwebhook的盘加密服务将被调用。该pod通过向被利用来建立pv的pod请求规范添加适当的注释来请求对pv的加密。
21.2.盘加密服务,例如定义的服务器模块,响应webhook调用,并且验证pod的请求,并且确认pv加密的所有前提数据。前提数据可包括但不限于:persistentvolumeclaim(pvc)在规范注释中被识别,volumemode为“block”以使得卷被用作原始块设备,也持有加密口令的秘密(例如,持有少量敏感数据的对象),和/或有效的fs类型(例如,文件系统(file system,fs)来用于卷)。
22.3.在pod规范被验证之后,盘加密服务将initcontainer注入到pod规范中。它还在应用容器上配设额外的hostpath挂载,根据规范注释,指定当hostpath被挂载在容器内的容器请求位置时,加密的盘将在哪里变得可用。kubernetes没有主机到容器的传播,然而,在另一实施例中,这里提供了主机到容器的传播。例如,如果hostpath指的是主机目录“hostdir-x”,那么以mountpropagation=hosttocontainer创建挂载,因此hostdir-x内的主机上的任何挂载都会反映在挂载hostdir-x的容器路径上。
23.4.当pod被kubelet启动时,盘加密服务注入的init容器首先执行。init容器对与(要加密的)pvc有关的设备进行加密,然后将加密后的盘挂载在主机目录上。这个挂载是以
mountpropagation=bidirectional创建的,因此来自init容器的挂载会反映在主机目录-hostdir-x上。
24.5.当主应用容器启动时,加密的pv被挂载在它所需的来自hostdir-x的路径中。
25.6.init容器设置加密的盘,并且使得盘在底层主机上可用。主容器只是从底层主机上拾取这个挂载,并且其接收到了加密的盘。
26.7.当pod被关闭时,代理容器(由webhook连同init容器一起注入)将从主机路径上卸载盘。
27.8.当pod重新定位到不同的节点时,init容器将检测到与pv有关的盘已经被加密,并且将简单地验证使用pod提供的秘密打开的盘。如果有效,则盘将被再次挂载,并且利用前面提到的传播技术被提供给主容器。
28.关于本文描述的一个或多个实施例及其方面,可实现各种好处,包括但不限于:主容器不必确定如何加密盘;主容器不需要改变任何代码以包括加密库和工具,例如libgcrypt、dm-crypt、cryptsetup等等,只要求添加对pod定义的几个注释;主容器不需要为了执行要求根访问的格式化或挂载操作而提升权限;当pod被移动到不同的节点时,对加密的pv的访问被维持;并且pv类型不影响盘加密服务,无论是localvolume、nfs、vspherevolume、portworx卷等等,加密方法都保持相同。
29.示范性方面针对的是:
30.一种用于利用加密数据存储自配置自包含的可执行模块(pod)的系统,包括:
31.网络,互连所述系统的组件以用于其上的数据的交换;
32.至少一个服务器,具有处理器和非暂态存储器中的用于所述处理器的指令;
33.至少一个节点,可操作以从应用指令执行应用;并且
34.其中包括用于pod的创建的指令的规范被访问,所述pod要包括应用容器,其包括所述应用指令,以及所述应用利用的加密数据存储;
35.其中所述系统的服务器接收所述规范的通知,并且作为响应,进一步确定所述规范包括对于加密数据存储的要求,并且作为响应,向所述规范中插入包括加密密钥的初始化容器规范,其中所述初始化容器将在所述应用容器的执行之前执行;并且
36.其中所述至少一个节点执行包括所述初始化容器和所述应用容器的所述pod。
37.一种用于利用加密数据存储配置自包含的可执行模块(pod)的方法,包括:
38.访问包括用于pod的创建的规范指令的pod创建规范,所述pod要包括应用容器,其包括应用指令,以及所述应用利用的加密数据存储;
39.由处理器确定所述规范包括对于加密数据存储的要求,并且作为响应,自动地向所述规范中插入包括加密密钥的初始化容器规范,其中所述初始化容器将在所述应用容器的执行之前执行;并且
40.执行包括所述初始化容器和所述应用容器的所述pod。
41.一种执行服务的处理器,包括:
42.访问包括用于pod的创建的规范指令的pod创建规范,所述pod要包括应用容器,其包括应用指令,以及所述应用利用的加密数据存储;
43.由所述处理器确定所述规范包括对于加密数据存储的要求,并且作为响应,自动地向所述规范中插入包括加密密钥的初始化容器规范,其中所述初始化容器将在所述应用
容器的执行之前执行;并且
44.执行包括所述初始化容器和所述应用容器的所述pod;并且
45.其中所述服务访问在包括所述加密数据存储的盘上同时维护的加密数据和非加密数据。
46.以上方面中的任何一个,其中所述加密数据存储被挂载在盘上,所述盘同时包括加密数据与非加密数据。
47.以上方面中的任何一个,其中所述加密数据存储被挂载在盘上,所述盘同时包括加密数据与其它加密数据,所述加密数据利用所述加密密钥加密,所述其它加密数据利用不同的加密密钥加密。
48.以上方面中的任何一个,其中所述至少一个节点中的节点:
49.执行利用所述初始化容器规范配置的所述初始化容器;并且
50.在所述初始化容器的执行完成时,执行所述应用容器以执行访问所述加密数据存储的所述应用。
51.以上方面中的任何一个,其中所述初始化容器执行以进行:
52.利用所述加密密钥对盘硬件上的数据的加密;
53.对于所述盘硬件在所述规范中定义的位置路径处的盘卷的挂载;并且
54.其中所述应用经由所述盘卷访问所述盘硬件。
55.以上方面中的任何一个,其中:
56.所述规范包括对于包括关闭所述加密存储的指令的sidecar应用的定义;并且
57.所述至少一个节点中的节点将所述应用容器执行到完成,并且因此执行所述sidecar应用。
58.以上方面中的任何一个,其中所述初始化容器符合kubernetes

init container’。
59.以上方面中的任何一个,其中所述服务器经由kubernetes

mutatingadmissionwebhook’的执行进行操作。
60.以上方面中的任何一个,其中所述kubernetes

mutatingadmissionwebhook’利用kubernetes

admissionreview’请求调用第二服务器,并且作为响应,接收所述初始化容器的规范。
61.以上方面中的任何一个,其中:
62.所述至少一个节点包括第一节点和第二节点;并且
63.其中所述第一节点执行包括所述初始化容器和所述应用容器的所述pod;并且
64.将所述pod从所述第一节点移动到所述第二节点以在所述第二节点上执行,并且维护所述加密数据存储,而不进行解密和重新加密,并且其中所述应用代码访问利用所述加密密钥加密的所述加密数据存储。
65.以上方面中的任何一个,其中:
66.所述初始化容器的挂载传播是双向传播;
67.所述应用容器的挂载传播是主机到容器传播;并且
68.其中所述加密数据存储被挂载在盘上,所述盘同时包括加密数据与非加密数据并且是访问所述盘的所述初始化容器和应用容器中的每一个可访问的。
69.以上方面中的任何一个,其中执行所述pod还包括所述加密数据存储被挂载在盘上,所述盘同时包括加密数据与非加密数据。
70.以上方面中的任何一个,其中执行所述pod还包括所述加密数据存储被挂载在盘上,所述盘同时包括加密数据与其它加密数据,所述加密数据利用所述加密密钥加密,所述其它加密数据利用不同的加密密钥加密。
71.以上方面中的任何一个,还包括:
72.执行利用所述初始化容器规范配置的所述初始化容器;并且
73.在所述初始化容器的执行完成时,执行所述应用容器以执行访问所述加密数据存储的所述应用。
74.以上方面中的任何一个,其中执行所述初始化容器包括,
75.利用所述加密密钥对盘硬件上的数据加密;
76.对于所述盘硬件在所述规范中定义的位置路径处的盘卷的挂载;并且
77.其中所述应用经由所述盘卷访问所述盘硬件。
78.以上方面中的任何一个,其中:
79.所述规范包括对于包括关闭所述加密存储的指令的sidecar应用的定义;并且
80.在将包括所述初始化容器和所述应用容器的所述pod执行到完成时,执行所述sidecar应用。
81.以上方面中的任何一个,其中访问所述规范包括从请求所述应用的执行的服务生成所述规范。
82.以上方面中的任何一个,包括在kubernetes平台内执行的联网组件的系统上的操作。
83.一种片上系统(soc),包括以上方面中的任何一个或多个。
84.一个或多个部件,用于执行以上方面中的任何一个或多个。
85.如本文实质性描述的方面中的任何一个或多个。
86.以上方面中的任何一个,其中所述数据存储包括非暂态存储设备,所述非暂态存储设备包括以下中的至少一个:所述处理器内的片上存储器、所述处理器的寄存器、与所述处理器共同位于处理板上的板上存储器、所述处理器经由总线可访问的存储器、磁介质、光介质、固态介质、输入-输出缓冲器、与所述处理器通信的输入-输出组件的存储器、网络通信缓冲器、以及经由网络接口与所述处理器通信的联网组件。
87.作为对理解的帮助,提供了对本文使用的某些术语的描述。这些描述被认为与kubernetes规定的含义一致(参见www.kubernetes.io/docs/reference/),而不是作为重新定义或要给予任何补充含义而提供。所有与kubernetes或其任何部分的定义、规范和操作相关的术语,除非另外明确声明,否则在本文中应具有kubernetes对其规定的含义。
88.集群(cluster)—运行容器化应用的一个或多个worker机器或“节点”的分组。
89.容器(container)—可执行文件,其包含执行所需的软件和所有依赖。容器在pod内,并且能够访问卷。
90.控制平面(control plane)—容器编排层,其暴露api和接口以定义、部署和管理容器的生命周期,并且至少包括:etcd(一致的、高度可用的键值存储,其用作kubernetes的所有集群数据的备份存储)、kubernetes api服务器(验证和配置包括pod、服务、复制控制
器和其它的api对象的数据。api服务器服务rest操作,并且向集群的共享状态提供前端,所有其它组件通过该集群的共享状态进行交互。)、调度器(策略丰富、拓扑感知、工作负载特定的功能,其显著地影响可用性、性能和容量)、控制器管理器(守护进程,其嵌入与kubernetes一起装运的核心控制环并且是一种控制环,其通过apiserver观察集群的共享状态,并且做出改变,试图使当前状态移向期望状态。当前与kubernetes一起装运的控制器的示例是复制控制器、端点控制器、命名空间控制器和服务账户控制器。)、以及云控制器管理器(嵌入云特定的控制逻辑的组件。云控制器管理器让集群链接到云提供商的api中,并且将与云平台交互的组件从仅与集群交互的组件分开。)。
91.盘(disk)—用于存储数据的物理硬件。单数“盘”的使用是非限制性的,并且可以包括一个或多个物理的、非暂态的存储设备和/或介质。
92.kubelet—在每个节点上运行的主要节点代理。它可以使用以下中的一个向apiserver注册节点:主机名;覆写主机名的标志;或者用于云提供商的特定逻辑。kubelet依据podspec工作。podspec是yaml或json对象,其描述pod。kubelet接受通过各种机制(主要通过apiserver)提供的一组podspec,并且确保那些podspec中描述的容器正在运行和健康。kubelet不管理不是由kubernetes创建的容器。
93.节点(node)—节点是由集群确定的物理机器或虚拟机器(即,呈现为不同机器的物理机器)。每个节点包含运行由控制平面管理的pod所必需的服务。
94.变异准入webhook(或“mutatingadmissionwebhook”)—http回调,其是准入控制器的一种类型,在对象的持久化之前、但在请求被认证和授权之后,拦截对kubernetes api服务器的请求的代码。变异控制器可以修改它们准入的对象,而“验证”控制器不可以。一些控制器可能是验证的、变异的、或者两者都是。在准入控制的第一阶段中,变异阶段允许修改对象,并且在第二验证阶段中,执行验证,尽管一些控制器是变异的和验证的。mutatingadmissionwebhook仅可以在变异阶段期间运行。
95.持久卷(persistent volume)—(也称为“persistentvolume”或“pv”)集群中的存储,其可以由管理员配设或动态地配设。
96.持久卷要求(persistent volume claim)—(也称为:“persistentvolumeclaim”或“pvc”)用户对存储的请求。可以定义类型(例如,挂载作为单个或多个读/写)、pvc消耗pv(像pod消耗资源)。
97.pod—kubernetes中的最细粒度执行单元。pod代表集群上的一组运行的容器。一般地,pod在其中将仅具有一个容器。然而,多个紧密耦合的容器可以在同一pod内,诸如共享存储和/或网络的sidecar容器。可以具有用于存储的卷、访问内容管理器中的内容的文件拉取器、以及面对客户的web服务器。一般地,容器,而不是pod,是由用户创建的。pod自身不是持久性的。当进程结束时,pod被终止(终止也杀死卷)。
98.init容器(或“initcontainers”)是在pod中的app容器之前运行的专门容器。init容器可以包含app镜像中不存在的实用程序或设置脚本。init容器总是运行到完成,并且每个init容器必须在下一个init容器启动之前成功完成。
99.sidecar容器(sidecar container)—pod可能封装由多个共位的容器组成的应用,这些共位的容器紧密耦合并且需要共享资源。例如,这些共位的容器可能形成单个凝聚性服务单元—一个容器从共享卷向公众服务文件,而单独的“sidecar”容器刷新或更新这
些文件。pod将这些容器和存储资源包在一起作为单个可管理的实体。
100.卷(volume)—pod内的存储。可以是盘上的目录或者在另一容器中。卷内可以存储有数据。“卷类型”确定创建、支持它的介质和内容,并且可以包括awselasticblockstore、portworxvolume、等等。“emptydir”的存储介质由保持kublelet根目录(通常是/var/lib/kubelet)的文件系统的介质确定。
101.webhook—当某件事情(例如,事件通知)发生时出现的http回调和http post。http post是到url的消息。
102.短语“至少一个”、“一个或多个”、“或者”以及“和/或”是在操作中既是联合的也是分离的开放式表达。例如,表达“a、b和c中的至少一个”、“a、b或c中的至少一个”、“a、b和c中的一个或多个”、“a、b或c中的一个或多个”、“a、b和/或c”以及“a、b或c”中的每一个意指单独a、单独b、单独c、a和b一起、a和c一起、b和c一起,或者a、b和c一起。
103.术语“一”或“一个”实体指的是一个或多个该实体。这样,术语“一”(或“一个”)、“一个或多个”以及“至少一个”在本文中可以可互换地使用。还应当注意,术语“包括”、“包含”以及“具有”可以可互换地使用。
104.本文中所使用的术语“自动”及其变型指的是任何过程或操作,该过程或操作一般是连续的或半连续的,并且在过程或操作被执行时在没有实质的人工输入的情况下完成。然而,如果输入在过程或操作的执行之前被接收到,则过程或操作可以是自动的,即使过程或操作的执行使用实质或非实质的人工输入。如果人工输入影响过程或操作将如何被执行,则这样的输入被认为是实质的。同意过程或操作的执行的人工输入不被认为是“实质的”。
105.本公开的方面可以采用完全是硬件的实施例、完全是软件(包括固件、驻留软件、微代码等)的实施例、或者组合软件和硬件方面的实施例(在本文中一般可以全部被称为“电路”、“模块”或“系统”)的形式。一种或多种计算机可读介质的任何组合可以被利用。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。
106.计算机可读存储介质可以是例如,但不限于,电子的、磁的、光学的、电磁的、红外的或半导体的系统、装置或设备,或者前面的任何合适组合。计算机可读存储介质的更多具体示例(非穷尽列举)将包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光学存储设备、磁存储设备,或者前面的任何合适组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储由或者结合指令执行系统、装置或设备使用的程序的任何有形非暂态介质。
107.计算机可读信号介质可以包括例如在基带中或者作为载波的一部分的传播的数据信号(其中包含有计算机可读程序代码)。这样的传播信号可以采取各种各样的形式(包括,但不限于,电磁的、光学的、或它们的任何合适组合)中的任何一种。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读存储介质并且可以传达、传播或传输程序以由或者结合指令执行系统、装置或设备使用。包含在计算机可读介质上的程序代码可以使用任何适当的介质(包括但不限于无线、有线线路、光纤电缆、rf等、或者前面的任何合适组合)来传输。
108.本文中所使用的术语“确定”、“计算”和“运算”、以及它们的变型可互换地使用,并
且包括任何类型的方法、过程、数学运算或技术。
109.本文中所使用的术语“手段”应当根据35u.s.c.第112(f)部分和/或第112部分第6段来给予其最广泛的可能解释。因此,含有术语“手段”的权利要求应当覆盖本文中阐述的所有结构、材料或动作、及其全部等同物。此外,结构、材料或动作及其等同物应当包括发明内容、附图说明、具体实施方式、摘要和权利要求自身中描述的所有那些。
110.前面是简化的发明内容以提供本发明的一些方面的理解。这个发明内容既不是本发明及其各种实施例的广泛性概述,也不是穷尽性概述。它既不是旨在认定本发明的关键或紧要的要素,也不是旨在划定本发明的范围,而是要以简化的形式呈现本发明的选择的概念,作为对以下呈现的更详细的描述的介绍。如将意识到的,本发明的其它实施例单独地或组合地利用以上阐述的或者以下详细描述的特征中的一个或多个是可能的。而且,虽然本公开从示例性实施例的角度呈现,但是应当意识到,本公开的各个方面可以单独地请求保护。
附图说明
111.本公开结合附图描述:
112.图1描绘了根据本公开的实施例的第一系统;
113.图2a-2c描绘了根据本公开的实施例的第一过程;
114.图3描绘了根据本公开的实施例的第二过程;
115.图4a-4e描绘了根据本公开的实施例的pod规范;并且
116.图5描绘了根据本公开的实施例的第二系统。
具体实施方式
117.接下来的描述仅提供实施例,并不旨在限制权利要求的范围、适用性或配置。更确切地说,接下来的描述将向本领域技术人员提供用于实现实施例的可行描述。将理解到,在不脱离所附权利要求的精神和范围的情况下,可以在元素的功能和布置上进行各种改变。
118.包括元素编号的描述中的任何引用(当子元素标识符存在于附图中时没有子元素标识符、当以复数使用时)旨在引用具有相似的元素编号的任何两个或更多个元素。当这样的引用是以单数形式进行时,它旨在引用具有相似的元素编号的元素中的一个,而不限于元素中的特定一个。本文中相反的或者提供进一步的限定或标识的任何明确的使用应当优先。
119.本公开的示例性系统和方法也将关于分析软件、模块和关联的分析硬件来进行描述。然而,为了避免不必要地模糊本公开,以下描述省略了众所周知的结构、组件和设备,这些结构、组件和设备可以从附图中省略或者在附图中以简化的形式示出,或者以其它方式概述。
120.出于解释的目的,阐述了许多细节以便提供本公开的透彻理解。然而,应当意识到,本公开可以以超出本文中阐述的具体细节的各种方式来实施。
121.图1描绘了根据本公开的实施例的系统100。系统100图示了一种网络拓扑,然而,应当意识到的是,在不偏离本文实施例的范围的情况下,可以利用其它网络拓扑。类似地,虽然图示了单个组件,诸如计算平台114和数据存储116,但是可以利用多个这样的组件,或
者组件的组合。例如,存储可以由数据存储116提供,该数据存储116体现在由一个或多个存储提供商运营的若干个存储平台上。类似地,计算、通信和其它服务可以由计算平台114提供,该计算平台114具有与客户通信设备108和连接在其上的节点的网络接口(未示出),其还可以包括若干个计算硬件和硬件平台。在另外的实施例中,计算平台114和/或数据存储116中的一个或多个被部署在“云”平台上,其中底层硬件(例如,处理硬件、存储介质、连接性组件、等等)可以被动态分配,以便适应单个客户端(例如,提供服务的企业)对这样的硬件的需求的变化。替代的拓扑可以包括但不限于利用网络108来互连计算平台114的组件、数据存储116和/或其它组件。
122.在一个实施例中,管理员112直接使用管理员设备110,或者通过启动自动化过程,创建pod创建请求或者使pod创建请求被创建,该pod创建请求具有指示盘加密被请求的标签,例如:“av-csp-disk-encryption:true”,以及持久卷(pv)创建所要求的任何其它标签。该请求被发送到服务器,诸如作为kubernetes api服务器操作的计算平台114。计算平台114利用pod细节,如kubernetes中已知的那样,来创建admissionreview请求,并且将该请求发送到盘加密服务pod,在一个实施例中,该盘加密服务pod由计算平台114(诸如webhook(参见图2,mutatingadmissionwebhook 204))执行。
123.接着,变异的admissionreview请求被盘加密服务pod变异,其中pod已向其附加(例如,“装饰”)加密sidecar数据结构和init容器细节,被发送回kubernetes api服务器。sidecar数据在应用容器完成时执行以关闭盘。
124.图2a-2c描绘了根据本公开的实施例的过程200。在一个实施例中,过程200创建具有加密的盘的执行pod。在步骤212中,管理员112经由管理员设备110创建并且部署pod,该pod包括对具有加密的pv的请求。在另外的实施例中,步骤212可以被打包在一批文件(诸如“helm”的“图表(chart)”)中,并且描述一组相关的kubernetes资源(例如,pod、容器、对加密的pv的请求、等等)。kubernetes(在图中缩写为“k8s”)应用编程接口(api)服务器202接收该图表(如果被利用了的话),或者组件(如果没有图表被利用的话)。
125.接着,在步骤214中,kubernetes api服务器202准备pod(例如,“pod-x”)规范请求,并且将pod规范与请求pv的容器(例如,“c1”)一起转发到mutatingadmissionwebhook 204。在步骤216中,盘加密mutatingadmissionwebhook 204将kubernetes admissionreview请求提供给服务器(满足mutatingadmissionwebhook 208。
126.在步骤218中,mutatingadmissionwebhook 208的服务器对pod(例如,“pod-x”)提供kubernetes admissionreview响应,带有init容器和sidecar容器的规范。在步骤220中,kubernetes api服务器202创建pod(例如,“pod-x”),其中在容器中具有对于加密的pv要被挂载在由mutatingadmissionwebhook 208的服务器指定的路径(例如,“/container-path/somepath”)中的请求。
127.接着,在步骤232,kubernetes worker kubelet 210启动加密init容器230,init容器执行并且进行步骤234、236、238、240和242。更具体而言,步骤234访问块设备,步骤236读取秘密以取得盘加密密钥,步骤238使用加密密钥对块设备进行加密,步骤240将块设备映射为盘,并且步骤242将盘挂载在worker主机路径(例如,“/host-node-path/p”)上。步骤244向kubernetes worker kubelet 210发信号通知init容器完成。
128.kubernetes worker kubelet 210在步骤250启动容器(例如,“c1”),并且在步骤
254将pv从主机路径(例如,“/host-note-path/p”)挂载到容器路径(例如,“/container-path/somepath”)。在步骤256中,kubelet 210在pod内实例化加密sidecar容器258。在步骤256完成时,pod以加密的盘执行并且准备好供使用。
129.图3描绘了根据本公开的实施例的过程300。在一个实施例中,过程300被发起,诸如由管理员112经由管理员设备110发起,以终止pod,诸如由过程200创建的“pod-x”。当步骤212(参见图2a)利用步骤212中的图表时,步骤302可以类似地是删除相应的图表的请求。kubernetes api服务器202接收删除请求(步骤302),并且在步骤304中向kubernetes worker kubelet 210发送pod终止请求。kubernetes worker kubelet 210在步骤306中向具有容器252的pod发送停止并且终止容器,并且在步骤308中向具有加密sidecar容器258的pod发送停止并且终止容器。
130.具有加密sidecar容器258的pod然后执行步骤310、312和314。步骤310调用清理脚本,步骤312从主机路径(例如,“/host-node-path/p”)卸载盘,并且步骤314关闭加密的盘。在步骤316,kubernetes worker kubelet 210已完成pod终止请求。
131.图4a-4e描绘了根据本公开的实施例的pod规范400。在一个实施例中,pod规范400示出了指令的一个示例,这些指令被提供以由一个或多个处理器执行以利用kubernetes的mutatingadmissionwebhook和init容器来提供具有静态加密的持久卷。在一个实施例中,pod规范400包括pod的注释块402和创建持久卷(pv)的请求以由mutatingadmissionswebhook处理。在一个实施例中,块404定义了kubernetes容器的名称(例如,“container1”)、持久卷要求,(例如,“apvc1”)和挂载路径(例如,“/var/my-path1”)。
132.下一个块410定义了要由kubernetes api服务器(例如,kubernetes api服务器202)创建的init容器。块412(例如,“双向”),它使由容器(例如,“container1”)创建的卷挂载被传播回主机(例如,由hostpath定义)和来自pod的使用同一卷的所有容器。init容器也挂载到主机中的相应目录。在块404中标识的块416通过mutatingadmissionwebhook(例如,mutatingadmissionwebhook 208)定义用于容器创建的容器,以在块418中添加块408中定义的路径。块420指定在主机目录中挂载的卷也将被挂载在容器中,在块422中提供的子路径处,如注释块406中所定义的。
133.块424定义要由mutatingadmissionwebhook(例如,mutatingadmissionwebhook 208)注入的sidecar容器。
134.在块426中指定的由init容器(例如,init容器230)挂载pv的主机路径,包括块428(例如,块413中定义的“anchor-on-node”,以及块430,是添加到pvc-info注释块402中定义的pod规范的卷。
135.图5描绘了根据本公开的实施例的系统500中的设备502。在一个实施例中,计算平台114可以全部或部分地体现为设备502,包括各种组件和与其它组件和/或系统的连接。这些组件以各种方式体现,并且可以包括处理器504。处理器504可以体现为单个电子微处理器或多处理器设备(例如,多核心),其中具有诸如控制单元、输入/输出单元、算术逻辑单元、寄存器、主存储器和/或其它组件之类的组件,其访问信息(例如,数据、指令,等等),例如经由总线514接收的,执行指令,并且输出数据,再次例如经由总线514。在其它实施例中,处理器504可以包括可以被其它进程和/或进程所有者利用的共享处理设备,例如在处理阵
列或分布式处理系统(例如,“云”、农场,等等)中。应当意识到,处理器504是非暂态计算设备(例如,包括电路和连接以与其它组件和设备通信的电子机器)。处理器504可以操作虚拟处理器,以例如处理非处理器原生的机器指令(例如,转化9xx芯片集代码以模拟不同处理器的芯片集或非原生操作系统,例如mac上的vax操作系统),然而,这种虚拟处理器是由底层处理器(例如,处理器504)及其硬件和其它电路执行的应用。
136.除了处理器504的组件以外,设备502还可以利用存储器506和/或数据存储508来存储可访问的数据,例如指令、值,等等。通信接口510促进与组件的通信,例如处理器504经由总线514与不可经由总线514访问的组件。通信接口510可以体现为网络端口、卡、线缆或其它配置的硬件设备。额外地或替换地,人类输入/输出接口512连接到一个或多个接口组件,以从人类和/或电子设备接收和/或向其呈现信息(例如,指令、数据、值,等等)。可以连接到输入/输出接口的输入/输出设备530的示例包括,但不限于,键盘、鼠标、轨迹球、打印机、显示器、传感器、开关、继电器,等等。在另一实施例中,通信接口510可以包括人类输入/输出接口,或者由人类输入/输出接口512组成。通信接口510可以被配置为直接与联网组件通信或者利用一个或多个网络,例如网络520和/或网络524。
137.网络108可以全部或部分地体现为网络520。网络520可以是有线网络(例如,以太网)、无线(例如,wifi、蓝牙、蜂窝,等等)网络或其组合,并且使得设备502能够与网络组件522通信。在其它实施例中,网络520可以全部或部分地体现为电话网络(例如,公共交换电话网络(public switched telephone network,pstn)、专用分支交换(private branch exchange,pbx)、蜂窝电话网络,等等)
138.额外地或替换地,可以利用一个或多个其它网络。例如,网络524可以代表第二网络,第二网络可以促进与设备502利用的组件的通信。例如,网络524可以是商业实体或其它组织的内部网络,由此组件被信任(或至少更信任),而联网的组件522可能连接到包括公共网络(例如,因特网)的网络520,该公共网络可能不那么被信任。
139.连接到网络524的组件可以包括存储器526、数据存储528、输入/输出设备530,和/或可以被处理器504访问的其它组件。例如,存储器526和/或数据存储528可以完全补充或取代存储器506和/或数据存储508,或者用于特定任务或目的。例如,存储器526和/或数据存储528可以是外部数据仓库(例如,服务器场、阵列、“云”,等等),并且允许设备502和/或其它设备访问其上的数据。类似地,输入/输出设备530可以由处理器504经由人类输入/输出接口512和/或经由通信接口510直接访问、经由网络524访问、单独经由网络520(未示出)访问或者经由网络524和520访问。存储器506、数据存储508、存储器526、数据存储528中的每一者包括由数据存储设备组成的非暂态数据存储。
140.应当意识到,计算机可读数据可以被各种组件发送、接收、存储、处理和呈现。还应当意识到,图示的组件可以控制其它组件,不管是在这里图示的还是其它。例如,一个输入/输出设备530可以是路由器、交换机、端口或其它通信组件,以便处理器504的特定输出使能(或禁用)输入/输出设备530(其可能与网络520和/或网络524相关联),以允许(或不允许)网络520和/或网络524上的两个或更多个节点之间的通信。例如,一个特定的客户之间的使用特定客户通信设备104的连接可以用特定的联网组件522来使能(或禁用)。本领域的普通技术人员将会意识到,在不脱离实施例的范围的情况下,可以利用其它通信设备来补充或替代本文描述的设备。
141.在前面的描述中,出于图示的目的,按特定次序描述了方法。应意识到,在替代实施例中,在不脱离实施例的范围的情况下,可以按与所描述的次序不同的次序执行所述方法。还应意识到,上述方法可以被作为由专门被构建为执行本文中描述的一个或多个算法或它们的部分的硬件组件(例如,电路系统)执行的算法执行。在另一个实施例中,所述硬件组件可以包括首先被转换为专用微处理器的通用微处理器(例如,cpu、gpu)。所述专用微处理器然后使编码信号加载于其中,所述编码信号使现在专用的微处理器维护使得该微处理器能够读取并且执行从所述算法推导的机器可读指令集的机器可读指令和/或本文中描述的其它指令。用于执行所述算法或它的部分的机器可读指令不是无限的,而是利用微处理器已知的有限的指令集。所述机器可读指令可以在信号生成组件中被作为信号或值编码在微处理器中,并且在一个或多个实施例中,包括存储器电路中的电压、交换电路的配置、和/或通过特定的逻辑门电路的选择性使用。另外地或替代地,所述机器可读指令可以供微处理器访问,并且被作为磁场、电压值、电荷值、反射/非反射部分和/或物理标记编码在介质或设备中。
142.在另一个实施例中,微处理器进一步包括以下中的一个或多个:单个微处理器、多核处理器、多个微处理器、分布式处理系统(例如,阵列、刀片、服务器群、“云”、多用途处理器阵列、集群等),和/或可以与执行其它处理操作的微处理器共处一处。任何一个或多个微处理器可以被集成到单个处理器材(例如,计算机、服务器、刀片等)中,或者被完全或部分地安置在经由通信链接(例如,总线、网络、背板等、或多个总线、网络、背板等)连接的分立的组件中。
143.通用微处理器的例子可以包括具有被编码在指令寄存器(或维护指令的其它电路系统)中的数据值、或者包括存储器位置的数据值(这些数据值又包括用作指令的值)的中央处理单元(cpu)。存储器位置可以进一步包括cpu外部的存储器位置。这样的cpu外部的组件可以被实施为以下中的一个或多个:现场可编程门阵列(fpga)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、随机存取存储器(ram)、总线可访问储存器、网络可访问储存器等。
144.这些机器可执行指令可以被存储在一个或多个机器可读介质上,诸如cd-rom或其它类型的光盘、软盘、rom、ram、eprom、eeprom、磁卡或光学卡、闪存、或适合于存储电子指令的其它类型的机器可读介质。可替代地,所述方法可以用硬件和软件的组合来执行。
145.在另一个实施例中,微处理器可以是处理硬件组件的系统或集合,诸如客户端设备上的微处理器和服务器上的微处理器、具有它们的相应的微处理器的设备的集合、或共享或远程处理服务(例如,基于“云”的微处理器)。处理器系统可以包括处理任务和/或共享的或分布式的处理任务的任务特定的分派。在又一个实施例中,微处理器可以执行提供模仿不同的一个微处理器或多个微处理器的服务的软件。结果,由第一组硬件组件组成的第一微处理器可以几乎提供第二微处理器服务,由此,与第一微处理器相关联的硬件可以使用与第二微处理器相关联的指令集来进行操作。
146.虽然机器可执行指令可以被存储在特定机器(例如,个人计算机、移动计算设备、膝上型电脑等)的本地并且在该机器的本地执行,但是应意识到,数据和/或指令的存储、和/或指令的至少一部分的执行可以经由与远程数据储存器和/或处理设备或设备集合(常被称为“云”)的连接来提供,但是可以包括公共的、私有的、专用的、共享的和/或其它的服
务局、计算服务和/或“服务器群”。
147.本文中描述的微处理器的示例可以包括,但不限于,本文中描述的微处理器的示例可以包括,但不限于,800和801、具有4g lte集成和64位计算的lte集成和64位计算的610和615、具有64位架构的a7微处理器、m7运动协微处理器、系列、core
tm
微处理器族、微处理器族、atom
tm
微处理器族、intel微处理器族、i5-4670k和i7-4770k 22nm haswell、haswell、i5-3570k 22nm ivy bridge、fx
tm
微处理器族、fx-4300,fx-6300和fx-8350 32nm vishera、kaveri微处理器、texasjacinto c6000
tm
汽车信息娱乐微处理器、texasomap
tm
汽车级移动微处理器、cortex
tm-m微处理器、cortex-a和arm926ej-s
tm
微处理器、其它行业等同的微处理器中的至少一个,并且可以使用任何已知的或将来开发的标准、指令集、库和/或架构来执行计算功能。
148.本文中讨论的步骤、功能和操作中的任何一个可以连续地和自动地执行。
149.本发明的示例性系统和方法已关于用于监视、增强以及修饰通信和消息的通信系统和组件进行描述。然而,为了避免不必要地模糊本发明,前面的描述省略了众多已知的结构和设备。这种省略不应被理解为对请求保护的发明的范围的限制。具体细节被阐述以提供本发明的理解。然而,应当意识到,本发明可以以超出本文中阐述的具体细节的各种各样的方式来实施。
150.而且,虽然本文中说明的示例性实施例示出了系统的并置的各种组件,但是系统的某些组件可以位于远处、分布式网络(诸如lan和/或因特网)的远端部分处、或者专用系统内。因此,应当意识到,系统的组件或其部分(例如,微处理器、存储器/储存器、接口等)可以被组合到一个或多个设备(诸如一个服务器、多个服务器、计算机、计算设备、终端、“云”或其它分布式处理),或者并置在分布式网络(诸如模拟和/或数字电信网络、分组交换网络或电路交换网络)的特定节点上。在另一个实施例中,组件可以物理地或逻辑地分布在多个组件上(例如,微处理器可以包括一个组件上的第一微处理和另一个组件上的第二微处理器,各自执行共享的任务和/或分配的任务的一部分)。出于计算效率的原因并且从前面的描述将意识到,系统的组件可以布置在组件的分布式网络内的任何位置,而不影响系统的操作。例如,各种组件可以位于交换机(诸如pbx)和媒体服务器、网关中、一个或多个通信设备中、一个或多个用户的所在地、或者它们的某种组合。类似地,系统的一个或多个功能部分可以分布在电信设备与相关联的计算设备之间。
151.而且,应当意识到,连接元件的各种链路可以是有线的或无线的链路、或者它们的任何组合、或者能够向和从连接的元件供给和/或传达数据的任何其它已知的或后来开发的元件。这些有线的或无线的链路也可以是安全的链路并且能够传达加密的信息。用作链路的传输媒介例如可以是用于电信号的任何合适的载体(包括同轴电缆、铜线和光纤),并且可以采用声波或光波的形式(诸如在无线电波和红外数据通信期间产生的那些)。
152.此外,虽然流程图已关于特定的事件序列进行讨论和说明,但是应当意识到,在不实质地影响本发明的操作的情况下可以发生对该序列的改变、添加和省略。
153.本发明的众多变型和修改可以被使用。将能够提供本发明的一些特征,而不提供其它特征。
154.在还另一个实施例中,本发明的系统和方法可以结合专用计算机、编程的微处理器或微控制器以及外围集成电路元件、asic或其它集成电路、数字信号微处理器、硬连线电子或逻辑电路(诸如分立元件电路)、可编程逻辑器件或门阵列(诸如pld、pla、fpga、pal)、专用计算机、任何可比较的手段等实现。一般而言,能够实现本文中说明的方法的任何设备或手段可以被用于实现本发明的各个方面。可以用于本发明的示例性硬件包括计算机、手持式设备、电话(例如,蜂窝的、支持因特网的、数字的、模拟的、混合的以及其它)、以及本领域已知的其它硬件。这些设备中的一些包括微处理器(例如,单个或多个微处理器)、存储器、非易失性存储装置、输入设备和输出设备。而且,替代的软件实现(包括,但不限于,分布式处理或组件/对象分布式处理、并行处理或虚拟机处理)也可以被构造以实现本文中描述的方法,如由一个或多个处理组件所提供的。
155.在还另一个实施例中,公开的方法可以结合使用对象或面向对象的软件开发环境(其提供可以在各种各样的计算机或工作站平台上使用的可移植的源代码)的软件容易地实现。替代地,公开的系统可以使用标准逻辑电路或vlsi设计以硬件部分地或全部地实现。是软件还是硬件被用于实现根据本发明的系统取决于系统的速度和/或效率要求、特定功能、以及正在被利用的特定软件或硬件系统或者微处理器或微计算机系统。
156.在还另一个实施例中,公开的方法可以以软件部分地实现,该软件可以存储在存储介质上,在具有控制器和存储器的协作的编程的通用计算机、专用计算机、微处理器等上执行。在这些情况下,本发明的系统和方法可以作为嵌入在个人计算机上的程序(诸如小程序(applet)、或cgi脚本)、作为驻留在服务器或计算机工作站上的资源、作为嵌入在专用测量系统、系统组件等中的例程实现。系统也可以通过将系统和/或方法物理地融合到软件和/或硬件系统中来实现。
157.本文中的包括软件的实施例被一个或多个微处理器执行,或者被存储以用于后续被一个或多个微处理器执行,并且被作为可执行代码执行。所述可执行代码被选择执行包括特定实施例的指令。被执行的指令是从微处理器理解的离散的本机指令集选择的受到约束的指令集,并且在执行之前,被提交给微处理器可访问的存储器。在另一个实施例中,人类可读“源代码”软件在被所述一个或多个微处理器执行之前,首先被转换为包括平台(例如,计算机、微处理器、数据库等)特定的、从该平台的本机指令集选择的指令集的系统软件。
158.尽管本发明参考特定的标准和协议描述了实施例中实现的功能和组件,但是本发明不限于这样的标准和协议。本文中未提到的其它类似的标准和协议是存在的并且被认为包括在本发明中。而且,本文中提到的标准和协议以及本文中未提到的其它类似的标准和协议周期性地被具有本质上相同的功能的更快或更有效的等同物取代。具有相同的功能的这样的替换标准和协议被认为是包括在本发明中的等同物。
159.本发明在各种实施例、配置和方面中包括基本上如本文中描绘和描述的组件、方法、过程、系统和/或装置,包括各种实施例、子组合以及它们的子集。本领域技术人员在理解本公开之后将理解如何制造和使用本发明。本发明在各种实施例、配置和方面中包括在没有在本文中或本文的各种实施例、配置或方面中未描绘和/或描述的项目的情况下(包括
在没有可能已用于先前的设备或过程中(例如,用于改善性能、实现便利和/或降低实现的成本)的这样的项目的情况下)提供设备和过程。
160.本发明的前面的讨论已出于说明和描述的目的而给出。前面的内容并非旨在将本发明限制于本文中公开的一种形式或多种形式。例如在前面的具体实施方式部分,本发明的各种特征出于简化本公开的目的而在一个或多个实施例、配置或方面中聚集在一起。本发明的实施例、配置或方面的特征可以在除了以上讨论的那些之外的替代实施例、配置或方面中组合。本公开的这种方法不应被解释为反映了请求保护的发明要求比每个权利要求中明确记载的特征多的特征的意图。相反,如以下权利要求所反映的,发明的方面在于少于单个前面公开的实施例、配置或方面的所有特征。因此,以下权利要求由此并入这个具体实施方式部分中,其中每个权利要求独自代表本发明的单独的优选实施例。
161.而且,尽管本发明的描述已包括一个或多个实施例、配置或方面以及某些变型和修改的描述,但是在理解本公开之后,其它变型、组合和修改在本发明的范围内,例如,可以在本领域技术人员的技能和知识内。旨在获得包括允许的程度内的替代实施例、配置或方面(包括对请求保护的那些的替代、互换和/或等同的结构、功能、范围或步骤)的权利,无论这样的替代、互换和/或等同的结构、功能、范围或步骤是否在本文中公开,并且无意公开捐献任何可专利的主题。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献