CN117194039A - K8s驱动集成系统、请求处理方法、设备及存储介质 - Google Patents
K8s驱动集成系统、请求处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117194039A CN117194039A CN202311222714.2A CN202311222714A CN117194039A CN 117194039 A CN117194039 A CN 117194039A CN 202311222714 A CN202311222714 A CN 202311222714A CN 117194039 A CN117194039 A CN 117194039A
- Authority
- CN
- China
- Prior art keywords
- container
- request
- drive
- node
- sub
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 5
- 230000002085 persistent effect Effects 0.000 claims description 37
- 230000004044 response Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 12
- 230000010354 integration Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004804 winding Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000012190 activator Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种K8S驱动集成系统、请求处理方法、设备及存储介质,包括分别配置控制节点和工作节点上的CSI驱动组件,所述CSI驱动组件均包括一个主驱动容器和至少一个子驱动容器,每个子驱动容器均包括用于驱动块存储空间的块驱动容器、用于驱动文件存储空间的文件驱动容器和用于驱动对象存储空间的对象驱动容器,每个子驱动容器均与所在节点的主驱动容器连接,且每个子驱动容器分别与对应的存储设备通信连接;每个主驱动容器均与所在节点上的辅助容器连接,且每个工作节点上的主驱动容器还与所在节点的Kubelet连接。本发明使得CSI driver部署更简单,减少了资源消耗,大幅降低CSI标准组件的资源利用率。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种K8S驱动集成系统、请求处理方法、设备及存储介质。
背景技术
随着互联网技术的迅速演进,越来越多的应用倾向于采用容器化部署方式,而Kubernetes(通常称为k8s)已经在容器编排领域确立了事实上的标准地位。为实现应用数据的持久性存储,Kubernetes引入了持久卷声明(PersistentVolumeClaim,PVC)、持久卷(PersistentVolume,PV)以及存储类(Storage Class)等概念,这些对象的引入使得应用容器方便使用持久卷。Kubernetes原生地支持多种常见的持久卷类型,如NFS、iSCSI卷等,这些卷相关的代码被纳入Kubernetes代码仓库,构成了所谓的内置存储(in-tree storage)体系。然而,这种内置存储的实现方式使得Kubernetes存储的开发与发布与Kubernetes本身紧密耦合,同时大量第三方存储设备插件的引入也可能影响Kubernetes的稳定性。针对这些问题,Kubernetes引入了CSI(ContainerStorageInterface,容器存储接口)标准,该标准使得第三方存储提供商只需按照CSI规范实现接口即可,而无需直接涉及核心Kubernetes代码。
CSI标准包含了多个辅助容器(sidecar)和CSI驱动程序,每个辅助容器负责实现特定的存储功能,例如"external-provisioner"(CSI规范组件,负责卷供应)、"external-attacher"(CSI规范组件,负责卷扩容)、"external-snapshot"(CSI规范组件,负责快照操作)等,而CSI驱动程序则需要由存储提供商自行开发。通过这些组件的协同配合,实现了为Pod提供持久存储能力的功能。在构建完备的云平台时,通常需要提供块存储、文件存储以及对象存储等多种存储服务。然而,不同类型的存储服务往往需要引入不同的CSI驱动程序,每个CSI驱动程序都需要多个sidecar来完成特定功能,也即在需要支持不同类型的CSI驱动程序时,每次部署新驱动程序也就意味着需要重新部署相关的sidecar。这些重复部署的辅助sidecar在功能上是相似的,增加了部署逻辑的复杂性,同时也导致辅助容器在功能上存在冗余,造成了服务器资源的额外消耗。
发明内容
针对以上问题,本发明提出了一种K8S驱动集成系统、请求处理方法、设备及存储介质。为解决以上技术问题,本发明所采用的技术方案如下:
一种K8S驱动集成系统,包括分别配置在Kubernetes集群的控制节点和工作节点上的CSI驱动组件,所述CSI驱动组件均包括一个主驱动容器和至少一个子驱动容器,每个子驱动容器均包括用于驱动块存储空间的块驱动容器、用于驱动文件存储空间的文件驱动容器和用于驱动对象存储空间的对象驱动容器,每个子驱动容器均与所在节点的主驱动容器连接,且每个子驱动容器分别与对应的存储设备通信连接;每个主驱动容器均与所在节点上的辅助容器连接,且每个工作节点上的主驱动容器还与所在节点的Kubelet连接。
所述控制节点上的每个子驱动容器均基于http协议与对应的存储设备连接,工作节点上的每个子驱动容器均基于存储网络协议与对应的存储设备连接;所述控制节点上的主驱动容器和工作节点上的主驱动容器与各自节点上的子驱动容器之间均基于gRPC协议连接,且每个工作节点上的主驱动容器均基于gRPC协议与所在节点的Kubelet连接。
所述控制节点上的辅助容器包括external-provisioner、external-attacher和/或external-snapshotter,工作节点上的辅助容器包括node-driver-registrar。
一种基于如上所述的K8S驱动集成系统的请求处理方法,所述请求包括创建持久卷声明、创建Pod、删除持久卷声明或删除Pod;
当用户发出需要创建或删除一个持久卷声明的请求时,控制节点上的辅助容器为外部供应容器,所述方法包括如下步骤:
S1,控制节点的主驱动容器对外部供应容器所发送的请求进行接收,所述请求包括主驱动容器ID和子驱动容器ID;
S2,控制节点的主驱动容器根据接收到的请求和预设的endpoints列表确认待提供服务的子驱动容器,并将请求发送至该子驱动容器;
S3,子驱动容器基于接收到的请求与对应的第三方存储设备通信,并将接收到的第三方存储设备的响应传输给控制节点的主驱动容器;
S4,控制节点的主驱动容器将接收到的响应发送给外部供应容器,外部供应容器基于响应创建或删除持久卷;
当用户发出需要创建或删除一个Pod的请求时,所述方法包括如下步骤:
S1,接收到Pod请求的工作节点的Kubelet向该工作节点的主驱动容器发起卷处理请求,主驱动容器将卷处理请求转发到该工作节点的对应的子驱动容器;
当用户发出创建Pod请求时,所述卷处理请求为卷挂载请求,所述卷挂载请求包括用于表示子驱动容器信息的VolumeID、全局挂载点、容器挂载点;当用户发出删除Pod请求时,所述卷处理请求为卷卸载请求,且卷卸载请求包括表示子驱动容器信息的VolumeID、全局卸载点、容器卸载点;
S2,子驱动容器基于卷处理请求与对应的第三方存储设备通信,并将接收到第三方存储设备返回的响应发送到工作节点的主驱动容器;
S3,工作节点的主驱动容器将接收到的响应发送给Kubelet,以完成对应的卷处理请求。
一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的K8S驱动集成系统的请求处理方法。
一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的K8S驱动集成系统的请求处理方法。
本发明的有益效果:
1.本申请是一种多CSI driver的集成方案,支持多种CSI driver复用同一套CSISidecar,在增加CSI driver时无需引入附加的辅助容器,屏蔽了不同类型CSI driver之间的差异,使得CSI driver的部署更简单,同时减少了资源消耗,且在规模化部署CSI组件时,可大幅降低CSI标准组件的资源利用率;
2.引入master CSI driver,在兼容标准的CSI接口的基础上,具备无缝集成于标准CSI插件的能力,可以在不干扰标准CSI插件的情况下进行扩展和改进;master CSIdriver与CSI标准中的辅助容器之间实现了高效的对接,有效处理了辅助容器的请求和响应,这使得master CSI driver成为真正的对外暴露的存储驱动器,实现了与外部环境的协调和互操作;
3.Master CSIDriver能够与底层多种类型的Slave CSIDriver进行双向通信,同时能将来自标准辅助容器的请求转发到特定的Slave CSIDriver,并在接收到响应后将其返回给标准的辅助容器,能够兼容现有的标准的CSIDriver,方便将已在平台部署的多个CSI driver转换为这一新模式,为现有基础架构的平稳升级提供便利;
4.Master CSIDriver不仅具备向下对具体CSI插件进行管理的能力,还负责执行诸如CSI插件的注册发现、向CSI插件发起请求和响应等任务,这一技术创新有效提升了CSI插件管理的灵活性和可维护性;
5.易于对CSI标准流程进行扩展,例如修改请求或响应参数,以及在请求或响应前后添加额外的流程,这为实施打桩测试等操作提供了便捷性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的控制节点的架构图。
图2为本发明的工作节点的架构图。
图3为创建块类型的存储卷时控制节点的流程示意图。
图4为块类型的存储卷挂载时工作节点的流程示意图。
图5为卸载块类型的存储卷时控制节点的流程示意图。
图6为删除块类型的存储卷时工作节点的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
PersistentVolume(持久卷,简称PV)是k8s集群内,由管理员提供的网络存储的一部分,就像集群中的节点一样,PV也是集群中的一种资源。持久卷声明(Persistent VolumeClaim,PVC)是用户的一种存储请求,它和pod类似,Pod消耗node资源,PVC消耗PV资源。
实施例1:一种K8S驱动集成系统,包括分别配置在Kubernetes集群的控制节点也即Master节点和工作节点也即Node节点上的CSI驱动组件,所述CSI驱动组件均包括一个主驱动容器也即Master CSIDriver和至少一个子驱动容器也即Slave CSIDriver,控制节点上的每个子驱动容器均基于http协议与第三方存储设备连接,以便和第三方存储系统的管理系统交互,比如使用第三方存储系统的资源池,设置数据备份,加密等。工作节点上的每个子驱动容器均基于存储网络协议与第三方存储设备连接,通过该数据面的连接可以完成真实存储数据的传输,不同的存储网络协议有不同编码的数据流,比如ceph、iscsi、nfs协议等,且控制节点上的子驱动容器和工作节点上的子驱动容器均基于gRPC协议与所在节点上的主驱动容器对应连接,以确保主驱动容器能够根据接收到的请求驱动对应的子驱动容器,实现与第三方存储设备的通信;控制节点上的主驱动容器和工作节点上的主驱动容器均基于gRPC协议与所在节点POD上的辅助容器连接,方便k8s侧的请求经过辅助容器到达主驱动容器,待主驱动容器选择子驱动容器后,确保请求最终到达子驱动容器。每个工作节点上的主驱动容器还基于gRPC协议与所在节点上的Kubelet连接,在工作节点,也即数据面,方便kubelet的请求可以直接发给主驱动容器,而无需经过辅助容器,最后发给子驱动容器。
本申请中所述辅助容器也即sidecar的作用和结构均与现有技术相同,本实施例不再赘述,另外,本申请中工作节点上配置的子驱动容器与控制节点上配置的子驱动容器相一致。如图1和图2所示,external-provisioner、external-attacher和external-snapshotter均为控制节点上的辅助容器,node-driver-registrar为工作节点上的辅助容器。block-type csi driver、file-type csi driver、object-type csi driver均为子驱动容器,分别与block storage(块存储)、file storage(文件存储)、object-orientedstorage(对象存储)三种类型的存储设备对应通信。
所述子驱动容器包括用于驱动块存储空间的块驱动容器、用于驱动文件存储空间的文件驱动容器和/或用于驱动对象存储空间的对象驱动容器,也即选取哪个子驱动容器可以根据用户需求的存储属性确定,以便驱动对应的存储设备。所述主驱动容器中设有用于记录每个子驱动容器启动信息的endpoints列表,所述启动信息包括子驱动容器ID和socket地址,socket地址作为子驱动容器的启动参数,方便主驱动容器根据用户的需求启动对应的子驱动容器。
所述控制节点上的主驱动容器和子驱动容器上均设有与该节点上的辅助容器相对应的接口,比如当控制节点上设有external-provisioner辅助容器时,控制节点上的主驱动容器上和子驱动容器上需配置对应的CreateVolume接口和DeleteVolume接口,通过与第三方设备交互进而创建卷或删除卷;当控制节点上设有external-provisioner、external-attacher和external-snapshotter时,控制节点上的主驱动容器上和子驱动容器上需配置对应的CreateVolume接口、DeleteVolume接口、ControllerPublishVolume接口、ControllerUnPublishVolume接口、CreateSnapshot接口、DeleteSnapshot接口、ListSnapshots接口。所述工作节点上的主驱动容器和子驱动容器上均设有该节点上的辅助容器相对应的接口,比如当工作节点上设有node-driver-registrar时,工作节点上的主驱动容器上和子驱动容器上需配置对应的GetPluginInfo接口(实现主驱动容器向kubelet注册主驱动容器信息和子驱动容器向主驱动容器注册子驱动容器信息)、NodeStageVolume接口(卷挂载到节点上的全局挂载点)、NodepublishVolume接口(卷挂载到容器中)、NodeUnStageVolume接口(从节点上的全局挂载点卸载)、NodeUnpublishVolume接口(卷从容器挂载点卸载)。
实施例2:一种基于K8S驱动集成系统的请求处理方法,所述请求包括创建持久卷声明、创建Pod、删除持久卷声明、删除Pod、查看快照或对卷扩容等,包括如下步骤:
当用户发出需要创建或删除一个持久卷声明的请求时,控制节点上的辅助容器为外部供应容器(External provisioner),所述方法包括如下步骤:
S1,控制节点的主驱动容器对外部供应容器所发送的请求进行接收,所述请求包括主驱动容器ID和子驱动容器ID;
S2,控制节点的主驱动容器根据接收到的请求和预设的endpoints列表确认待提供服务的子驱动容器,并将请求发送至控制节点上的对应子驱动容器上;
S3,子驱动容器基于接收到的请求与对应的第三方存储设备通信,并将接收到的第三方存储设备的响应传输给控制节点的主驱动容器;
S4,控制节点的主驱动容器将接收到的响应发送给外部供应容器,外部供应容器基于响应创建或删除持久卷。
当用户发出需要创建或删除一个Pod的请求时,工作节点上的辅助容器为node-driver-registrar,所述方法包括如下步骤:
S1,接收到Pod请求的工作节点的Kubelet向该工作节点的主驱动容器发起卷处理请求,主驱动容器将卷处理请求转发到该工作节点的对应的子驱动容器;
当用户发出创建Pod请求时,所述卷处理请求为卷挂载请求,所述卷挂载请求包括VolumeID、全局挂载点、容器挂载点和用于记录卷信息的VolumeContext,所述卷信息包括卷加密配置;当用户发出删除Pod请求时,所述卷处理请求为卷卸载请求,卷卸载请求包括VolumeID、全局卸载点和容器卸载点;
S2,子驱动容器基于卷处理请求与对应的第三方存储设备通信,并将接收到第三方存储设备返回的响应发送到工作节点的主驱动容器;
S3,工作节点的主驱动容器将接收到的响应发送给Kubelet,以完成对应的卷处理请求。
具体地,如图3所示,当用户需要创建块类型的持久卷时,控制节点的处理流程为:
i,控制节点的API服务器(kube-apiserver)对用户所创建的持久卷声明和定义的存储类进行接收;
用户在Kubernetes环境中创建一个持久卷声明,同时定义一个存储类。所述持久卷声明包括存储大小和访问模式。所述存储类的动态供应者(Provisioner)为主驱动容器,存储类的参数中设有用户需要提供服务的子驱动容器,比如可以在Storage Class中声明动态供应者为master.csi.ppio.com,在Storage Class的参数部分设置block.csi.ppio.com。
ii,控制节点上的外部供应容器通过监视控制节点的API服务器获取主驱动容器,并判断是否需要动态创建存储卷,当需要创建时,将创建持久卷的请求发送到控制节点的主驱动容器的CreateVolume接口上;
iii,控制节点的主驱动容器根据接收到的请求和预设的endpoints列表确定待提供服务的子驱动容器,并将创建持久卷的请求发送至该子驱动容器的CreateVolume接口;
当Master CSIDriver的CreateVolume接口接收到创建持久卷的请求后,从请求中解析出子驱动容器的名称,并遍历endpoints列表,找到子驱动容器所对应的socket地址。接着,Master CSIDriver建立gRPC链接,将创建PV的请求封装后发送到子驱动容器。
iv,子驱动容器基于接收到的请求与对应的第三方存储设备通信,并将接收到的第三方存储设备的响应传输给控制节点的主驱动容器;
子驱动容器的CreateVolume接口对创建持久卷的请求进行接收,基于请求参数通过HTTP方式与第三方存储设备的控制面通信,第三方存储设备将分配的存储空间的卷ID也即VolumeID配置为子驱动容器的名称,以便在后续的相关操作中使用,例如卸载和删除卷。
v,控制节点的主驱动容器将接收到的响应发送给外部供应容器,外部供应容器基于响应完成创建持久卷的请求;
如图4所示,当用户需要创建Pod时,控制节点的kube-scheduler通过API服务器发现集群中存在新建且尚未被调度到worker上的pod后,依据所有worker节点的资源负载情况将pod分配到指定的worker上,工作节点的处理流程为:
i,接收到Pod请求的工作节点的Kubelet向该工作节点的主驱动容器发起卷挂载请求,主驱动容器将卷挂载请求转发到该工作节点的对应的子驱动容器;
工作节点的主驱动容器的NodeStageVolume接口接收卷挂载请求后,主驱动容器根据请求的VolumeContext参数,遍历endpoints列表,找到与相应的子驱动容器通信的socket地址,建立gRPC链接后,发送挂载请求。
ii,子驱动容器基于卷挂载请求与对应的第三方存储设备通信,并将接收到第三方存储设备返回的响应发送到工作节点的主驱动容器;
子驱动容器通过NodeStageVolume和NodePublishVolume接口接收挂载请求后,根据用户的请求基于对应的存储网络协议与相应的第三方存储设备通信,如图4所示,基于iSCSI协议与第三方块存储设备通信。NodeStageVolume将volume挂载(mount)到一个全局目录,而NodePublishVolume则是将全局目录挂载到POD内,也就是说他们挂载的目的地不同。
iii,工作节点的主驱动容器将接收到的响应发送给Kubelet,以将持久卷附着到工作节点上完成挂载请求。
通过以上流程实现了块卷挂载操作,工作节点的master CSI driver在这个过程中充当协调者,协调了多个子驱动容器的交互,以保证块卷在容器环境中的正常使用。
如图5所示,当用户需要删除pod时,工作节点的流程如下:
i,接收到删除pod请求的工作节点的Kubelet向所在节点的主驱动容器发起卷卸载请求,主驱动容器通过nodeUnpublishVolume接口接收请求;
ii,主驱动容器接收到卷卸载请求后,从中解析出VolumeID及卷所使用的子驱动容器,然后通过遍历预设的endpoints列表确认出对应的子驱动容器,并将卷卸载请求重新封装后发送至子驱动容器;
iii,子驱动容器接收卷卸载请求后,执行卸载操作,并与第三方存储设备通信完成持久卷在工作节点上的去附着,待去附着完成后,子驱动容器再将响应返回给所在节点的主驱动容器;
子驱动容器接收卸载请求后,首先通过NodeUnPublishVolume将volume所在的全局目录从Pod内卸载(unmount),再通过NodeUnStageVolume将volume从其所在的全局目录中卸载。
iv,主驱动容器接收到响应后再将该响应传递给所在节点的Kubelet,以完成卷的卸载操作。
通过以上流程实现了块卷的卸载操作,工作节点的master CSI driver在此过程中确保了与底层子驱动容器之间的协调,保证了卷的正确卸载,从而实现了资源的有效释放和清理。
如图6所示,当用户需要删除PVC时,控制节点的处理流程为:
i,控制节点上的External provisioner通过监视控制节点的API服务器判断是否需要动态删除存储卷,当需要删除时,将删除持久卷声明的请求发送到控制节点的主驱动容器的DeleteVolume接口上;
所述删除持久卷声明的请求包括Volume ID。
ii,控制节点的主驱动容器接收到删除持久卷的请求后,从中解析出VolumeID和卷所使用的子驱动容器,通过遍历预设的endpoints列表确认出对应的子驱动容器,并将删除持久卷请求重新封装后发送至控制节点的子驱动容器;
iii,控制节点的子驱动容器通过DeleteVolume接口接收删除持久卷请求后,执行相应的卷删除操作,以确保对应的第三方存储设备的资源得到释放,完成后,子驱动容器再将响应返回给控制节点的主驱动容器;
iv,控制节点的主驱动容器接收到响应后再将该响应传递给Externalprovisioner,以完成PVC和PV的删除操作。
通过以上流程实现了PVC的删除操作,确保了底层存储资源得到适当的释放和清理。Master CSIDriver在此过程中协调了与子驱动容器的交互,保证了PVC的正确删除。
实施例3:一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的基于K8S驱动集成系统的请求处理方法。
本实施例4:一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的基于K8S CSIDriver集成系统的请求处理方法。具体地,该存储介质可以为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述基于K8S驱动集成系统的请求处理方法的实施例。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种K8S驱动集成系统,包括分别配置在Kubernetes集群的控制节点和工作节点上的CSI驱动组件,其特征在于,所述CSI驱动组件均包括一个主驱动容器和至少一个子驱动容器,每个子驱动容器均包括用于驱动块存储空间的块驱动容器、用于驱动文件存储空间的文件驱动容器和用于驱动对象存储空间的对象驱动容器,每个子驱动容器均与所在节点的主驱动容器连接,且每个子驱动容器分别与对应的存储设备通信连接;每个主驱动容器均与所在节点上的辅助容器连接,且每个工作节点上的主驱动容器还与所在节点的Kubelet连接。
2.根据权利要求1所述的K8S驱动集成系统,其特征在于,所述控制节点上的每个子驱动容器均基于http协议与对应的存储设备连接,工作节点上的每个子驱动容器均基于存储网络协议与对应的存储设备连接;所述控制节点上的主驱动容器和工作节点上的主驱动容器与各自节点上的子驱动容器之间均基于gRPC协议连接,且每个工作节点上的主驱动容器均基于gRPC协议与所在节点的Kubelet连接。
3.根据权利要求1所述的K8S驱动集成系统,其特征在于,所述控制节点上的辅助容器包括external-provisioner、external-attacher和/或external-snapshotter,工作节点上的辅助容器包括node-driver-registrar。
4.一种基于权利要求1或2或3所述的K8S驱动集成系统的请求处理方法,其特征在于,所述请求包括创建持久卷声明、创建Pod、删除持久卷声明或删除Pod;
当用户发出需要创建或删除一个持久卷声明的请求时,控制节点上的辅助容器为外部供应容器,所述方法包括如下步骤:
S1,控制节点的主驱动容器对外部供应容器所发送的请求进行接收,所述请求包括主驱动容器ID和子驱动容器ID;
S2,控制节点的主驱动容器根据接收到的请求和预设的endpoints列表确认待提供服务的子驱动容器,并将请求发送至该子驱动容器;
S3,子驱动容器基于接收到的请求与对应的第三方存储设备通信,并将接收到的第三方存储设备的响应传输给控制节点的主驱动容器;
S4,控制节点的主驱动容器将接收到的响应发送给外部供应容器,外部供应容器基于响应创建或删除持久卷;
当用户发出需要创建或删除一个Pod的请求时,所述方法包括如下步骤:
S1,接收到Pod请求的工作节点的Kubelet向该工作节点的主驱动容器发起卷处理请求,主驱动容器将卷处理请求转发到该工作节点的对应的子驱动容器;
当用户发出创建Pod请求时,所述卷处理请求为卷挂载请求,所述卷挂载请求包括用于表示子驱动容器信息的VolumeID、全局挂载点、容器挂载点;当用户发出删除Pod请求时,所述卷处理请求为卷卸载请求,且卷卸载请求包括表示子驱动容器信息的VolumeID、全局卸载点、容器卸载点;
S2,子驱动容器基于卷处理请求与对应的第三方存储设备通信,并将接收到第三方存储设备返回的响应发送到工作节点的主驱动容器;
S3,工作节点的主驱动容器将接收到的响应发送给Kubelet,以完成对应的卷处理请求。
5.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求4所述的基于K8S驱动集成系统的请求处理方法。
6.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求4所述的K8S驱动集成系统的请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311222714.2A CN117194039A (zh) | 2023-09-21 | 2023-09-21 | K8s驱动集成系统、请求处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311222714.2A CN117194039A (zh) | 2023-09-21 | 2023-09-21 | K8s驱动集成系统、请求处理方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194039A true CN117194039A (zh) | 2023-12-08 |
Family
ID=88994121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311222714.2A Pending CN117194039A (zh) | 2023-09-21 | 2023-09-21 | K8s驱动集成系统、请求处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194039A (zh) |
-
2023
- 2023-09-21 CN CN202311222714.2A patent/CN117194039A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108989066B (zh) | 设备管理方法及装置 | |
JP4509916B2 (ja) | Snmp基盤のネットワーク管理装置および方法 | |
US11856065B2 (en) | Data transmission for service integration between a virtual private cloud and an intranet | |
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
CN111857873A (zh) | 一种实现云原生容器网络的方法 | |
CN111416723B (zh) | 一种设备管理方法及相关设备 | |
US11303583B2 (en) | Resource trees by management controller | |
CN104731943A (zh) | 一种服务器和数据处理方法 | |
CN111984849A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111582824B (zh) | 云资源同步方法、装置、设备及存储介质 | |
EP4322483A1 (en) | System architecture for implementing dds communication on basis of autosar, communication method, and device | |
CN115379010A (zh) | 一种容器网络构建方法、装置、设备及存储介质 | |
KR20080063282A (ko) | 피어 이름 분석 프로토콜 심플 애플리케이션 프로그램인터페이스 | |
CN110417876A (zh) | 会话方法、分布式系统中的节点服务器及主控设备 | |
CN108804197B (zh) | 一种动态组件化实现方法、装置、设备及存储介质 | |
CN117194039A (zh) | K8s驱动集成系统、请求处理方法、设备及存储介质 | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
CN112637037B (zh) | 跨地域容器通讯系统、方法、存储介质及计算机设备 | |
CN115225482A (zh) | 一种基于Kubernetes进行Pod容器网络配置的方法及装置 | |
CN114327823A (zh) | 微服务集群的资源调用方法、系统、终端及存储介质 | |
CN115994014A (zh) | 容器引擎和容器引擎的实现方法、电子设备、存储介质 | |
US20090083296A1 (en) | Metadata endpoint for a generic service | |
CN112905273A (zh) | 一种服务调用方法和装置 | |
US7548965B2 (en) | System and method for organizing network management information | |
CN114124740A (zh) | 一种vnf实例化的方法和装置 |
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 |