CN113986539A - 实现pod固定IP的方法、装置、电子设备和可读存储介质 - Google Patents
实现pod固定IP的方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN113986539A CN113986539A CN202111241420.5A CN202111241420A CN113986539A CN 113986539 A CN113986539 A CN 113986539A CN 202111241420 A CN202111241420 A CN 202111241420A CN 113986539 A CN113986539 A CN 113986539A
- Authority
- CN
- China
- Prior art keywords
- pod
- fixed
- node
- target node
- created
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种实现pod固定IP的方法、装置、电子设备和可读存储介质,通过获取创建请求中待创建pod所需的固定IP,确定集群中待创建pod所对应的第一目标节点,该第一目标节点具有自身的主机IP地址。对待创建pod进行创建,以将创建得到的pod部署至第一目标节点,在第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用该固定IP启动服务以供外部访问。本方案中,pod的固定IP不随所处的节点的主机IP的影响,后续在重建或迁移时,pod自身绑定的固定IP可不受影响,从而可避免现有技术中由于IP变化而出现异常的现象。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种实现pod固定IP的方法、装置、电子设备和可读存储介质。
背景技术
Kubernetes作为容器管理引擎,提供了强大的容器编排能力,支持不可变基础设施与声明式Open api,同时隔离了底层基础设施差异,已经成为云原生的基石和事实标准。Kubernetes使用pod来管理一个容器化应用,pod也是k8s编排的最小单位,同时每个pod都可以包含多个容器,每个pod都有自己的IP地址,pod内的容器共享相同的IP和端口空间,pod在创建时Kubernetes内部会分配IP地址。
在Kubernetes中pod的生命周期是短暂的,在pod重建、迁移等情况下,控制器会为pod分配新的IP,例如,在pod从一个节点迁移到另一个节点时,该pod的IP地址由与原本所在的节点的主机IP地址变为迁移至的节点的主机IP地址。随着Kubernetes的使用范围越来越广,通用的访问服务的方式在一些复杂和特定场景中的不再满足业务需求。例如某些服务发现是以IP作为实例唯一标识,pod内部IP变化后就会出现异常。
发明内容
本申请的目的包括,例如,提供了一种实现pod固定IP的方法、装置、电子设备和可读存储介质,其能够避免现有技术中由于pod的IP变化而出现异常的现象。
本申请的实施例可以这样实现:
第一方面,本申请提供一种实现pod固定IP的方法,应用于Kubernetes集群中的控制器,所述Kubernetes集群还包括多个节点,所述方法包括:
获取创建请求中待创建pod所需的固定IP;
确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址;
对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点;
在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
在可选的实施方式中,所述方法还包括:
在获得调度指令的情况下,获取所述调度指令指向的待调度pod以及所需调度至的第二目标节点;
获得所述待调度pod所绑定的固定IP;
将绑定有所述固定IP的待调度pod调度至所述第二目标节点;
在所述第二目标节点的网卡上绑定所述待调度pod所绑定的固定IP。
在可选的实施方式中,所述方法还包括:
在所述待调度pod调度成功的情况下,将所述待调用pod调度之前所在的节点的网卡上绑定的待调度pod的固定IP移除。
在可选的实施方式中,所述确定所述集群中所述待创建pod所对应的第一目标节点的步骤,包括:
检测所述待创建pod所需的固定IP是否被所述集群中的任一节点所使用;
若所述固定IP未被所述集群中的任一节点所使用,获取所述创建请求中包含的节点信息,作为第一目标节点;
若所述固定IP被所述集群中的节点所使用,将使用所述固定IP的节点作为第一目标节点。
在可选的实施方式中,所述若所述固定IP被所述集群中的节点所使用,则将使用所述固定IP的节点作为第一目标节点步骤,包括:
在所述固定IP被所述集群中的节点所使用的情况下,判断所述固定IP是否为独占IP,其中,独占IP为供单一pod所绑定的IP;
若所述固定IP不为独占IP,将使用所述固定IP的节点作为第一目标节点;
若所述固定IP为独占IP,提示绑定异常信息。
在可选的实施方式中,所述方法还包括:
在获得删除指令的情况下,获取所述删除指令所指向的待删除pod;
获得所述待删除pod所在节点的网卡上绑定的所述待删除pod的固定IP;
将所述待删除pod从所述节点上删除,将所述网卡上的所述待删除pod的固定IP删除。
在可选的实施方式中,所述将所述网卡上的所述待删除pod的固定IP删除的步骤,包括:
检测所述待删除pod所在的节点上是否还存在与所述待删除pod绑定有相同固定IP的其他pod;
若不存在,则将所述网卡上的所述待删除pod的固定IP删除。
在可选的实施方式中,所述对所述待创建pod进行创建,将创建得到的pod部署至所述第一目标节点的步骤,包括:
将所述待创建pod所需的固定IP配置到pod的环境变量中;
基于确定的第一目标节点配置得到部署策略信息;
根据所述环境变量生成所述待创建pod,并基于所述部署策略信息将创建得到的pod部署至所述第一目标节点。
第二方面,本申请提供一种实现pod固定IP的装置,应用于Kubernetes集群中的控制器,所述Kubernetes集群还包括多个节点,所述装置:
获取模块,用于获取创建请求中待创建pod所需的固定IP;
确定模块,用于确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址;
部署模块,用于对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点;
绑定模块,用于在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
第三方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如前述实施方式任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如前述实施方式任一项所述的方法。
本申请实施例的有益效果包括,例如:
本申请提供一种实现pod固定IP的方法、装置、电子设备和可读存储介质,通过获取创建请求中待创建pod所需的固定IP,确定集群中待创建pod所对应的第一目标节点,该第一目标节点具有自身的主机IP地址。对待创建pod进行创建,以将创建得到的pod部署至第一目标节点,在第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用该固定IP启动服务以供外部访问。
本方案中,通过对pod进行固定IP绑定,将pod部署至第一目标节点并在第一目标节点的网卡上绑定该固定IP。pod的固定IP不随所处的节点的主机IP的影响,后续在重建或迁移时,pod自身绑定的固定IP可不受影响,从而可避免现有技术中由于IP变化而出现异常的现象。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的Kubernetes集群的***架构示意图;
图2为本申请实施例提供的实现pod固定IP的方法的流程图;
图3为图2中步骤S102包含的子步骤的流程图;
图4为图3中步骤S1023包含的子步骤的流程图;
图5为图2中步骤S103包含的子步骤的流程图;
图6为本申请实施例提供的实现pod固定IP的方法中,调度方法的流程图;
图7为本申请实施例提供的实现pod固定IP的方法中,删除方法的流程图;
图8为本申请实施例提供的实现pod固定IP的方法的另一流程图;
图9为本申请实施例提供的电子设备的结构框图;
图10为本申请实施例提供的实现pod固定IP的装置的功能模块框图。
图标:10-实现pod固定IP的装置;101-获取模块;102-确定模块;103-部署模块;104-绑定模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
请参阅图1,为本申请实施例提供的Kubernetes集群的***架构示意图,在该***中包括多个节点,如图中的Node1、Node2、Node3……,多个节点之间可以相互通信。其中,各个节点上可部署一个或多个pod,pod可以理解为容器组,每个容器组中封装一个或多个用于承载软件程序的容器(Container)。Pod是Kubernetes的基本操作单元,是最小的可创建、调试和管理的部署单元。各个pod中,其中的多个容器可共享网络资源。
本实施例中,Kubernetes集群还包括控制器,控制器可以实现对集群中的pod的管理,如调度、删除、创建等。控制器可以是集群中的任意节点,例如,集群中可包括主节点和与主节点通信的多个计算节点,主节点即可为集群中的控制器。
本实施例中,在Kubernetes集群中可对外提供服务,包括准入控制服务(deployment)和节点处理服务(daemonset),其中,准入控制服务可由准入控制模块来实现,节点控制服务可由节点控制模块来实现。准入控制模块可作为一个部署(deployment)服务以单副本提供服务,节点控制模块可作为一个守护进程控制(daemonset)服务在各个节点。准入控制模块和节点控制模块可以在集群的控制器的相关指令下执行操作。例如,准入控制模块可以实现pod创建请求的拦截、pod的IP地址信息的占用的判断等操作,节点控制模块可监听所处的节点上的pod的创建情况、迁移情况等。
请参阅图2,本申请实施例提供一种实现pod固定IP的方法,该方法应用于Kubernetes集群中的控制器,该控制器可以是集群中的任意节点,该方法包括以下步骤。
步骤S101,获取创建请求中待创建pod所需的固定IP。
步骤S102,确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址。
步骤S103,对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点。
步骤S104,在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
本实施例中,待创建pod可以是新创建的,也可以是重建的。在进行pod创建时,可以使用以label的形式给待创建pod标记其所需的固定IP。并且,还可对pod相关信息进行设置,例如pod的类型信息、对应的名称和对应的ID等。此外,还可对pod的固定IP的类型进行设置,例如该固定IP是否为独占IP。
可以利用集群中的准入控制模块来实现对pod的信息的更新配置,并获取pod所需的固定IP。
由于pod最终需要部署至集群中的节点上,待创建pod应当具有对应的节点,也即可部署至的节点,此处命名为第一目标节点。其中,第一目标节点的确定方式可以是指定的,也可以是通过一定策略所确定的。而集群中的各个节点具有自身的主机IP地址,节点的主机IP地址与pod所需绑定的IP无关。
本实施例中,确定待创建pod对应的第一目标节点后,对待创建pod进行创建,以将创建得到的pod部署至第一目标节点。
集群中的多个节点之间具有组网需求,一般地,集群中的各个节点的组网需求相同,例如各个节点均具有一个作为节点的数据网的网卡。本实施例中,将待创建pod部署至第一目标节点后,相应地需要在第一目标节点的网卡上绑定部署的pod所需的固定IP。可利用第一目标节点上的节点控制模块实现网卡上固定IP的绑定。
本实施例中,由于需要绑定固定IP至网卡上,因此,pod需要打开主机网络模式。
本实施例中,通过为待创建pod绑定固定IP,将待创建pod部署至第一目标节点,并在第一目标节点的网卡绑定该固定IP。pod在节点上成功启动后,其相应的固定IP也绑定在了节点上,由于pod是采用主机网络模式,此时pod内部只要使用该固定IP启动服务后,外部就能通过此固定IP来访问服务。
待创建pod的固定IP并不受所处的节点的主机IP影响,因此,在后续迁移或者是重建的情况下,并不会出现pod的IP变化的情况,进而避免由于IP变化所造成的异常的现象。
本实施例中,在进行pod创建时,可以指定待创建pod的目标节点,但是,在实际实施时,可能出现待创建pod所需绑定的固定IP在集群中存在IP冲突的现象,基于此考虑,请参阅图3,本实施例在上述确定待创建pod对应的第一目标节点的步骤中,可以通过以下方式来实现:
步骤S1021,检测所述待创建pod所需的固定IP是否被所述集群中的任一节点所使用,若所述固定IP未被所述集群中的任一节点所使用,执行以下步骤S1022,若所述固定IP被所述集群中的节点所使用,执行以下步骤S1023。
步骤S1022,获取所述创建请求中包含的节点信息,作为第一目标节点。
步骤S1023,将使用所述固定IP的节点作为第一目标节点。
本实施例中,待创建pod所需的固定IP有可能已被集群中的其他节点所使用,也即可能存在IP冲突的问题。由于集群中各个节点可支持部署一个或多个pod。为了避免IP冲突的问题,因此,可进行pod亲和性配置,也即可以将使用该固定IP的节点作为待创建pod对应的第一目标节点,后续可将待创建pod部署至使用其固定IP的节点。
而若待创建pod所需的固定IP未被集群中的节点所使用,则可以按照截获的创建请求中的节点信息,作为第一目标节点。也即,后续将待创建pod部署至创建请求所指定的节点。
相应地,上述在第一目标节点的网卡上绑定部署的pod所需的固定IP的步骤中,可先检测第一目标节点的网卡上是否绑定有该部署的pod所需的固定IP。
如果是在上述的第一目标节点为占用待创建pod所需的固定IP的节点的情况下,则该节点的网卡上已经绑定待创建pod所需的固定IP,因此,可不用重复进行绑定。
如果是在上述的不存在节点使用待创建pod所需的固定IP的情况下,也即,创建请求中所指定的第一目标节点的网卡上并未绑定待创建pod所需的固定IP。这种情况下,则需要在第一目标节点的网卡上绑定待创建pod所需的固定IP。
本实施例中,通过上述的进行是否存在节点已使用待创建pod所需的固定IP,并在存在的情况下,则将使用的节点作为待创建pod的第一目标节点,在不存在的情况下,则将创建请求指定的节点作为待创建pod的第一目标节点,如此,可以避免出现IP冲突的现象。
由上述可知,在进行pod的创建时,可对pod所需的IP是否为独占IP进行设置。在上述的集群中存在使用了待创建pod所需的固定IP的节点的情况下,则该节点上绑定的IP也可能为独占IP,同样地,若将待创建pod部署至该节点,仍会出现IP冲突的问题造成异常。基于此考虑,请参阅图4,在本实施例中,在固定IP被集群中的节点所使用的情况下,可以执行以下步骤:
步骤S10231,在所述固定IP被所述集群中的节点所使用的情况下,判断所述固定IP是否为独占IP,其中,独占IP为供单一pod所绑定的IP,若所述固定IP不为独占IP,执行以下步骤S10232,若所述固定IP为独占IP,执行以下步骤S10233。
步骤S10232,将使用不为独占IP的固定IP的节点作为第一目标节点。
步骤S10233,提示绑定异常信息。
本实施例中,独占IP即为只能有一个pod使用该IP,通过上述的检测判断在存在使用了待创建pod所需的固定IP的节点的情况下,固定IP是否为独占IP的方式,则可以避免由于独占IP的独占性,所存在的IP冲突的问题。
本实施例中,在IP并非独占IP的情况下,单个IP可以被多个pod所绑定,该多个pod被部署到同一个节点上。而若IP为独占IP,则IP也可以被单独一个pod所占用。可以根据设置实现多个pod使用一个IP或者IP被单一pod所独占的效果。
通过以上方式确定待创建pod对应的第一目标节点后,在进行pod创建和部署时,可通过以下方式实现,请结合参阅图5:
步骤S1031,将所述待创建pod所需的固定IP配置到pod的环境变量中。
步骤S1032,基于确定的第一目标节点配置得到部署策略信息。
步骤S1033,根据所述环境变量生成所述待创建pod,并基于所述部署策略信息将创建得到的pod部署至所述第一目标节点。
本实施例中,可通过准入控制模块在实现拦截pod的创建后,将相关的信息,如所需的固定IP、pod的类型信息等注入到环境变量中。并且,通过在各个节点的节点控制模块来监听所属的节点上的pod的创建,控制器基于部署策略信息将创建的pod部署至对应的第一目标节点,第一目标节点的节点控制模块监听到pod的部署动作,完成上述的如固定IP的绑定等动作,以完成待创建pod的部署。并且,利用节点控制模块还可以维护节点上绑定的固定IP的状态。
在实施时,可能会出现节点发生故障,或者是节点的资源不足等情形,这类情形下,需要进行pod的迁移,以将pod迁移到正常的节点继续提供服务。基于此考虑,请参阅图6,本实施例所提供的方法还可包括以下步骤:
步骤S201,在获得调度指令的情况下,获取所述调度指令指向的待调度pod以及所需调度至的第二目标节点。
步骤S202,获得所述待调度pod所绑定的固定IP。
步骤S203,将绑定有所述固定IP的待调度pod调度至所述第二目标节点。
步骤S204,在所述第二目标节点的网卡上绑定所述待调度pod所绑定的固定IP。
本实施例中,若出现节点宕机,或者是节点上的资源不足,如处理资源、存储资源等不足的情形,此时,需要将其上部署的至少部分节点迁移到其他的能够正常工作的节点,或者是存储资源、处理资源充足的节点。从而保障pod及其承载软件程序的容器能够正常工作。
调度指令为在出现上述情形下产生的,调度指令中包含需要进行调度的待调度pod以及所需调度至的第二目标节点。其中,待调度pod即为部署于出现宕机情形的节点、或者处于节点资源不足的节点上的pod。此外,可以通过获取集群中各个节点的占用情况,例如各个节点的处理资源、存储资源的占用情况,确定其中资源占用率较低的节点作为第二目标节点。
而待调度pod为已创建并部署在节点的pod,待调度pod绑定有固定IP。若待调度pod在创建并部署时,经过IP是否冲突的检测,则当前集群中除待调度pod所在的节点之外的其他节点并未使用待调度pod的固定IP。
在将待调度pod调度至第二目标节点后,同样地需要在第二目标节点的网卡上绑定待调度pod所绑定的固定IP。其中,单个节点的网卡上进行多个固定IP的绑定,而具有相同固定IP的pod需要部署到同一个节点上。
因此,本实施例中,待调度pod可以是一个pod,也可以是多个pod。例如,在多个pod共同绑定相同的固定IP时,则调度操作应当针对该多个pod,并且将该多个绑定相同的固定IP的pod调度至同一个节点上。
因此,在监测到集群中某个节点出现宕机或资源不足,则获取该节点上部署的pod,以及部署的各个pod所绑定的固定IP。并且,确定其中是否存在绑定有相同固定IP的pod,若存在绑定有相同固定IP的多个pod,则将该多个pod作为待调度pod。将该多个待调度pod调度至同一个第二目标节点。如此,可以避免在调度之后,绑定相同固定IP的pod处于不同的节点上,而存在IP冲突的问题。
在将待调度pod调度至第二目标节点后,执行第二目标节点的网卡的固定IP绑定动作,中,待调度pod在调度至第二目标节点上,待调度pod其绑定的固定IP并不会发生变化。
本实施例中,由于pod支持绑定固定IP,该固定IP并不受其所在的节点的主机IP的影响,在节点宕机或资源不足的情况下,控制器对pod的调度还能正常工作,可将pod迁移到正常的节点继续提供服务,且其绑定的固定IP也会跟随pod迁移,实现服务的高可用。
本实施例中,各个节点上的节点控制模块可对节点上的pod创建、迁移等进行监听。例如,针对待调度pod调度之前所在的节点,在待调度pod调度成功的情况下,将待调度pod调度之前所在的节点的网卡上绑定的待调度pod的固定IP移除。
此外,本实施例中,还可以利用节点上的节点控制模块监听节点上的pod的删除情况,相应地,请参阅图7,本实施例提供的方法还包括以下步骤:
步骤S301,在获得删除指令的情况下,获取所述删除指令所指向的待删除pod。
步骤S302,获得所述待删除pod所在节点的网卡上绑定的所述待删除pod的固定IP。
步骤S303,将所述待删除pod从所述节点上删除,将所述网卡上的所述待删除pod的固定IP删除。
在Kubernetes中pod的生命周期是短暂的,在pod出现故障或者生命周期结束时,需要利用新的pod代替故障的pod。在这种情形下,可生成删除指令,而删除指令指向的pod即为待删除pod,待删除pod可以是一个pod,也可以是多个pod。
待删除pod其部署的节点的网卡上绑定有其对应的固定IP,在将待删除pod从节点上删除后,需要判断是否将网卡上绑定的固定IP删除。
由上述可知,一个固定IP可以被多个pod绑定,也可以被单独一个pod绑定。在多个pod绑定同一个固定IP时,该多个pod处于相同的节点上。因此,在确定是否将网卡上绑定的固定IP删除时,可以检测待删除pod所在的节点上是否还存在与待删除pod绑定有相同固定IP的其他pod,若不存在,则将网卡上的所述待删除pod的固定IP删除。
此外,若待删除pod所在的节点上还存在与待删除pod绑定有相同固定IP的其他pod,则不删除网卡上的待删除pod的固定IP。
例如,在节点1上部署有pod-0至pod-3,其中pod-0、pod-1和pod-2绑定有相同的固定IP,pod-3绑定有另一固定IP。
若删除指令指向的待删除pod为单个,例如待删除pod为pod-0,则节点1上还具有与待删除pod绑定有相同固定IP的pod,包括pod-1和pod-2。此种情形下,则不删除节点1的网卡上绑定的pod-0的固定IP。
在另一种情形下,若删除指令指向的待删除pod为单个,但待删除pod为pod-3,则节点1上除pod-3之外还具有pod-0至pod-2,而pod-0至pod-2绑定的固定IP与pod-3绑定的固定IP不相同,也即,节点1上不具有与待删除pod绑定有相同固定IP的其他pod。此种情形下,则删除节点1的网卡上绑定的pod-3的固定IP。
在另一种情形下,若删除指令指向的待删除pod为多个,例如待删除pod包括pod-0、pod-1和pod-2,该三个pod绑定有相同固定IP。节点1上pod3与该三个pod绑定有不同的固定IP。也即,节点1上不具有与待删除pod绑定有相同固定IP的其他pod。此种情形下,则删除节点1的网卡上绑定的pod-0至pod-2的固定IP。
本实施例中,通过上述的对pod的生命周期和故障情况的监控,从而在删除指令下进行pod的删除。并且,根据待删除pod以及节点上的其他pod的固定IP绑定情况,相应地确定是否对网卡上绑定的固定IP进行删除处理。可以避免出现绑定IP异常的情形。
在一种实现方式中,本实施例所提供的实现pod固定IP的方法的整体流程可如图8中所示,具体地可包括以下步骤:
步骤S401,获取创建请求中待创建pod所需的固定IP;
步骤S402,检测待创建pod所需的固定IP是否被集群中的任一节点所使用;
在待创建pod所需的固定IP不被集群中的任意节点所使用时,执行步骤S403:
步骤S403,获取创建请求中包含的节点信息,作为第一目标节点;
在待创建pod所需的固定IP被集群中的节点使用时,执行步骤S404:
步骤S404,判断固定IP是否为独占IP;
在固定IP为独占IP时,执行步骤S405;
步骤S405,提示绑定异常信息,并退出绑定流程;
在固定IP不为独占IP时,执行步骤S406:
步骤S406,将使用不为独占IP的固定IP的节点作为第一目标节点;
步骤S407,将待创建pod所需的固定IP配置到pod的环境变量中;
步骤S408,基于确定第一目标节点配置得到部署策略信息;
步骤S409,根据环境变量生成待创建pod,并基于部署策略信息将创建得到的pod部署至第一目标节点;
步骤S410,在第一目标节点的网卡上绑定部署的pod所需的固定IP。
在执行完成上述步骤之后,可以结束绑定流程。在此基础上,若是获取到调度指令,则可以执行步骤S411-步骤S414:
步骤S411,在获得调度指令的情况下,获取调度指令指向的待调度pod以及所需调度至的第二目标节点;
步骤S412,获得待调度pod所绑定的固定IP;
步骤S413,将绑定有固定IP的待调度pod调度至第二目标节点;
步骤S414,在第二目标节点的网卡上绑定待调度pod所绑定的固定IP。
在完成上述的调度步骤后,可以结束调度,退出调度流程。
此外,在节点上部署pod之后,若是获取到删除指令,则可以执行步骤S415-步骤S420。
步骤S415,在获得删除指令的情况下,获取删除指令所指向的待删除pod;
步骤S416,获得待删除pod所在节点的网卡上绑定的待删除pod的固定IP;
步骤S417,将待删除pod从所述节点上删除;
步骤S418,检测待删除pod所在的节点上是否还存在与待删除pod绑定有相同固定IP的其他pod;
在待删除pod所在的节点上不存在与待删除pod绑定有相同固定IP的其他pod的情况下,则执行步骤S419:
步骤S419,将网卡上的待删除pod的固定IP删除;
在待删除pod所在的节点上存在与待删除pod绑定有相同固定IP的其他pod的情况下,则执行步骤S420;
步骤S420,不删除网卡上的待删除pod的固定IP。
本实施例所提供的实现pod固定IP的方法,pod可支持绑定固定IP,且不随pod的重建或者删除丢失。单个固定IP可以被多个pod绑定使用,该多个pod被部署在同一个节点上,也可以被一个pod所独占。在节点宕机时,控制器可对pod进行调度,可以将pod迁移到正常的节点继续提供服务,且固定IP也会跟随pod迁移,实现服务的高可用。
此外,本实施例中,采用label模式实现固定控制器内pod的IP,配置简单且对于上层业务友好。
请参阅图9,为本申请实施例提供的一种电子设备的结构框图,该电子设备可以是上述的控制器,也即可以是上述的任意节点。该控制器可以是便携式电脑、台式计算机、手机、平板电脑、服务器等,其中,服务器可以是虚拟机或物理机。
如图9所示,电子设备可以包括处理器、存储器、接口装置、通信装置、显示装置、输入装置、扬声器、麦克风等等。其中,处理器可以是中央处理器CPU、微处理器MCU等。存储器例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置例如包括USB接口、耳机接口等。
通信装置例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置例如是液晶显示屏、触摸显示屏等。输入装置例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器和麦克风输入/输出语音信息。
图9所示的电子设备仅仅是说明性的并且决不意味着对本申请、其应用或使用的任何限制。应用于本申请的实施例中,电子设备的所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本申请实施例提供的任意一项方法步骤。
本领域技术人员应当理解,尽管在图9中对电子设备示出了多个装置,但是,本申请可以仅涉及其中的部分装置,例如,电子设备可以只涉及处理器和存储装置。技术人员可以根据本申请所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
请参阅图10,本申请实施例还提供一种实现pod固定IP的装置10,该装置包括获取模块101、确定模块102、部署模块103和绑定模块104。
获取模块101,用于获取创建请求中待创建pod所需的固定IP。
可以理解,该获取模块101可以用于执行上述步骤S101,关于该获取模块101的详细实现方式可以参照上述对步骤S101有关的内容。
确定模块102,用于确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址。
可以理解,该确定模块102可以用于执行上述步骤S102,关于该确定模块102的详细实现方式可以参照上述对步骤S102有关的内容。
部署模块103,用于对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点。
可以理解,该部署模块103可以用于执行上述步骤S103,关于该部署模块103的详细实现方式可以参照上述对步骤S103有关的内容。
绑定模块104,用于在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
可以理解,该绑定模块104可以用于执行上述步骤S104,关于该绑定模块104的详细实现方式可以参照上述对步骤S104有关的内容。
在一种可能的实现方式中,上述装置还包括调度模块,该调度模块可以用于:
在获得调度指令的情况下,获取所述调度指令指向的待调度pod以及所需调度至的第二目标节点;
获得所述待调度pod所绑定的固定IP;
将绑定有所述固定IP的待调度pod调度至所述第二目标节点;
在所述第二目标节点的网卡上绑定所述待调度pod所绑定的固定IP。
在一种可能的实现方式中,所述调度模块还可以用于:
在所述待调度pod调度成功的情况下,将所述待调用pod调度之前所在的节点的网卡上绑定的待调度pod的固定IP移除。
在一种可能的实现方式中,上述确定模块102具体可以用于:
检测所述待创建pod所需的固定IP是否被所述集群中的任一节点所使用;
若所述固定IP未被所述集群中的任一节点所使用,获取所述创建请求中包含的节点信息,作为第一目标节点;
若所述固定IP被所述集群中的节点所使用,则将使用所述固定IP的节点作为第一目标节点。
在一种可能的实现方式中,上述确定模块102具体可以用于:
在所述固定IP被所述集群中的节点所使用的情况下,判断所述固定IP是否为独占IP,其中,独占IP为供单一pod所绑定的IP;
若所述固定IP不为独占IP,将使用所述固定IP的节点作为第一目标节点;
若所述固定IP为独占IP,提示绑定异常信息。
在一种可能的实现方式中,所述装置还包括删除模块,该删除模块可以用于:
在获得删除指令的情况下,获取所述删除指令所指向的待删除pod;
获得所述待删除pod所在节点的网卡上绑定的所述待删除pod的固定IP;
将所述待删除pod从所述节点上删除,将所述网卡上的所述待删除pod的固定IP删除。
在一种可能的实现方式中,上述删除模块具体可以用于:
检测所述待删除pod所在的节点上是否还存在与所述待删除pod绑定有相同固定IP的其他pod;
若不存在,则将所述网卡上的所述待删除pod的固定IP删除。
在一种可能的实现方式中,所述部署模块103具体可以用于:
将所述待创建pod所需的固定IP配置到pod的环境变量中;
基于确定的第一目标节点配置得到部署策略信息;
根据所述环境变量生成所述待创建pod,并基于所述部署策略信息将创建得到的pod部署至所述第一目标节点。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的实现pod固定IP的方法。
综上所述,本申请提供实施例提供的实现pod固定IP的方法、装置、电子设备和可读存储介质,通过获取创建请求中待创建pod所需的固定IP,确定集群中待创建pod所对应的第一目标节点,该第一目标节点具有自身的主机IP地址。对待创建pod进行创建,以将创建得到的pod部署至第一目标节点,在第一目标节点的网卡上绑定部署的pod所需的固定IP,使部署的pod使用该固定IP启动服务以供外部访问。
本方案中,通过对pod进行固定IP绑定,将pod部署至第一目标节点,并在第一目标节点的网卡上绑定该固定IP,从而可以使部署的pod使用该固定IP启动服务以供外部访问。且pod的固定IP不随所处的节点的主机IP的影响,后续在重建或迁移时,pod自身绑定的固定IP可不受影响,从而可避免现有技术中由于IP变化而出现异常的现象。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种实现pod固定IP的方法,其特征在于,应用于Kubernetes集群中的控制器,所述Kubernetes集群还包括多个节点,所述方法包括:
获取创建请求中待创建pod所需的固定IP;
确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址;
对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点;
在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
2.根据权利要求1所述的实现pod固定IP的方法,其特征在于,所述方法还包括:
在获得调度指令的情况下,获取所述调度指令指向的待调度pod以及所需调度至的第二目标节点;
获得所述待调度pod所绑定的固定IP;
将绑定有所述固定IP的待调度pod调度至所述第二目标节点;
在所述第二目标节点的网卡上绑定所述待调度pod所绑定的固定IP。
3.根据权利要求2所述的实现pod固定IP的方法,其特征在于,所述方法还包括:
在所述待调度pod调度成功的情况下,将所述待调用pod调度之前所在的节点的网卡上绑定的待调度pod的固定IP移除。
4.根据权利要求1所述的实现pod固定IP的方法,其特征在于,所述确定所述集群中所述待创建pod所对应的第一目标节点的步骤,包括:
检测所述待创建pod所需的固定IP是否被所述集群中的任一节点所使用;
若所述固定IP未被所述集群中的任一节点所使用,获取所述创建请求中包含的节点信息,作为第一目标节点;
若所述固定IP被所述集群中的节点所使用,将使用所述固定IP的节点作为第一目标节点。
5.根据权利要求4所述的实现pod固定IP的方法,其特征在于,所述若所述固定IP被所述集群中的节点所使用,将使用所述固定IP的节点作为第一目标节点的步骤,包括:
在所述固定IP被所述集群中的节点所使用的情况下,判断所述固定IP是否为独占IP,其中,独占IP为供单一pod所绑定的IP;
若所述固定IP不为独占IP,将使用所述固定IP的节点作为第一目标节点;
若所述固定IP为独占IP,提示绑定异常信息。
6.根据权利要求1所述的实现pod固定IP的方法,其特征在于,所述方法还包括:
在获得删除指令的情况下,获取所述删除指令所指向的待删除pod;
获得所述待删除pod所在节点的网卡上绑定的所述待删除pod的固定IP;
将所述待删除pod从所述节点上删除,将所述网卡上的所述待删除pod的固定IP删除。
7.根据权利要求6所述的实现pod固定IP的方法,其特征在于,所述将所述网卡上的所述待删除pod的固定IP删除的步骤,包括:
检测所述待删除pod所在的节点上是否还存在与所述待删除pod绑定有相同固定IP的其他pod;
若不存在,则将所述网卡上的所述待删除pod的固定IP删除。
8.根据权利要求1所述的实现pod固定IP的方法,其特征在于,所述对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点的步骤,包括:
将所述待创建pod所需的固定IP配置到pod的环境变量中;
基于确定的第一目标节点配置得到部署策略信息;
根据所述环境变量生成所述待创建pod,并基于所述部署策略信息将创建得到的pod部署至所述第一目标节点。
9.一种实现pod固定IP的装置,其特征在于,应用于Kubernetes集群中的控制器,所述Kubernetes集群还包括多个节点,所述装置:
获取模块,用于获取创建请求中待创建pod所需的固定IP;
确定模块,用于确定所述集群中所述待创建pod所对应的第一目标节点,其中,所述第一目标节点具有自身的主机IP地址;
部署模块,用于对所述待创建pod进行创建,以将创建得到的pod部署至所述第一目标节点;
绑定模块,用于在所述第一目标节点的网卡上绑定部署的pod所需的固定IP,以使部署的pod使用所述固定IP启动服务以供外部访问。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111241420.5A CN113986539A (zh) | 2021-10-25 | 2021-10-25 | 实现pod固定IP的方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111241420.5A CN113986539A (zh) | 2021-10-25 | 2021-10-25 | 实现pod固定IP的方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986539A true CN113986539A (zh) | 2022-01-28 |
Family
ID=79741018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111241420.5A Pending CN113986539A (zh) | 2021-10-25 | 2021-10-25 | 实现pod固定IP的方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986539A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484231A (zh) * | 2022-09-14 | 2022-12-16 | 浙江大华技术股份有限公司 | 一种Pod IP分配方法及相关装置 |
CN116016438A (zh) * | 2022-12-12 | 2023-04-25 | 上海道客网络科技有限公司 | 基于容器云平台的多子网统一分配ip地址的方法和*** |
-
2021
- 2021-10-25 CN CN202111241420.5A patent/CN113986539A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484231A (zh) * | 2022-09-14 | 2022-12-16 | 浙江大华技术股份有限公司 | 一种Pod IP分配方法及相关装置 |
CN116016438A (zh) * | 2022-12-12 | 2023-04-25 | 上海道客网络科技有限公司 | 基于容器云平台的多子网统一分配ip地址的方法和*** |
CN116016438B (zh) * | 2022-12-12 | 2023-08-15 | 上海道客网络科技有限公司 | 基于容器云平台的多子网统一分配ip地址的方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809722B (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
EP3761170B1 (en) | Virtual machine creation method and apparatus | |
US11226847B2 (en) | Implementing an application manifest in a node-specific manner using an intent-based orchestrator | |
US10104010B2 (en) | Method and apparatus for allocating resources | |
CN109565515B (zh) | 分布式资源管理***中的动态租户结构调整的***、设备和过程 | |
US9667749B2 (en) | Client-initiated leader election in distributed client-server systems | |
JP6658882B2 (ja) | 制御装置、vnf配置先選択方法及びプログラム | |
CN107896162B (zh) | 监控***的部署方法、装置、计算机设备及存储介质 | |
JP5352890B2 (ja) | 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体 | |
CN109688191B (zh) | 流量调度方法及通信装置 | |
CN113986539A (zh) | 实现pod固定IP的方法、装置、电子设备和可读存储介质 | |
EP3442201B1 (en) | Cloud platform construction method and cloud platform | |
US10761869B2 (en) | Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type | |
JP2013080275A (ja) | 設定制御装置、設定制御方法および設定制御プログラム | |
CN111669284A (zh) | OpenStack自动化部署方法、电子设备、存储介质及*** | |
CN115686346A (zh) | 一种数据存储方法、设备及计算机可读存储介质 | |
CN111045802B (zh) | Redis集群组件调度***及方法、平台设备 | |
CN114629958B (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN113760446A (zh) | 资源调度方法、装置、设备及介质 | |
JP6312139B2 (ja) | 動的制御システム及び動的制御方法 | |
CN111526168B (zh) | 一种网络功能虚拟化nfv架构的调度管理方法及装置 | |
CN110347473B (zh) | 一种跨数据中心分布的虚拟化网元虚拟机分配方法及装置 | |
CN109257201B (zh) | 一种License的发送方法和装置 | |
CN113568708B (zh) | 平台创建方法、装置及设备 | |
CN112241293A (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 |