CN115242856B - 集群重建方法及系统 - Google Patents
集群重建方法及系统 Download PDFInfo
- Publication number
- CN115242856B CN115242856B CN202210673971.7A CN202210673971A CN115242856B CN 115242856 B CN115242856 B CN 115242856B CN 202210673971 A CN202210673971 A CN 202210673971A CN 115242856 B CN115242856 B CN 115242856B
- Authority
- CN
- China
- Prior art keywords
- cluster
- node
- network address
- master
- master node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000008859 change Effects 0.000 claims abstract description 37
- 230000036541 health Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000001172 regenerating effect Effects 0.000 claims description 6
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000012544 monitoring process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种集群重建方法及系统,涉及计算机应用技术领域,一种集群重建方法应用于部署在主节点上的主自组网模块,该方法包括:在确定主节点的网络地址发生变化时,重建K8S集群;在接收到任意一个工作节点发送的K8S主令牌服务请求时,向该工作节点返回加入指令,以使该工作节点加入重建的K8S集群。另一种集群重建方法应用于部署在任意一个工作节点上的从自组网模块,该方法包括:如果确定主节点或者该工作节点的网络地址发生变化,则向主节点发送K8S主令牌服务请求;接收主节点返回的加入指令,使该工作节点重新加入K8S集群。应用本申请所提供的技术方案,可以快速重建K8S集群,保证K8S集群的稳定工作。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种集群重建方法及系统。
背景技术
随着计算机技术的快速发展,K8S技术逐渐发展起来。K8S,即Kubernetes,是一种容器编排引擎,其能够将集群中的计算资源进行统一池化,根据应用程序的资源声明进行合理的编排与调度,保证应用的弹性和高可用性。基于此,K8S集群逐渐应用到中心计算场景和边缘计算场景中。
K8S集群包括主节点和多个工作节点,其在安装部署和正常运行时,需要保持主节点和各工作节点的网络地址,如IP(Internet Protocol,网际互连协议)地址固定不变,如果有节点的IP地址发生变化,容易使得K8S集群的状态变为不可用。在中心计算场景中,通常会为节点配置固定的IP地址,应用在这种场景下的K8S集群比较稳定。但是,在边缘计算场景中,各节点的IP地址通常是动态分配的,总是发生变化,使得应用在这种场景下的K8S集群无法稳定工作。
综上所述,在K8S集群的节点的网络地址发生变化时,如何快速重建K8S集群,保证K8S集群的稳定工作,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种集群重建方法及系统,以快速重建K8S集群,保证K8S集群的稳定工作。
为解决上述技术问题,本申请提供如下技术方案:
一种集群重建方法,应用于部署在K8S集群的主节点上的主自组网模块,所述K8S集群包括所述主节点和多个工作节点,所述集群重建方法包括:
在确定所述主节点的网络地址发生变化的情况下,重新生成主节点配置信息,所述主节点配置信息至少包括令牌信息;
基于所述主节点配置信息,重建所述K8S集群;
在接收到目标工作节点发送的K8S主令牌服务请求的情况下,向所述目标工作节点返回针对重建的所述K8S集群的加入指令,所述加入指令中携带所述令牌信息,以使所述目标工作节点基于所述令牌信息加入重建的所述K8S集群;
其中,所述目标工作节点为多个工作节点中的任意一个工作节点。
在本申请的一种具体实施方式中,通过以下步骤确定所述主节点的网络地址是否发生变化:
确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致;
如果不一致,则确定所述主节点的网络地址发生变化。
在本申请的一种具体实施方式中,在所述确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致之前,还包括:
确定是否达到设定的第一时间间隔,或者是否监听到网络地址第一变化事件;
如果达到所述第一时间间隔,或者监听到所述网络地址第一变化事件,则执行所述确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致的步骤。
一种集群重建方法,应用于部署在K8S集群的目标工作节点上的目标从自组网模块,所述K8S集群包括主节点和多个工作节点,所述目标工作节点为多个工作节点中的任意一个工作节点,所述集群重建方法包括:
在达到设定的重新加入所述K8S集群的触发条件的情况下,如果确定所述主节点的网络地址发生变化,或者所述目标工作节点的网络地址发生变化,则向所述主节点发送K8S主令牌服务请求;
接收所述主节点返回的针对所述K8S集群的加入指令,所述加入指令中携带令牌信息;
基于所述令牌信息使所述目标工作节点重新加入所述K8S集群。
在本申请的一种具体实施方式中,通过以下步骤确定是否达到重新加入所述K8S集群的触发条件:
确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致;
如果不一致,则确定达到重新加入所述K8S集群的触发条件。
在本申请的一种具体实施方式中,在所述确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致之前,还包括:
确定是否达到设定的第二时间间隔,或者是否监听到网络地址第二变化事件;
如果达到所述第二时间间隔,或者监听到所述网络地址第二变化事件,则执行所述确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致的步骤。
在本申请的一种具体实施方式中,通过以下步骤确定是否达到重新加入所述K8S集群的触发条件:
对所述主节点的应用程序接口的服务端口进行健康检查;
如果所述服务端口异常,则确定达到重新加入所述K8S集群的触发条件。
在本申请的一种具体实施方式中,通过以下步骤确定所述主节点的网络地址是否发生变化:
在局域网内搜索K8S主服务,所述主节点预先在所述局域网内注册所述K8S主服务;
根据所述K8S主服务的返回结果,确定所述主节点的网络地址是否发生变化。
在本申请的一种具体实施方式中,在确定所述主节点的网络地址发生变化的情况下,在所述基于所述令牌信息使所述目标工作节点重新加入所述K8S集群之前,还包括:
在所述目标工作节点上更新所述主节点的网络地址的配置信息。
一种集群重建系统,包括主自组网模块和多个从自组网模块,所述主自组网模块部署在K8S集群的主节点上,所述K8S集群包括所述主节点和多个工作节点,每个工作节点上均部署一个从自组网模块;其中,
所述主自组网模块,用于在确定所述主节点的网络地址发生变化的情况下,重新生成主节点配置信息,所述主节点配置信息至少包括令牌信息;基于所述主节点配置信息,重建所述K8S集群;在接收到部署在目标工作节点上的目标从自组网模块发送的K8S主令牌服务请求的情况下,向所述目标从自组网模块返回针对重建的所述K8S集群的加入指令,所述加入指令中携带令牌信息;所述目标工作节点为多个工作节点中的任意一个工作节点;
所述目标从自组网模块,用于在达到设定的重新加入所述K8S集群的触发条件的情况下,如果确定所述主节点的网络地址发生变化,或者所述目标工作节点的网络地址发生变化,则向所述主自组网模块发送所述K8S主令牌服务请求;接收所述主自组网模块返回的针对所述K8S集群的加入指令,基于所述加入指令中携带的所述令牌信息使所述目标工作节点重新加入所述K8S集群。
应用本申请实施例所提供的技术方案,部署在K8S集群的主节点上的主自组网模块在确定主节点的网络地址发生变化的情况下,重新生成主节点配置信息,基于主节点配置信息,重建K8S集群,在接收到K8S集群重建前的任意一个工作节点发送的K8S主令牌服务请求的情况下,向该工作节点返回针对重建的K8S集群的加入指令,该加入指令中携带令牌信息,该工作节点即可基于令牌信息重新加入重建的K8S集群。这样在主节点的网络地址发生变化时,可以快速重建K8S集群,保证K8S集群的稳定工作。
另外,部署在K8S集群的任意一个工作节点上的从自组网模块在达到设定的重新加入K8S集群的触发条件的情况下,如果确定主节点的网络地址发生变化,或者该工作节点的网络地址发生变化,则向主节点发送K8S主令牌服务请求,接收到主节点返回的针对K8S集群的加入指令后,基于加入指令中携带的令牌信息可以重新加入K8S集群。这样在主节点的网络地址发生变化或者工作节点的网络地址发生变化时,可以快速重建K8S集群,保证K8S集群的稳定工作。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种K8S集群的结构示意图;
图2为本申请实施例中一种集群重建方法的实施流程图;
图3为本申请实施例中另一种集群重建方法的实施流程图;
图4为本申请实施例中一种集群重建系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心是提供一种集群重建方法,该方法可以应用于部署在K8S集群的主节点上的主自组网模块,K8S集群可以包括主节点和多个工作节点。如图1所示,K8S集群包括主节点和工作节点A、工作节点B、……、工作节点N。主节点可以运行K8S系统组件,对各工作节点进行管理,各工作节点负责运行应用程序。用户通过命令、API(ApplicationProgramming Interface,应用程序接口)等方式管理集群时,可以通过发送命令或者请求到主节点上的系统组件,然后控制整个集群。
需要说明的是,在实际应用中,为了提高K8S集群的高可用性,一个K8S大集群可以包括多个主节点及每个主节点对应的多个工作节点,如可以包括主节点1、主节点2、主节点3,以及主节点1对应的工作节点1、工作节点2、工作节点3,主节点2对应的工作节点4、工作节点5,主节点3对应的工作节点6、工作节点7、工作节点8。多个主节点之间可以通过负载均衡设备进行负载均衡控制。对于任意一个主节点而言,可以部署该主节点以及该主节点对应的多个工作节点在一个局域网内,构成一个K8S集群,如上例中主节点1及其对应的工作节点1、工作节点2、工作节点3构成一个K8S集群,主节点2及其对应的工作节点4、工作节点5构成一个K8S集群,主节点3及其对应的工作节点6、工作节点7、工作节点8构成一个K8S集群。本申请实施例所提供的技术方案即为针对一个主节点及该主节点对应的多个工作节点构成的K8S集群的重建,所以,对于本申请实施例的描述均是在K8S集群包括一个主节点和多个工作节点的结构下进行。
本申请实施例所提供的技术方案可以应用在中心计算场景或者边缘计算场景中,只要涉及到K8S集群的节点的网络地址发生变化,即可应用本申请实施例所提供的技术方案进行集群重建。在边缘计算场景中应用效果更佳,因为在边缘计算场景中,节点的网络地址发生变化的概率更高。比如,一些应急边缘设备,在不同的地域需要重新组网,或者需要使用移动网络动态分配IP地址。再比如,一些户外应用场景,可能会使用ad-hoc网络(自组网),各移动节点的IP往往是由动态配置方法生成的。
参见图2所示,为本申请实施例所提供的一种集群重建方法的实施流程图,该方法应用于部署在K8S集群的主节点上的主自组网模块,K8S集群包括主节点和多个工作节点,该方法可以包括以下步骤:
S210:在确定主节点的网络地址发生变化的情况下,重新生成主节点配置信息。
主节点配置信息至少包括令牌信息。
在本申请实施例中,K8S集群包括主节点和多个工作节点,主节点和多个工作节点处于一个局域网内,主节点上部署有主自组网模块,主自组网模块可以使用mDNS(multicast DNS,多播DNS)、SSDP(Simple Service Discovery Protocol,简单服务发现协议)、WS-Discovery(Web Services Dynamic Discovery,网络服务动态发现)协议、UPnP(Universal Plug and Play,通用即插即用)、AFP(Apple Filing Protocol,苹果文件协议)、LLMNR(Link-Local Multicast Name Resolution,链路本地多播名称解析)等协议,利用UDP(User Datagram Protocol,用户数据报协议)多播,在局域网内注册K8S主服务,即KS8_MASTER服务。
主自组网模块可以获取到主节点的网络地址,确定主节点的网络地址是否发生变化。网络地址具体可以是IP地址。
在确定主节点的网络地址发生变化的情况下,主自组网模块可以重新生成主节点配置信息。主节点配置信息至少包括令牌信息。令牌,即token,可以认为是加入主节点对应的集群的临时密钥。主节点配置信息还可以包括证书信息、加密相关信息等。
S220:基于主节点配置信息,重建K8S集群。
在本申请实施例中,部署在主节点上的主自组网模块在确定主节点的网络地址发生变化的情况下,重新生成主节点配置信息,基于主节点配置信息,可以重建主节点,重建K8S集群。具体的,可以调用kubeadm工具重建主节点及重建K8S集群,对K8S集群进行初始化操作。
当前,因为主节点的网络地址发生变化,主节点将退出原K8S集群,原K8S集群包括的各工作节点失去与主节点的联系,将无法继续工作,基于重新生成的主节点配置信息,重建主节点及重建K8S集群后,重建后的K8S集群仅包括主节点。
S230:在接收到目标工作节点发送的K8S主令牌服务请求的情况下,向目标工作节点返回针对重建的K8S集群的加入指令,加入指令中携带令牌信息,以使目标工作节点基于令牌信息加入重建的K8S集群。
其中,目标工作节点为多个工作节点中的任意一个工作节点。
如前所描述的,如果主节点的网络地址发生变化,主节点将退出原K8S集群,原K8S集群包括的各工作节点失去与主节点的联系,将无法继续工作,部署在主节点上的主自组网模块基于重新生成的主节点配置信息,重建主节点及重建K8S集群后,重建后的K8S集群仅包括主节点。原K8S集群包括的各工作节点需要重新加入到重建后的K8S集群中。
这里设定目标工作节点为原K8S集群包括的多个工作节点中的任意一个工作节点。目标工作节点如果要重新加入主节点对应的K8S集群,即重建后的K8S集群,则可以向主自组网模块发送K8S主令牌服务请求,K8S主令牌服务即K8S_MASTER_TOKEN服务。主节点可以提供基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)的API服务K8S_MASTER_TOKEN。
主自组网模块在接收到目标工作节点发送的K8S主令牌服务请求时,即可获知目标工作节点要加入重建的K8S集群,可以向目标工作节点返回针对重建的K8S集群的加入指令,加入指令中可以携带令牌信息。这样目标工作节点对加入指令进行解析,可以得到令牌信息,基于令牌信息可以加入到重建的K8S集群。
对于原K8S集群的任意一个工作节点均可按照上述步骤加入重建的K8S集群,使得K8S集群可以快速重建起来,保证K8S集群的稳定工作。
应用本申请实施例所提供的技术方案,部署在K8S集群的主节点上的主自组网模块在确定主节点的网络地址发生变化的情况下,重新生成主节点配置信息,基于主节点配置信息,重建K8S集群,在接收到K8S集群重建前的任意一个工作节点发送的K8S主令牌服务请求的情况下,向该工作节点返回针对重建的K8S集群的加入指令,该加入指令中携带令牌信息,该工作节点即可基于令牌信息重新加入重建的K8S集群。这样在主节点的网络地址发生变化时,可以快速重建K8S集群,保证K8S集群的稳定工作。
在本申请的一个实施例中,可以通过以下步骤确定主节点的网络地址是否发生变化:
确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致;如果不一致,则确定主节点的网络地址发生变化。
在本申请实施例中,部署在主节点上的主自组网模块可以通过配置文件、日志文件等记录主节点运行的网络地址。将主节点当前使用的网络地址和主节点上次运行的网络地址进行比较,可以确定二者是否一致。如果一致,则表明主节点当前使用的网络地址相较于上次运行时的网络地址没有发生变化,不需要进行集群重建操作。如果不一致,则可以确定主节点的网络地址发生变化,需要进行集群重建操作。
通过主节点当前使用的网络地址和主节点上次运行的网络地址是否一致,可以准确确定出主节点的网络地址是否发生变化,以在发生变化时,快速进行集群重建。
在本申请的一个实施例中,在确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致之前,还可以包括以下步骤:
确定是否达到设定的第一时间间隔,或者是否监听到网络地址第一变化事件;
如果达到第一时间间隔,或者监听到网络地址第一变化事件,则执行确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致的步骤。
在本申请实施例中,可以预先设定第一时间间隔,第一时间间隔可以根据实际情况进行设定和调整,如设定为1分钟。在达到设定的第一时间间隔时,主自组网模块可以查看主节点当前使用的网络地址,确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致,如果不一致,则确定主节点的网络地址发生变化,继续进行集群重建操作。
主自组网模块还可以注册网络地址变化事件监听,如注册Linux的Netlink事件监听,如果监听到网络地址第一变化事件,则可以查看主节点当前使用的网络地址,确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致,如果不一致,则确定主节点的网络地址发生变化,继续进行集群重建操作。
通过时间间隔或者监听事件,可以及时对主节点的网络地址是否变化进行确定。
参见图3所示,为本申请实施例所提供的一种集群重建方法的实施流程图,该方法可以应用于部署在K8S集群的目标工作节点上的目标从自组网模块,K8S集群包括主节点和多个工作节点,目标工作节点为多个工作节点中的任意一个工作节点,该方法可以包括以下步骤:
S310:在达到设定的重新加入K8S集群的触发条件的情况下,如果确定主节点的网络地址发生变化,或者目标工作节点的网络地址发生变化,则向主节点发送K8S主令牌服务请求。
在本申请实施例中,K8S集群包括主节点和多个工作节点,每个工作节点上均部署有一个从自组网模块,目标工作节点为多个工作节点中的任意一个工作节点,目标工作节点上部署的从自组网模块为目标从自组网模块。
可以预先设定工作节点重新加入K8S集群的触发条件。目标从自组网模块在确定达到重新加入K8S集群的触发条件的情况下,可以认为当前需触发目标工作节点重新加入K8S集群的操作。可以先确定主节点的网络地址或者目标工作节点的网络地址是否发生变化。如果主节点的网络地址或者目标工作节点的网络地址均未发生变化,则可以不进行任何操作。如果主节点的网络地址发生变化,则当前K8S集群为重建后的K8S集群,需要重新加入,如果目标工作节点的网络地址发生变化,则目标工作节点已退出原K8S集群,需要重新加入。在主节点的网络地址发生变化,或者目标工作节点的网络地址发生变化时,可以向主节点发送KS8主令牌服务请求。
S320:接收主节点返回的针对K8S集群的加入指令。
加入指令中携带令牌信息。
目标从自组网模块在确定主节点的网络地址发生变化,或者目标工作节点的网络地址发生变化时,向主节点发送K8S主令牌服务请求。主节点在接收到K8S主令牌服务请求后,知晓目标工作节点要重新加入自身对应的K8S集群。如果主节点的网络地址没有发生变化,则该K8S集群为原K8S集群,如果主节点的网络地址发生变化,则该K8S集群为重建后的K8S集群。主节点可以向目标自组网模块返回针对K8S集群的加入指令,该加入指令中携带令牌信息。
目标从自组网模块接收到主节点返回的针对K8S集群的加入指令后,对该加入指令进行解析,即可得到令牌信息。
S330:基于令牌信息使目标工作节点重新加入K8S集群。
目标从自组网模块接收到主节点返回的针对K8S集群的加入指令,得到令牌信息后,即可基于令牌信息使目标工作节点重新加入K8S集群。
目标工作节点为多个工作节点中的任意一个工作节点,部署在每个工作节点上的从自组网模块均按照上述步骤的操作,可以重新加入K8S集群,使得K8S集群能够快速重建起来。
应用本申请实施例所提供的技术方案,部署在K8S集群的任意一个工作节点上的从自组网模块在达到设定的重新加入K8S集群的触发条件的情况下,如果确定主节点的网络地址发生变化,或者该工作节点的网络地址发生变化,则向主节点发送K8S主令牌服务请求,接收到主节点返回的针对K8S集群的加入指令后,基于加入指令中携带的令牌信息可以重新加入K8S集群。这样在主节点的网络地址发生变化或者工作节点的网络地址发生变化时,可以快速重建K8S集群,保证K8S集群的稳定工作。
在本申请的一个实施例中,可以通过以下步骤确定是否达到重新加入K8S集群的触发条件:
确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致;如果不一致,则确定达到重新加入K8S集群的触发条件。
在本申请实施例中,部署在目标工作节点上的目标从自组网模块可以通过配置文件、日志文件等记录目标工作节点运行的网络地址。将目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址进行比较,可以确定二者是否一致。如果一致,则表明目标工作节点当前使用的网络地址相较于上次运行时的网络地址没有发生变化,不需要进行重新加入集群的操作。如果不一致,则可以确定目标工作节点的网络地址发生变化,达到重新加入K8S集群的触发条件,需要进行重新加入集群的操作。
通过目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致,可以准确确定出目标工作节点的网络地址是否发生变化,以在发生变化时,快速重新加入集群,进行集群重建。
在本申请的一个实施例中,在确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致之前,还可以包括以下步骤:
确定是否达到设定的第二时间间隔,或者是否监听到网络地址第二变化事件;
如果达到第二时间间隔,或者监听到网络地址第二变化事件,则执行确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致的步骤。
在本申请实施例中,可以预先设定第二时间间隔,第二时间间隔可以根据实际情况进行设定和调整,如设定为1分钟。在达到设定的第二时间间隔时,目标从自组网模块可以查看目标工作节点当前使用的网络地址,确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致,如果不一致,则确定目标工作节点的网络地址发生变化,达到重新加入K8S集群的触发条件,需要进行重新加入集群的操作。
目标从自组网模块还可以注册网络地址变化事件监听,如注册Linux的Netlink事件监听,如果监听到网络地址第二变化事件,则可以查看目标工作节点当前使用的网络地址,确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致,如果不一致,则确定目标工作节点的网络地址发生变化,达到重新加入K8S集群的触发条件,需要进行重新加入集群的操作。
通过时间间隔或者监听事件,可以及时对目标工作节点的网络地址是否变化进行确定,以及时确定是否达到重新加入K8S集群的触发条件。
在本申请的一个实施例中,可以通过以下步骤确定是否达到重新加入K8S集群的触发条件:
对主节点的应用程序接口的服务端口进行健康检查;
如果服务端口异常,则确定达到重新加入K8S集群的触发条件。
在本申请实施例中,部署在目标工作节点上的目标从自组网模块可以对主节点的应用程序接口的服务端口进行健康检查。具体的,可以按照设定的时间间隔对主节点的应用程序接口的服务端口,如6443端口进行健康检查。如果在设定的时间段内该服务端口均处于不通状态,则可以认为该服务端口异常。
如果服务端口异常,则可以确定达到重新加入K8S集群的触发条件。
通过主节点的应用程序接口的服务端口进行健康检查,可以及时准确确定是否达到重新加入K8S集群的触发条件。
在本申请的一个实施例中,可以通过以下步骤确定主节点的网络地址是否发生变化:
在局域网内搜索K8S主服务,主节点预先在局域网内注册K8S主服务;
根据K8S主服务的返回结果,确定主节点的网络地址是否发生变化。
在本申请实施例中,K8S集群包括的主节点和多个工作节点在一个局域网内,主节点可以预先下局域网内注册K8S主服务,标明自身为主节点。
部署在目标工作节点上的目标从自组网模块在确定达到设定的重新加入K8S集群的触发条件的情况下,可以在局域网内搜索K8S主服务。如可以利用mDNS、SSDP、WS-Discovery等协议在局域网内搜索K8S主服务。
根据K8S主服务的返回结果,可以获得局域网内主节点当前使用的网络地址。将主节点当前使用的网络地址和之前记录的主节点的网络地址进行比较,可以确定主节点的网络地址是否发生变化。
通过在局域网内搜索K8S主服务,可以准确确定主节点的网络地址是否发生变化。
在本申请的一个实施例中,在确定主节点的网络地址发生变化的情况下,在基于令牌信息使目标工作节点重新加入K8S集群之前,该方法还可以包括以下步骤:
在目标工作节点上更新主节点的网络地址的配置信息。
在本申请实施例中,在确定主节点的网络地址发生变化的情况下,在接收到主节点返回的针对K8S集群的加入指令之后,可以在目标工作节点上更新主节点的网络地址的配置信息,然后基于加入指令中携带的令牌信息使目标工作节点重新加入K8S集群。
相应于上面的方法实施例,本申请实施例还提供了一种集群重建系统,下文描述的集群重建系统与上文描述的集群重建方法可相互对应参照。
参见图4所示,为本申请实施例所提供的一种集群重建系统,该系统包括主自组网模块和多个从自组网模块,如从自组网模块A、从自组网模块B、……、从自组网模块N,主自组网模块部署在K8S集群的主节点上,K8S集群包括主节点和多个工作节点,每个工作节点上均部署一个从自组网模块,如工作节点A上部署有从自组网模块A,工作节点B上部署有从自组网模块B、……、工作节点N上部署有从自组网模块N。
其中,主自组网模块,用于在确定主节点的网络地址发生变化的情况下,重新生成主节点配置信息,主节点配置信息至少包括令牌信息;基于主节点配置信息,重建K8S集群;在接收到部署在目标工作节点上的目标从自组网模块发送的K8S主令牌服务请求的情况下,向目标从自组网模块返回针对重建的K8S集群的加入指令,加入指令中携带令牌信息;目标工作节点为多个工作节点中的任意一个工作节点;
目标从自组网模块,用于在达到设定的重新加入K8S集群的触发条件的情况下,如果确定主节点的网络地址发生变化,或者目标节点的网络地址发生变化,则向主自组网模块发送K8S主令牌服务请求;接收主自组网模块返回的针对K8S集群的加入指令,基于加入指令中携带的令牌信息使目标工作节点重新加入K8S集群。
在本申请实施例中,集群重建系统包括主自组网模块和多个从自组网模块,主自组网模块部署在K8S集群的主节点上,K8S集群包括主节点和多个工作节点,每个工作节点上均部署一个从自组网模块,目标工作节点为多个工作节点中的任意一个,部署在目标工作节点上的从自组网模块为目标从自组网模块。
主自组网模块可以使用mDNS、SSDP、WS-Discovery协议等,利用UDP多播,在局域网内注册K8S主服务。
主自组网模块在确定主节点的网络地址发生变化的情况下,可以重新生成主节点配置信息。主节点配置信息至少包括令牌信息,还可以包括证书信息、加密相关信息等。基于主节点配置信息,可以重建主节点,重建K8S集群,对K8S集群进行初始化操作。
如果主节点的网络地址发生变化,主节点将退出原K8S集群,原K8S集群包括的各工作节点失去与主节点的联系,将无法继续工作,部署在主节点上的主自组网模块基于重新生成的主节点配置信息,重建主节点及重建K8S集群后,重建后的K8S集群仅包括主节点。原K8S集群包括的各工作节点需要重新加入到重建后的K8S集群中。
目标工作节点为原K8S集群包括的多个工作节点中的任意一个工作节点。目标工作节点如果要重新加入主节点对应的K8S集群,即重建后的K8S集群,则部署在目标工作节点上的目标从自组网模块可以向主自组网模块发送K8S主令牌服务请求。
主自组网模块在接收到目标从自组网模块发送的K8S主令牌服务请求时,即可获知目标工作节点要加入重建的K8S集群,可以向目标从自组网模块返回针对重建的K8S集群的加入指令,加入指令中可以携带令牌信息。这样目标从自组网模块对加入指令进行解析,可以得到令牌信息,基于令牌信息可以使目标工作节点加入到重建的K8S集群。
目标从自组网模块在确定达到重新加入K8S集群的触发条件的情况下,可以认为当前需触发目标工作节点重新加入K8S集群的操作。可以先确定主节点的网络地址或者目标工作节点的网络地址是否发生变化。如果主节点的网络地址发生变化,则当前K8S集群为重建后的K8S集群,需要重新加入,如果目标工作节点的网络地址发生变化,则目标工作节点已退出原K8S集群,需要重新加入。在主节点的网络地址发生变化,或者目标工作节点的网络地址发生变化时,可以向部署在主节点上的主自组网模块发送KS8主令牌服务请求。
主自组网模块在接收到K8S主令牌服务请求后,知晓目标工作节点要重新加入自身对应的K8S集群。如果主节点的网络地址没有发生变化,则该K8S集群为原K8S集群,如果主节点的网络地址发生变化,则该K8S集群为重建后的K8S集群。主自组网模块可以向目标自组网模块返回针对K8S集群的加入指令,该加入指令中携带令牌信息。目标从自组网模块接收到主自组网模块返回的针对K8S集群的加入指令,得到令牌信息后,即可基于令牌信息使目标工作节点重新加入K8S集群。
应用本申请实施例所提供的技术方案,通过部署在K8S集群的主节点上的主自组网模块和部署在K8S集群的工作节点上的从自组网模块,可以在主节点或者工作节点的网络地址发生变化时,快速重建K8S集群,保证K8S集群的稳定工作。
在本申请的一个实施例中,主自组网模块,用于通过以下步骤确定主节点的网络地址是否发生变化:
确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致;
如果不一致,则确定主节点的网络地址发生变化。
在本申请的一个实施例中,主自组网模块,还用于:
在确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致之前,确定是否达到设定的第一时间间隔,或者是否监听到网络地址第一变化事件;
如果达到第一时间间隔,或者监听到网络地址第一变化事件,则执行确定主节点当前使用的网络地址和主节点上次运行的网络地址是否一致的步骤。
在本申请的一个实施例中,目标从自组网模块,用于通过以下步骤确定是否达到重新加入K8S集群的触发条件:
确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致;
如果不一致,则确定达到重新加入K8S集群的触发条件。
在本申请的一个实施例中,目标从自组网模块,还用于:
在确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致之前,确定是否达到设定的第二时间间隔,或者是否监听到网络地址第二变化事件;
如果达到第二时间间隔,或者监听到网络地址第二变化事件,则执行确定目标工作节点当前使用的网络地址和目标工作节点上次运行的网络地址是否一致的步骤。
在本申请的一个实施例中,目标从自组网模块,用于通过以下步骤确定是否达到重新加入K8S集群的触发条件:
对主节点的应用程序接口的服务端口进行健康检查;
如果服务端口异常,则确定达到重新加入K8S集群的触发条件。
在本申请的一个实施例中,目标从自组网模块,用于通过以下步骤确定主节点的网络地址是否发生变化:
在局域网内搜索K8S主服务,主节点预先在局域网内注册K8S主服务;
根据K8S主服务的返回结果,确定主节点的网络地址是否发生变化。
在本申请的一个实施例中,目标从自组网模块,还用于:
在确定主节点的网络地址发生变化的情况下,在基于令牌信息使目标工作节点重新加入K8S集群之前,在目标工作节点上更新主节点的网络地址的配置信息。
本申请实施例通过主自组网模块、从自组网模块可以自动进行K8S服务发现,将局域网服务自动发现机制和K8S集群重建技术相融合,有效解决边缘计算场景中K8S集群的节点的网络地址动态变化导致的集群不可用问题,使得K8S集群可以较好地应用到边缘计算场景中,提高K8S集群运行的可靠性、稳定性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种集群重建方法,其特征在于,应用于部署在K8S集群的主节点上的主自组网模块,所述K8S集群包括所述主节点和多个工作节点,所述集群重建方法包括:
在确定所述主节点的网络地址发生变化的情况下,重新生成主节点配置信息,所述主节点配置信息至少包括令牌信息;
基于所述主节点配置信息,重建所述K8S集群;
在接收到目标工作节点发送的K8S主令牌服务请求的情况下,向所述目标工作节点返回针对重建的所述K8S集群的加入指令,所述加入指令中携带所述令牌信息,以使所述目标工作节点基于所述令牌信息加入重建的所述K8S集群;
其中,所述目标工作节点为多个工作节点中的任意一个工作节点。
2.根据权利要求1所述的集群重建方法,其特征在于,通过以下步骤确定所述主节点的网络地址是否发生变化:
确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致;
如果不一致,则确定所述主节点的网络地址发生变化。
3.根据权利要求2所述的集群重建方法,其特征在于,在所述确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致之前,还包括:
确定是否达到设定的第一时间间隔,或者是否监听到网络地址第一变化事件;
如果达到所述第一时间间隔,或者监听到所述网络地址第一变化事件,则执行所述确定所述主节点当前使用的网络地址和所述主节点上次运行的网络地址是否一致的步骤。
4.一种集群重建方法,其特征在于,应用于部署在K8S集群的目标工作节点上的目标从自组网模块,所述K8S集群包括主节点和多个工作节点,所述目标工作节点为多个工作节点中的任意一个工作节点,所述集群重建方法包括:
在达到设定的重新加入所述K8S集群的触发条件的情况下,如果确定所述主节点的网络地址发生变化,或者所述目标工作节点的网络地址发生变化,则向所述主节点发送K8S主令牌服务请求;
接收所述主节点返回的针对所述K8S集群的加入指令,所述加入指令中携带令牌信息;
基于所述令牌信息使所述目标工作节点重新加入所述K8S集群。
5.根据权利要求4所述的集群重建方法,其特征在于,通过以下步骤确定是否达到重新加入所述K8S集群的触发条件:
确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致;
如果不一致,则确定达到重新加入所述K8S集群的触发条件。
6.根据权利要求5所述的集群重建方法,其特征在于,在所述确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致之前,还包括:
确定是否达到设定的第二时间间隔,或者是否监听到网络地址第二变化事件;
如果达到所述第二时间间隔,或者监听到所述网络地址第二变化事件,则执行所述确定所述目标工作节点当前使用的网络地址和所述目标工作节点上次运行的网络地址是否一致的步骤。
7.根据权利要求4所述的集群重建方法,其特征在于,通过以下步骤确定是否达到重新加入所述K8S集群的触发条件:
对所述主节点的应用程序接口的服务端口进行健康检查;
如果所述服务端口异常,则确定达到重新加入所述K8S集群的触发条件。
8.根据权利要求4所述的集群重建方法,其特征在于,通过以下步骤确定所述主节点的网络地址是否发生变化:
在局域网内搜索K8S主服务,所述主节点预先在所述局域网内注册所述K8S主服务;
根据所述K8S主服务的返回结果,确定所述主节点的网络地址是否发生变化。
9.根据权利要求4至8之中任一项所述的集群重建方法,其特征在于,在确定所述主节点的网络地址发生变化的情况下,在所述基于所述令牌信息使所述目标工作节点重新加入所述K8S集群之前,还包括:
在所述目标工作节点上更新所述主节点的网络地址的配置信息。
10.一种集群重建系统,其特征在于,包括主自组网模块和多个从自组网模块,所述主自组网模块部署在K8S集群的主节点上,所述K8S集群包括所述主节点和多个工作节点,每个工作节点上均部署一个从自组网模块;其中,
所述主自组网模块,用于在确定所述主节点的网络地址发生变化的情况下,重新生成主节点配置信息,所述主节点配置信息至少包括令牌信息;基于所述主节点配置信息,重建所述K8S集群;在接收到部署在目标工作节点上的目标从自组网模块发送的K8S主令牌服务请求的情况下,向所述目标从自组网模块返回针对重建的所述K8S集群的加入指令,所述加入指令中携带令牌信息;所述目标工作节点为多个工作节点中的任意一个工作节点;
所述目标从自组网模块,用于在达到设定的重新加入所述K8S集群的触发条件的情况下,如果确定所述主节点的网络地址发生变化,或者所述目标工作节点的网络地址发生变化,则向所述主自组网模块发送所述K8S主令牌服务请求;接收所述主自组网模块返回的针对所述K8S集群的加入指令,基于所述加入指令中携带的所述令牌信息使所述目标工作节点重新加入所述K8S集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673971.7A CN115242856B (zh) | 2022-06-15 | 2022-06-15 | 集群重建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210673971.7A CN115242856B (zh) | 2022-06-15 | 2022-06-15 | 集群重建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242856A CN115242856A (zh) | 2022-10-25 |
CN115242856B true CN115242856B (zh) | 2024-01-23 |
Family
ID=83668666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210673971.7A Active CN115242856B (zh) | 2022-06-15 | 2022-06-15 | 集群重建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242856B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142008A (zh) * | 2010-12-02 | 2011-08-03 | 华为技术有限公司 | 分布式内存数据库的实现方法、系统、令牌控制器及内存数据库 |
CN104320459A (zh) * | 2014-10-24 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种节点管理方法和装置 |
CN113676501A (zh) * | 2020-05-13 | 2021-11-19 | 北京金山云网络技术有限公司 | 基于Kubernetes集群的应用部署方法、装置以及电子设备 |
CN114070637A (zh) * | 2021-11-23 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403401B2 (en) * | 2020-06-17 | 2022-08-02 | International Business Machines Corporation | Preventing unauthorized package deployment in clusters |
US11770251B2 (en) * | 2020-09-09 | 2023-09-26 | Cisco Technology, Inc. | Continuous integrity validation-based control plane communication in a container-orchestration system |
-
2022
- 2022-06-15 CN CN202210673971.7A patent/CN115242856B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142008A (zh) * | 2010-12-02 | 2011-08-03 | 华为技术有限公司 | 分布式内存数据库的实现方法、系统、令牌控制器及内存数据库 |
CN104320459A (zh) * | 2014-10-24 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种节点管理方法和装置 |
CN113676501A (zh) * | 2020-05-13 | 2021-11-19 | 北京金山云网络技术有限公司 | 基于Kubernetes集群的应用部署方法、装置以及电子设备 |
CN114070637A (zh) * | 2021-11-23 | 2022-02-18 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115242856A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Eisele et al. | Riaps: Resilient information architecture platform for decentralized smart systems | |
CN109274707B (zh) | 一种负载调度方法及装置 | |
US7379959B2 (en) | Processing information using a hive of computing engines including request handlers and process handlers | |
US8032780B2 (en) | Virtualization based high availability cluster system and method for managing failure in virtualization based high availability cluster system | |
CN106452836B (zh) | 主节点设置方法及装置 | |
CN112130965A (zh) | 部署分布式容器编排管理集群的方法、设备及存储介质 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN108628716B (zh) | 信息纳管系统、方法及装置 | |
CN111625497B (zh) | 一种分布式文件系统的部署方法、装置、设备及存储介质 | |
CN109391691B (zh) | 一种单节点故障下nas服务的恢复方法及相关装置 | |
CN110674095B (zh) | 一种ctdb集群扩展方法、装置、设备及可读存储介质 | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
US10802896B2 (en) | Rest gateway for messaging | |
Malik et al. | Non-intrusive deployment of blockchain in establishing cyber-infrastructure for smart city | |
CN112417001A (zh) | 基于区块链网络的数据处理方法及相关设备 | |
Subramaniyan et al. | GEMS: Gossip-enabled monitoring service for scalable heterogeneous distributed systems | |
Porter et al. | DeSARM: A Decentralized Mechanism for Discovering Software Architecture Models at Runtime in Distributed Systems. | |
CN116781564B (zh) | 一种容器云平台的网络检测方法、系统、介质和电子设备 | |
CN115242856B (zh) | 集群重建方法及系统 | |
CN112540827A (zh) | 一种基于k8s平台的负载均衡系统及实现方法 | |
CN111314114A (zh) | 一种提高RabbitMQ高可用性的部署方法和系统 | |
CN113472849B (zh) | 一种节点的管理方法、系统、设备以及介质 | |
WO2005114961A1 (en) | Distributed high availability system and method | |
CN111274022A (zh) | 服务器资源分配方法和系统 | |
US20230146880A1 (en) | Management system and management method |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |