CN116225609A - Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 - Google Patents
Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN116225609A CN116225609A CN202211526831.3A CN202211526831A CN116225609A CN 116225609 A CN116225609 A CN 116225609A CN 202211526831 A CN202211526831 A CN 202211526831A CN 116225609 A CN116225609 A CN 116225609A
- Authority
- CN
- China
- Prior art keywords
- pod
- target
- node
- storage
- scheduling
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质。该方法包括:接收Kubernetes集群发出的Pod调度请求;根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;将目标Pod调度到目标节点上运行。本申请将持久化存储卷(PV卷)作为Pod调度的一个维度进行节点评估,充分考虑各种PV卷与Pod之间的关系,最终为Pod确定一个最佳的节点,避免出现同一Pod的不同卷错误调度到不同节点而导致Pod无法正常调度的情况,解决了Pod多卷调度时Pod可能无法正常调度的技术问题。
Description
技术领域
本申请涉及容器存储技术领域,尤其涉及一种Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质。
背景技术
Kubernetes是用于自动部署、扩展和管理容器化应用程序的开源***,作为容器编排领域的公认标准,已经得到了广泛使用,Pod是Kubernetes中的最小调度单元,一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。Kubernetes对Pod的调度策略需综合多方面的因素,其中针对PV卷这一影响因素来看,在Pod所需使用的PV卷的数量为多卷的情况下,Kubernetes会出现将同一Pod的存储卷分配至不同节点的情况,导致Pod无法正常调度。
针对Pod多卷调度时Pod可能无法正常调度的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质,以解决Pod多卷调度时Pod可能无法正常调度的技术问题。
根据本申请实施例的一个方面,本申请提供了一种Kubernetes集群的Pod调度方法,包括:接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;将目标Pod调度到目标节点上运行。
可选地,根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod包括:获取各个Pod使用的存储类,配置信息包括存储类;在所有存储卷中查询是否已经根据存储类创建了与存储类匹配的目标存储卷;若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
可选地,根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod还包括:获取各个Pod的存储卷声明,其中,存储卷声明用于声明Pod所需使用的存储卷应具有的属性,属性包括存储类型和存储容量,配置信息包括存储卷声明;在所有存储卷中查询是否存在与存储卷声明绑定的目标存储卷;若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
可选地,确定需要介入调度的目标Pod还包括:若存在目标存储卷,则确定目标存储卷所在的节点;在缓存数据库中调取该节点的存储状态信息和运行状态信息,其中,缓存数据库用于同步更新缓存各个节点的存储状态信息和运行状态信息;在存储状态信息或运行状态信息任一指示该节点的目标存储卷存在故障的情况下,将该Pod确定为需介入调度的目标Pod。
可选地,将Pod确定为需介入调度的目标Pod包括:将存在故障的目标存储卷与目标Pod解绑,以使目标Pod重新进入Pod调度主流程。
可选地,基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点包括:根据属性信息对目标Pod所需的存储卷进行分类,其中,属性信息包括存储卷的存储类型和/或存储分组;在缓存数据库中对分类结果进行节点匹配,其中,缓存数据库用于同步更新缓存各个节点提供的存储卷的属性信息;将匹配度大于目标阈值的节点作为第一备选节点;将第一备选节点中同时属于第二备选节点的节点确定为目标节点,其中,第二备选节点为上游调度策略确定的备选节点或Kubernetes集群提供的默认备选节点。
可选地,在第一备选节点中同时属于第二备选节点的节点数量为多个的情况下,所述方法还包括:将同时属于第一备选节点和第二备选节点的节点确定为第三备选节点;从缓存数据库中提取出各个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量信息,并为总存储容量、可用存储容量以及已分配存储卷数量分配对应的权重;计算每个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量的加权和,并将加权和作为对应第三备选节点的优先级;将优先级最高的第三备选节点确定为目标节点。
可选地,接收Kubernetes集群发出的Pod调度请求包括:确定待介入调度的目标Pod所在的目标命名空间;将目标命名空间作为筛选字段对接收Pod调度请求的消息队列进行配置;利用消息队列接收具有属于目标命名空间的Pod调度请求。
可选地,将目标Pod调度到目标节点上运行之后,所述方法还包括:获取目标节点的最新存储信息和最新运行信息;将最新存储信息和最新运行信息更新至缓存数据库,以同步缓存数据库中目标节点的状态。
根据本申请实施例的另一方面,本申请提供了一种Kubernetes集群的Pod调度装置,包括:接收模块,用于接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;Pod筛选模块,用于根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;节点分配模块,用于基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;Pod调度模块,用于将目标Pod调度到所述目标节点上运行。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;将目标Pod调度到目标节点上运行。本申请将持久化存储卷(PV卷)作为Pod调度的一个维度进行节点评估,充分考虑各种PV卷与Pod之间的关系,最终为Pod确定一个最佳的节点,从而在不影响其他调度策略的情况下,完成Pod的调度,避免出现同一Pod的不同卷错误调度到不同节点而导致Pod无法正常调度的情况,解决了Pod多卷调度时Pod可能无法正常调度的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的Kubernetes集群的Pod调度方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的Kubernetes集群的Pod调度方法流程示意图;
图3为根据本申请实施例提供的一种可选的Kubernetes集群的Pod调度插件的架构图;
图4为根据本申请实施例提供的一种可选的Kubernetes集群的Pod调度装置框图;
图5为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
相关技术中,Kubernetes对Pod的调度策略需综合多方面的因素,其中针对PV卷这一影响因素来看,在Pod所需使用的PV卷的数量为多卷的情况下,Kubernetes会出现将同一Pod的存储卷分配至不同节点的情况,导致Pod无法正常调度。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种Kubernetes集群的Pod调度方法的实施例。
可选地,在本申请实施例中,上述Kubernetes集群的Pod调度方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如容器服务、存储服务等),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种Kubernetes集群的Pod调度方法可以由服务器103来执行,还可以是由服务器103和终端101共同执行,如图2所示,该方法可以包括以下步骤:
步骤S202,接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;
步骤S204,根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;
步骤S206,基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;
步骤S208,将目标Pod调度到目标节点上运行。
通过上述步骤S202至S208,本申请将持久化存储卷(PV卷)作为Pod调度的一个维度进行节点评估,充分考虑各种PV卷与Pod之间的关系,最终为Pod确定一个最佳的节点,从而在不影响其他调度策略的情况下,完成Pod的调度,避免出现同一Pod的不同卷错误调度到不同节点而导致Pod无法正常调度的情况,解决了Pod多卷调度时Pod可能无法正常调度的技术问题。
本申请实施例提供的Kubernetes集群的Pod调度方法依赖于对Kubernetes集群中所有节点的节点信息的实时同步更新,即各个节点的数据信息一旦发生变化,即上报到缓存数据库,通过缓存数据库实时缓存所有节点最新的存储状态和运行状态。从而在执行上述步骤S202至S208的过程中,不需要访问各个节点并请求所需数据用于为Pod筛选节点,而是直接从缓存数据库中调取对应节点的所需数据即可,提高Pod的调度效率。
本申请实施例中,缓存数据库同步缓存节点数据的方式包括但不限于远程调用脚本,守护进程WATCH变更等,收集的信息包含,存储的类型,容量,使用量,分区格式以及Kubernetes内动态存储配置,Storage Class存储类。缓存的内容信息主要包括,所有的节点的存储信息,Kubernetes动态存储配置(如StorageClass)等。
在步骤S202中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行,接收Kubernetes集群发出的Pod调度请求时,可以全量接收,也可以按照实际需求接收满足条件的Pod调度请求。为了提高***运行效率,避免资源占用,本申请实施例可采用消息队列接收Pod调度请求。具体的,接收Kubernetes集群发出的Pod调度请求包括:确定待介入调度的目标Pod所在的目标命名空间;将目标命名空间作为筛选字段对接收Pod调度请求的消息队列进行配置;利用消息队列接收具有属于目标命名空间的Pod调度请求。
本申请实施例中,上述实际需求包括但不限于Pod的各项属性,如Pod命名空间(NAMESPACE)、标签(LABEL)、注释(ANNOTATION)以及名称前缀(NAME PREFIX)等。以命名空间为例,实际操作时可根据Pod的命名空间筛选Pod调度请求,使得所关注的目标命名空间的Pod调度请求能够到达本流程。
在步骤S204中,由于本环节目的是将持久化存储卷(PV卷)作为Pod调度的一个维度来为Pod调度进行决策,因此步骤S204将明确需要使用PV卷但实际还没有使用PV卷的Pod确定为需介入调度的目标Pod。下面针对Pod使用PV卷的两种方式对此进行说明。
第一种,选择Pod要使用的StorageClass,从而为Pod动态配置PV。Kubernetes提供动态配置PV的方法,可以自动创PV。管理员可以部署PV配置器(provisioner),然后定义对应的StorageClass(存储类),这样provisioner根据选择的StorageClass为Pod自动创建PV。如CCE就提供csi-disk、csi-nas、csi-obs等StorageClass,在声明PVC时加上StorageClassName,就可以自动创建PV,并自动创建底层的存储资源。
针对第一种使用方式,步骤S204根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod包括:
步骤1,获取各个Pod使用的存储类,配置信息包括存储类;
步骤2,在所有存储卷中查询是否已经根据存储类创建了与存储类匹配的目标存储卷;
步骤3,若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
本申请实施例中,针对为Pod动态配置PV的方法,上述明确需要使用PV卷但实际还没有使用PV卷的Pod即为明确选择了要使用的StorageClass但还没有根据StorageClass动态生成PV的Pod。
第二种,在PVC中声明Pod所希望使用的PV卷的属性,Kubernetes为Pod分配满足属性要求的PV,然后在Pod中将PV绑定PVC,即可让Pod使用到对应的存储资源。
针对第二种使用方式,步骤S204根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod包括:
步骤1,获取各个Pod的存储卷声明,其中,存储卷声明用于声明Pod所需使用的存储卷应具有的属性,属性包括存储类型和存储容量,配置信息包括存储卷声明;
步骤2,在所有存储卷中查询是否存在与存储卷声明绑定的目标存储卷;
步骤3,若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
本申请实施例中,针对根据属性要求为Pod分配PV的方法,上述明确需要使用PV卷但实际还没有使用PV卷的Pod,即为在PVC中明确声明了属性要求,但没有根据属性要求分配PV或没有与PVC绑定PV的Pod。
另外,若已经根据StorageClass为Pod动态生成了PV卷,或者Pod的PVC已绑定了PV卷,但经过检查发现PV卷存在故障,则同样需要将该Pod确定为需介入调度的目标Pod。具体的,确定需要介入调度的目标Pod还包括:
步骤1,若存在目标存储卷,则确定目标存储卷所在的节点;
步骤2,在缓存数据库中调取该节点的存储状态信息和运行状态信息,其中,缓存数据库用于同步更新缓存各个节点的存储状态信息和运行状态信息;
步骤3,在存储状态信息或运行状态信息任一指示该节点的目标存储卷存在故障的情况下,将该Pod确定为需介入调度的目标Pod。
本申请实施例中,界定PV卷是否存在故障,可通过从上述缓存数据库中调取对应节点的存储状态信息和运行状态信息等进行判断。该故障可为运行故障,也可为可用存储容量过小,数据读写速率异常等。
本申请实施例中,对于PV卷存在故障的Pod,需要先对故障的PV卷进行解绑,具体的,将Pod确定为需介入调度的目标Pod包括:将存在故障的目标存储卷与目标Pod解绑,以使目标Pod重新进入Pod调度主流程。
在步骤S206中,基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点包括:
步骤1,根据属性信息对目标Pod所需的存储卷进行分类,其中,属性信息包括存储卷的存储类型和/或存储分组;
步骤2,在缓存数据库中对分类结果进行节点匹配,其中,缓存数据库用于同步更新缓存各个节点提供的存储卷的属性信息;
步骤3,将匹配度大于目标阈值的节点作为第一备选节点;
步骤4,将第一备选节点中同时属于第二备选节点的节点确定为目标节点,其中,第二备选节点为上游调度策略确定的备选节点或Kubernetes集群提供的默认备选节点。
本申请实施例中,为了避免出现同一Pod的不同卷错误调度到不同节点的情况,需对Pod所需使用的多个PV卷进行综合分析,最终选出与该Pod最匹配的节点。该流程中,可以依据分类分析算法,基于PV所需的存储信息(即属性信息)对Pod所需使用的所有PV卷进行分类汇总,再将分类结果提取到缓存数据库中,与缓存数据进行节点的特征匹配,从而筛选出符合条件的节点,即匹配度大于目标阈值的节点作为第一备选节点,该目标阈值可根据实际需求进行设置。Pod的调度策略可从该第一备选节点中选出,具体的,可将第一备选节点与第二备选节点进行比对,从而筛选出即属于第一备选节点又属于第二备选节点的节点作为Pod调度策略的最终节点。该第二备选节点可以是上游调度策略确定的备选节点或Kubernetes集群提供的默认备选节点。该上游调度策略即为对影响Pod调度决策的其他影响因素作出的调度策略。
以上为节点预选的方案,若同属于第一备选节点、第二备选节点的节点数量为多个的情况下,则还可以进行节点优选方案,以进一步为Pod调度的节点选择作出决策。
可选地,在第一备选节点中同时属于第二备选节点的节点数量为多个的情况下,所述方法还包括:
步骤1,将同时属于第一备选节点和第二备选节点的节点确定为第三备选节点;
步骤2,从缓存数据库中提取出各个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量信息,并为总存储容量、可用存储容量以及已分配存储卷数量分配对应的权重;
步骤3,计算每个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量的加权和,并将加权和作为对应第三备选节点的优先级;
步骤4,将优先级最高的第三备选节点确定为目标节点。
本申请实施例中,可为节点的总存储容量、可用存储容量以及已分配存储卷数量等特征分配权重,然后计算每个节点的特征加权和作为对应节点的优先级,优先级最高的第三备选节点即为最匹配的目标节点。
可选地,将目标Pod调度到目标节点上运行之后,所述方法还包括:获取目标节点的最新存储信息和最新运行信息;将最新存储信息和最新运行信息更新至缓存数据库,以同步缓存数据库中目标节点的状态。
本申请实施例中,可通过监听Pod的调度从而实时更新缓存,保证缓存数据库与实际节点的数据一致性。监听方式包括但不限于定时请求,Kubernetes watch机制以及Event事件拦截等。
本申请将PV卷作为Pod调度的一个维度进行节点评估,充分考虑各种PV卷与Pod之间的关系,最终为Pod确定一个最佳的节点,从而在不影响其他调度策略的情况下,完成Pod的调度,避免出现同一Pod的不同卷错误调度到不同节点而导致Pod无法正常调度的情况,解决了Pod多卷调度时Pod可能无法正常调度的技术问题。
本申请提供的Kubernetes集群的Pod调度方法可以插件的形式运行在Kubernetes集群中,对Pod调度辅助决策。该插件的架构可如图3所示,以该架构为基础进一步说明本申请技术方案。
如图3所示,该插件主要由数据上报模块(Data Reporter,DR)、数据缓存模块(Data Cache,DC)、数据筛选模块(Data Filter,DF)、节点预选模块(Node Pre-Selection,NPS)和节点优选模块(Node Preferred,NP)、Pod监听模块(Pod Listener,PL)构成,各模块互相协作解决Pod多LOCALPV卷调度问题,主要步骤如下:
步骤1,编辑配置文件,分别启动DR、DF、NPS、NP;该配置文件用于记录Kubernetes集群的配置信息、Pod所属的命名空间等信息。
步骤2,DR获取Kubernetes集群中所有节点的信息、存储使用状态以及Kubernetes存储配置信息等。DR模块具体收集信息的方式包括但不限于,远程调用脚本,守护进程WATCH变更等,收集的信息包含,存储的类型,容量,使用量,分区格式以及Kubernetes内动态存储配置,Storage Class。
步骤3,DR模块将收集到的信息上报至DC模块,由DC模块进行数据缓存。使得后续需使用节点信息时,不再需要向节点请求数据,加速调度流程。
步骤4,DF模块拦截所有的Pod的预选调度,根据Pod基础信息筛选出需要介入调度的Pod,将Pod信息以及备选节点(即第二备选节点)传入NPS模块。DF模块可以精确筛选出需要介入调度的Pod,精简调度流程。筛选条件可以包括判断Pod所述的命名空间是否属于特定命名空间等。
步骤5,NPS模块接收DF过滤后的Pod,可以根据Pod信息以及其关联的其他元数据信息,分析该Pod是否存在已绑定的PV卷以及PV卷的健康信息,进而界定该Pod是否为需要重新调度的Pod。其中,界定卷故障的方式,包括但不限于依据节点存储状态信息,节点运行状态信息。状态收集方式包含但不限于,定时任务收集,WATCH机制,Event事件拦截等。
步骤6,NPS模块对于已绑定了PV卷,但PV卷存在故障的Pod,需要先对故障的PV卷进行解绑,使该Pod得以重新进入Pod调度主流程。
步骤7,NPS模块依据分类分析算法,基于PV所需的存储信息(即属性信息)对Pod所需使用的所有PV卷进行分类汇总,再将分类结果提取到缓存数据库中,与缓存数据进行节点的特征匹配,从而筛选出符合条件的节点,即匹配度大于目标阈值的节点作为第一备选节点,再将第一备选节点与第二备选节点进行比对,从而筛选出即属于第一备选节点又属于第二备选节点的节点作为Pod调度策略的最终节点返回给Kubernetes集群。
步骤8,NP模块拦截Pod的优选调度,即基于步骤7预选的节点进行节点优选,具体的,根据Node节点存储信息,存储总容量,存储可用容量,存储卷数量,按照权重进行打分,分数越高,则优先级越高,结果返回给Kubernetes。
步骤9,PL模块监听到Pod完成调度后,通知DR模块会根据当前节点存储使用信息,重新上报至DC模块,更新缓存内容。
本申请将PV卷作为Pod调度的一个维度进行节点评估,充分考虑各种PV卷与Pod之间的关系,最终为Pod确定一个最佳的节点,从而在不影响其他调度策略的情况下,完成Pod的调度,避免出现同一Pod的不同卷错误调度到不同节点而导致Pod无法正常调度的情况,解决了Pod多卷调度时Pod可能无法正常调度的技术问题。
根据本申请实施例的又一方面,如图4所示,提供了一种Kubernetes集群的Pod调度装置,包括:
接收模块401,用于接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;
Pod筛选模块403,用于根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;
节点分配模块405,用于基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;
Pod调度模块407,用于将目标Pod调度到所述目标节点上运行。
需要说明的是,该实施例中的接收模块401可以用于执行本申请实施例中的步骤S202,该实施例中的Pod筛选模块403可以用于执行本申请实施例中的步骤S204,该实施例中的节点分配模块405可以用于执行本申请实施例中的步骤S206,该实施例中的Pod调度模块407可以用于执行本申请实施例中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该Pod筛选模块,具体用于:获取各个Pod使用的存储类,配置信息包括存储类;在所有存储卷中查询是否已经根据存储类创建了与存储类匹配的目标存储卷;若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
可选地,该Pod筛选模块还用于:获取各个Pod的存储卷声明,其中,存储卷声明用于声明Pod所需使用的存储卷应具有的属性,属性包括存储类型和存储容量,配置信息包括存储卷声明;在所有存储卷中查询是否存在与存储卷声明绑定的目标存储卷;若不存在目标存储卷,则将该Pod确定为需介入调度的目标Pod。
可选地,该Pod筛选模块还用于:若存在目标存储卷,则确定目标存储卷所在的节点;在缓存数据库中调取该节点的存储状态信息和运行状态信息,其中,缓存数据库用于同步更新缓存各个节点的存储状态信息和运行状态信息;在存储状态信息或运行状态信息任一指示该节点的目标存储卷存在故障的情况下,将该Pod确定为需介入调度的目标Pod。
可选地,该Pod筛选模块,还用于:将存在故障的目标存储卷与目标Pod解绑,以使目标Pod重新进入Pod调度主流程。
可选地,该节点分配模块,具体用于:根据属性信息对目标Pod所需的存储卷进行分类,其中,属性信息包括存储卷的存储类型和/或存储分组;在缓存数据库中对分类结果进行节点匹配,其中,缓存数据库用于同步更新缓存各个节点提供的存储卷的属性信息;将匹配度大于目标阈值的节点作为第一备选节点;将第一备选节点中同时属于第二备选节点的节点确定为目标节点,其中,第二备选节点为上游调度策略确定的备选节点或Kubernetes集群提供的默认备选节点。
可选地,在第一备选节点中同时属于第二备选节点的节点数量为多个的情况下,该节点分配模块还用于:将同时属于第一备选节点和第二备选节点的节点确定为第三备选节点;从缓存数据库中提取出各个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量信息,并为总存储容量、可用存储容量以及已分配存储卷数量分配对应的权重;计算每个第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量的加权和,并将加权和作为对应第三备选节点的优先级;将优先级最高的第三备选节点确定为目标节点。
可选地,该接收模块,具体用于:确定待介入调度的目标Pod所在的目标命名空间;将目标命名空间作为筛选字段对接收Pod调度请求的消息队列进行配置;利用消息队列接收具有属于目标命名空间的Pod调度请求。
可选地,该Kubernetes集群的Pod调度装置,还包括更新模块,具体用于:获取目标节点的最新存储信息和最新运行信息;将最新存储信息和最新运行信息更新至缓存数据库,以同步缓存数据库中目标节点的状态。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图5所示,包括存储器501、处理器503、通信接口505及通信总线507,存储器501中存储有可在处理器503上运行的计算机程序,存储器501、处理器503通过通信接口505和通信总线507进行通信,处理器503执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例的步骤。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
接收Kubernetes集群发出的Pod调度请求,其中,Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;
根据Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,存储卷为节点上供各个Pod使用的存储资源;
基于目标Pod的多个存储卷的属性信息和可用节点的状态信息为目标Pod确定最匹配的目标节点;
将目标Pod调度到所述目标节点上运行。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种Kubernetes集群的Pod调度方法,其特征在于,包括:
接收所述Kubernetes集群发出的Pod调度请求,其中,所述Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;
根据所述Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,所述存储卷为所述节点上供各个Pod使用的存储资源;
基于所述目标Pod的多个所述存储卷的属性信息和可用节点的状态信息为所述目标Pod确定最匹配的目标节点;
将所述目标Pod调度到所述目标节点上运行。
2.根据权利要求1所述的方法,其特征在于,所述根据所述Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod包括:
获取各个Pod使用的存储类,所述配置信息包括所述存储类;
在所有存储卷中查询是否已经根据所述存储类创建了与所述存储类匹配的目标存储卷;
若不存在所述目标存储卷,则将所述Pod确定为需介入调度的所述目标Pod。
3.根据权利要求1所述的方法,其特征在于,所述根据所述Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod还包括:
获取各个Pod的存储卷声明,其中,所述存储卷声明用于声明所述Pod所需使用的存储卷应具有的属性,所述属性包括存储类型和存储容量,所述配置信息包括所述存储卷声明;
在所有存储卷中查询是否存在与所述存储卷声明绑定的目标存储卷;
若不存在所述目标存储卷,则将所述Pod确定为需介入调度的所述目标Pod。
4.根据权利要求2或3任一所述的方法,其特征在于,确定需要介入调度的目标Pod还包括:
若存在所述目标存储卷,则确定所述目标存储卷所在的节点;
在缓存数据库中调取所述节点的存储状态信息和运行状态信息,其中,所述缓存数据库用于同步更新缓存各个节点的所述存储状态信息和所述运行状态信息;
在所述存储状态信息或所述运行状态信息任一指示所述节点的所述目标存储卷存在故障的情况下,将所述Pod确定为需介入调度的所述目标Pod。
5.根据权利要求4所述的方法,其特征在于,所述将所述待选Pod确定为需介入调度的所述目标Pod包括:
将存在故障的所述目标存储卷与所述目标Pod解绑,以使所述目标Pod重新进入Pod调度主流程。
6.根据权利要求1所述的方法,其特征在于,所述基于所述目标Pod的多个所述存储卷的属性信息和可用节点的状态信息为所述目标Pod确定最匹配的目标节点包括:
根据所述属性信息对所述目标Pod所需的多个存储卷进行分类,其中,所述属性信息包括所述存储卷的存储类型和/或存储分组;
在缓存数据库中对分类结果进行节点匹配,其中,所述缓存数据库用于同步更新缓存各个节点提供的所述存储卷的所述属性信息;
将匹配度大于目标阈值的节点作为第一备选节点;
将所述第一备选节点中同时属于第二备选节点的节点确定为所述目标节点,其中,所述第二备选节点为上游调度策略确定的备选节点或所述Kubernetes集群提供的默认备选节点。
7.根据权利要求6所述的方法,其特征在于,在所述第一备选节点中同时属于所述第二备选节点的节点数量为多个的情况下,所述方法还包括:
将同时属于所述第一备选节点和所述第二备选节点的节点确定为第三备选节点;
从所述缓存数据库中提取出各个所述第三备选节点的总存储容量、可用存储容量以及已分配存储卷数量信息,并为所述总存储容量、所述可用存储容量以及所述已分配存储卷数量分配对应的权重;
计算每个所述第三备选节点的所述总存储容量、所述可用存储容量以及所述已分配存储卷数量的加权和,并将所述加权和作为对应所述第三备选节点的优先级;
将所述优先级最高的所述第三备选节点确定为所述目标节点。
8.根据权利要求1所述的方法,其特征在于,所述接收所述Kubernetes集群发出的Pod调度请求包括:
确定待介入调度的所述目标Pod所在的目标命名空间;
将所述目标命名空间作为筛选字段对接收所述Pod调度请求的消息队列进行配置;
利用所述消息队列接收具有属于所述目标命名空间的所述Pod调度请求。
9.根据权利要求1所述的方法,其特征在于,所述将所述目标Pod调度到所述目标节点上运行之后,所述方法还包括:
获取所述目标节点的最新存储信息和最新运行信息;
将所述最新存储信息和所述最新运行信息更新至缓存数据库,以同步所述缓存数据库中所述目标节点的状态。
10.一种Kubernetes集群的Pod调度装置,其特征在于,包括:
接收模块,用于接收所述Kubernetes集群发出的Pod调度请求,其中,所述Pod调度请求用于请求为各个Pod分配节点,以将各个Pod调度到对应的节点上运行;
Pod筛选模块,用于根据所述Pod调度请求中对各个Pod所需使用的存储卷的配置信息确定需要介入调度的目标Pod,其中,所述存储卷为所述节点上供各个Pod使用的存储资源;
节点分配模块,用于基于所述目标Pod的多个所述存储卷的属性信息和可用节点的状态信息为所述目标Pod确定最匹配的目标节点;
Pod调度模块,用于将所述目标Pod调度到所述目标节点上运行。
11.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至9任一项所述的方法的步骤。
12.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至9任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211526831.3A CN116225609A (zh) | 2022-11-30 | 2022-11-30 | Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211526831.3A CN116225609A (zh) | 2022-11-30 | 2022-11-30 | Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225609A true CN116225609A (zh) | 2023-06-06 |
Family
ID=86571946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211526831.3A Pending CN116225609A (zh) | 2022-11-30 | 2022-11-30 | Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225609A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594784A (zh) * | 2023-07-17 | 2023-08-15 | 中移(苏州)软件技术有限公司 | 一种边边调度方法、装置、***和可读存储介质 |
CN118069072A (zh) * | 2024-04-19 | 2024-05-24 | 北京城建智控科技股份有限公司 | 存储资源管理方法、装置、电子设备及存储介质 |
-
2022
- 2022-11-30 CN CN202211526831.3A patent/CN116225609A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594784A (zh) * | 2023-07-17 | 2023-08-15 | 中移(苏州)软件技术有限公司 | 一种边边调度方法、装置、***和可读存储介质 |
CN116594784B (zh) * | 2023-07-17 | 2023-10-20 | 中移(苏州)软件技术有限公司 | 一种边边调度方法、装置、***和可读存储介质 |
CN118069072A (zh) * | 2024-04-19 | 2024-05-24 | 北京城建智控科技股份有限公司 | 存储资源管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116225609A (zh) | Kubernetes集群的Pod调度方法、装置、设备及计算机可读介质 | |
CN108683720B (zh) | 一种容器集群服务配置方法及装置 | |
CN111522636B (zh) | 应用容器的调整方法、调整***、计算机可读介质及终端设备 | |
US20200326876A1 (en) | Object Migration Method, Device, and System | |
CN111600952B (zh) | 场景推送方法、执行方法、装置、终端、服务器和*** | |
US10263876B2 (en) | Adaptive service timeouts | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN111309440B (zh) | 一种多类型gpu的管理调度的方法和设备 | |
CN111835562A (zh) | 日志上传方法、日志查询方法、*** | |
CN112130996A (zh) | 数据监控控制***、方法、装置、电子设备和存储介质 | |
CN109039787A (zh) | 日志处理方法、装置及大数据集群 | |
CN103607424A (zh) | 一种服务器连接方法及服务器*** | |
CN104869155A (zh) | 数据审计方法及装置 | |
CN111770162A (zh) | 网络带宽限制方法、装置、主节点及存储介质 | |
CN112230847B (zh) | 一种监控K8s存储卷的方法、***、终端及存储介质 | |
CN110059139A (zh) | 业务数据归档方法、设备、服务器及计算机可读存储介质 | |
CN112100034A (zh) | 一种业务监控方法和装置 | |
CN115883407A (zh) | 一种数据采集方法、***、设备及存储介质 | |
CN110941391A (zh) | 一种查询集群运行环境信息的方法及*** | |
CN111885159B (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN109639843A (zh) | 数据传输方法及装置 | |
CN111756798B (zh) | 基于网关级联的服务调度方法、装置、设备和存储介质 | |
CN114443293A (zh) | 一种大数据平台的部署***及方法 | |
CN114443732A (zh) | 一种动态接口调用方法及存储介质 |
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 |