CN111966466A - 一种容器管理方法、设备以及介质 - Google Patents
一种容器管理方法、设备以及介质 Download PDFInfo
- Publication number
- CN111966466A CN111966466A CN202010848756.7A CN202010848756A CN111966466A CN 111966466 A CN111966466 A CN 111966466A CN 202010848756 A CN202010848756 A CN 202010848756A CN 111966466 A CN111966466 A CN 111966466A
- Authority
- CN
- China
- Prior art keywords
- container
- offline
- state
- value pair
- 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.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title abstract description 43
- 238000001514 detection method Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000012544 monitoring process Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种容器管理方法,包括以下步骤:根据容器的状态对应的键值对判断容器是否离线;响应于容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点;将离线的容器的ID写入接管的工作节点在管理节点创建的第一键值对中;接管的工作节点响应于检测到第一键值对中写入离线的容器的ID,利用离线的容器的ID从管理节点上容器的配置信息对应的键值对中获取离线的容器的配置信息,以根据配置信息重启离线的容器。本发明还公开了一种计算机设备以及可读存储介质。本发明提出的方案可以实现容器的高可用机制,当容器在某个节点离线时或者节点宕机时,可以选择其他正常的节点重新进行容器的拉起操作。
Description
技术领域
本发明涉及容器领域,具体涉及一种容器管理方法、设备以及存储介质。
背景技术
随着当前云计算的发展,容器技术得到广泛的应用,在服务器平台上某些应用场景下对容器的可靠性提出了更高的要求,现有的基于docker的容器技术对高可用支持比较有限。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种容器管理方法,包括以下步骤:
根据容器的状态对应的键值对判断所述容器是否离线;
响应于所述容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点;
将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中;
所述接管的工作节点响应于检测到所述第一键值对中写入所述离线的容器的ID,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器。
在一些实施例中,根据容器的状态对应的键值对判断所述容器是否离线,进一步包括:
判断在所述管理节点上的所述容器的ID对应的键值对的租约和/或所述工作节点的IP对应的键值对的租约是否停止更新;
响应于所述ID对应的键值对的租约和/或所述IP对应的键值对的租约停止更新,将所述ID对应的键值对删除和/或将所述IP对应的键值对删除;
将对应的容器和/或对应的工作节点下的所有的容器的所述状态对应的键值对中的值由所述就绪状态更新为离线状态。
在一些实施例中,响应于所述容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述容器的所述状态对应的键值对中的值为所述离线状态,确定所述容器离线,获取所有所述IP对应的键值对以确定正在运行的若干个工作节点。
在一些实施例中,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述工作节点均处于离线状态且接收到删除所述离线的容器的指令,将所述离线的容器删除,并将所述离线的容器的所述状态对应的键值对中的值由离线状态更新为正在删除状态;
响应于所述离线的容器删除完毕,将所述状态对应的键值对中的值由正在删除状态更新为删除完毕状态。
在一些实施例中,将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中,进一步包括:
将所述离线的容器的原所述状态对应的键值对中的值由离线状态更新为接管状态。
在一些实施例中,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器,进一步包括:
在所述管理节点上创建第二键值对,并设置所述第二键值对的租约;
响应于所述接管的工作节点在所述租约内根据所述配置信息成功重启所述离线的容器,在所述管理节点上重新创建所述重启的容器的所述状态对应的键值对;
将重新创建的所述状态对应的键值对中的值设置为就绪状态,并删除原所述状态对应的键值对。
在一些实施例中,还包括:
响应于所述接管的工作节点在所述租约内根据所述配置信息未成功重启所述离线的容器,将所述第二键值对删除,并再次选择其他的接管的工作节点以重启所述离线的容器。
在一些实施例中,还包括:
响应于所述管理节点重启并检测到原所述状态对应的键值对中的值为接管状态且所述第二键值对不存在,将所述状态对应的键值对中的值由接管状态更新为离线状态,并再次选择接管的工作节点以重启所述离线的容器。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种容器管理方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种容器管理方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案可以实现容器的高可用机制,当容器在某个节点离线时或者节点宕机时,可以选择其他正常的节点重新进行容器的拉起操作,降低了对象存储服务的故障时间,保证容器对外提供业务的连续性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的容器管理方法的流程示意图;
图2为本发明的实施例提供的容器的状态种类示意图;
图3为本发明的实施例提供的工作节点上的容器状态监控流程框图;
图4为本发明的实施例提供的工作节点和管理节点上的容器接管的流程框图;
图5为本发明的实施例提供的计算机设备的结构示意图;
图6为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
需要说明的是,在本发明的实施例中,容器有六种状态:creating表示容器正在创建,进行容器所需资源的准备工作;running表示可以正常对外提供对象存储服务;offline表示容器离线,无法对外正常提供对象存储服务;Takeover表示之前离线的容器正在被其他节点接管;deleting表示容器正在被删除,清理之前容器使用的资源;deleted表示容器所用资源清理完毕,将服务器中此容器相关的键值删除。其中,由于创建和删除为耗时较久的长流程的操作,可以通过creating和deleting两种状态分别跟踪。
根据本发明的一个方面,本发明的实施例提出一种容器管理方法,如图1所示,其可以包括步骤:
S1,根据容器的状态对应的键值对判断所述容器是否离线;
S2,响应于所述容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点;
S3,将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中;
S4,所述接管的工作节点响应于检测到所述第一键值对中写入所述离线的容器的ID,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器。
本发明提出的方案可以实现容器的高可用机制,当容器在某个节点离线时或者节点宕机时,可以选择其他正常的节点重新进行容器的拉起操作,降低了对象存储服务的故障时间,保证容器对外提供业务的连续性。
在一些实施例中,步骤S1之前还可以包括:
根据工作节点的IP在所述管理节点上创建键值对,对所述IP对应的键值对设置租约,并定期更新所述IP对应的键值对的租约;
响应于所述工作节点检测到有新的容器启动,根据所述工作节点的IP和所述容器的ID在所述管理节点上创建键值对,并在所述管理节点上创建所述状态对应的键值对;
将所述状态对应的键值对中的值设置为创建状态;
响应于所述容器正常运行,将所述状态对应的键值对中的值由创建状态更新为就绪状态;
对所述容器的ID对应的键值对设置租约,并定时检测所述容器的状态以定期更新所述容器的ID对应的键值对的租约。
具体的,可以首先在集群中管理节点上部署服务器,用以提供分布式键值对存储功能。并在集群中的工作节点上部署容器运行状态监控服务,用于将容器状态信息注册到服务器。在一些实施例中,服务器可以是ZooKeeper服务器或者etcd服务器。
其中,如图3所示,容器运行状态监控服务可以实现向管理节点上的服务器注册本节点的IP信息,并基于IP信息在服务器上创建IP对应的键值对(/member/node_ip),这里的node_ip为节点实际的ip地址。同时在此键值对上设置租约,并定期更新租约防止其超时,租约超时后(即节点宕机)服务器会自动将租约对应的IP对应的键值对(/member/node_ip)删除。
在一些实施例中,当节点上有容器刚刚创建启动时,可以通过docker ps命令查询容器ID,并基于ID创建容器的ID对应的键值对(/member/node_ip/container/container_id)。然后查询本节点上运行的容器的配置信息,例如容器对外服务的IP地址,端口信息,使用的容器镜像,配置文件目录,容器运行状态和更新时间等等,然后根据查询到的配置信息在服务器上创建对应的键值对,例如记录容器名称的键值对可以是/member/node_ip/container/container_id/Name,记录容器对外服务IP的键值对可以是/member/node_ip/container/container_id/IP,记录容器对外服务端口的键值对可以是/member/node_ip/container/container_id/Port,记录配置文件目录的键值对可以是/member/node_ip/container/container_id/ConfigDir。并同时创建状态对应的价键值对(/member/node_ip/container/container_id/State),并将状态对应的键值对中的值设置为创建状态(creating),表示容器服务尚未进入就绪状态。
需要说明的是,容器在初始创建时,会有初始化的过程,此时容器则处于创建状态。
在一些实施例中,容器运行状态监控服务通过以下条件判断容器是否正常运行:通过docker ps查询容器是否正在运行,判断容器内部提供的子服务是否正常运行,判断子服务是否正常对外提供服务。当上面条件均满足时,将状态对应的键值对(/member/node_ip/container/container_id/State)中的值更新为就绪状态(running),并对容器的ID对应的键值对设置租约,例如租约超时时间可以为25秒,每隔3秒钟查询一次容器状态,如果上述条件均满足时,则定期更新租约。当上述条件不能同时满足时不再更新租约,并将状态对应的键值对(/member/node_ip/container/container_id/State)中的值更新为离线状态(offline),服务器上的容器的ID对应的键值对(/member/node_ip/container/container_id)会因为租约超时被删除。
例如,容器为提供对象存储服务的容器,则可以通过docker ps查询容器是否正在运行,并在容器内部通过swift-init main status查询对象存储proxy-server、container-server、account-server、object-server四个子服务的状态是否为运行,这四个服务分别提供rest api对外接口、桶、租户、对象的管理功能。然后可以通过rest api完成对象存储中admin用户的认证并获取token,主要保证对象存储服务可以与keystone等用户认证服务正常通信,并通过rest api完成admin用户对象存储空间信息查询,以判断上述四个自服务是否能够正常对外提供服务。
在一些实施例中,步骤S1,根据容器的状态对应的键值对判断所述容器是否离线,进一步包括:
S11,判断在所述管理节点上的所述容器的ID对应的键值对的租约和/或所述工作节点的IP对应的键值对的租约是否停止更新;
S12,响应于所述ID对应的键值对的租约和/或所述IP对应的键值对的租约停止更新,将所述ID对应的键值对删除和/或将所述IP对应的键值对删除;
S13,将对应的容器和/或对应的工作节点下的所有的容器的所述状态对应的键值对中的值由所述就绪状态更新为离线状态。
具体的,可以在集群的管理节点上部署HA调度程序,用于监控服务器中的键值对的变化,在一些实施例中,以下两种情况下可以确定某节点上的容器离线,并将状态对应的键值对中的值由所述就绪状态更新为离线状态。
1、节点的IP对应的键值对(/member/node_ip)被删除,表示某个节点没有及时更新此键值对对应的租约,从而确定此节点离线,同时确定此节点上的所有容器离线,并将该节点下的所有容器的状态对应的键值对中的值更新为离线状态。
2、容器的ID对应的键值对(/member/node_ip/container/container_id)被删除,表示节点没有及时更新某容器对应的键值租约,从而确定容器离线,但是节点尚在运行,则只将该节点下的该容器的状态对应的键值对中的值更新为离线状态。
需要说明的是,当工作节点与服务器的网络中断时也会导致租约更新失败,此时仍需要将对应的容器的状态对应的键值对中的值更新为离线状态。同时容器状态监控服务会主动停止本节点的容器,以防止容器在其他节点拉起时出现多个容器副本运行的情况。也即对容器的状态对应的键值对中的值的更新可以是当工作节点与管理节点断开连接后且被动导致租约到期后,管理节点进行更新,也可以是工作节点上的容器状态监控服务监控到容器的状态出问题,主动不更新租约导致租约到期后,管理节点在进行更新。
在一些实施例中,响应于所述容器离线,步骤S2,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述容器的所述状态对应的键值对中的值为所述离线状态,确定所述容器离线,获取所有所述IP对应的键值对以确定正在运行的若干个工作节点。
具体的,如图4所示,当集群中某容器离线时,可以通过HA调度程序根据服务器中/member键值下node_ip列表获取当前正在运行的节点,然后选择某个节点进行容器的重新拉起操作,向此节点对应的第一键值对(/member/node_ip/task)下写入拉起操作对应的容器ID。
在一些实施例中,步骤S2,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述工作节点均处于离线状态且接收到删除所述离线的容器的指令,将所述离线的容器删除,并将所述离线的容器的所述状态对应的键值对中的值由离线状态更新为正在删除状态;
响应于所述离线的容器删除完毕,将所述状态对应的键值对中的值由正在删除状态更新为删除完毕状态。
具体的,如图2所示,如果集群中其他节点均未处于运行状态,且接收到了用户发出的删除离线的容器的指令,则将对应的容器删除,并将所述离线的容器的所述状态对应的键值对中的值由离线状态更新为正在删除状态,如果容器已经删除完毕,则可以根据用户发出的已确认删除完毕的指令,将所述状态对应的键值对中的值由正在删除状态(deleting)更新为删除完毕状态(deleted)。
需要说明的是,deleting和deleted需要根据用户相关的指令才能进行更新,且如图2所示,只有当容器处于running状态或处于offline状态时,才能进行容器的删除。当容器处于running状态时,响应于接收到删除所述容器的指令,将待删除的容器的所述状态对应的键值对中的值由就绪状态更新为正在删除状态;响应于所述待删除的容器删除完毕,将所述状态对应的键值对中的值由正在删除状态更新为删除完毕状态。当容器处于offline状态且集群中不存在正常运行的节点,则会根据指令进行容器的删除操作,否则会进行容器的重新拉起操作,不会进行根据指令进行容器的删除操作。
在一些实施例中,步骤S3,将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中,进一步包括:
将所述离线的容器的原所述状态对应的键值对中的值由离线状态更新为接管状态。
具体的,如图2所示,当该容器的ID被写入其他节点的第一键值对(/member/node_ip/task)下后,该容器的在原节点下的状态对应的键值对中的值由离线状态(offline)更新为接管状态(takeover),表示该容器正在接管。如果容器在此节点接管失败,重新将在原节点下的状态对应的键值对中的值设置为offline。
在一些实施例中,步骤S4,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器,进一步包括:
S41,在所述管理节点上创建第二键值对,并设置所述第二键值对的租约;
S42,响应于所述接管的工作节点在所述租约内根据所述配置信息成功重启所述离线的容器,在所述管理节点上重新创建所述重启的容器的所述状态对应的键值对;
S43,将重新创建的所述状态对应的键值对中的值设置为就绪状态,并删除原所述状态对应的键值对。
具体的,当被选择执行容器拉起操作的节点上的容器监控服务观察到本节点对应的第一键值对(/member/node_ip/task)中添加了容器ID,则确定有新的拉起操作需要执行,从第一键值对中获取需要拉起的容器ID,并根据容器ID在服务器中查询此容器对应的配置信息,例如容器名称、容器使用的镜像、容器对外服务的IP及端口信息、及容器的配置文件目录等。然后执行容器的创建操作。此时,在管理节点上创建被选择执行容器拉起操作的节点对应的第二键值对(/member/node_ip/container/container_id/TakeoverLease),并设定租约期限(例如300秒),如果该节点在租约时限内成功将离线的容器启动,则在管理节点上重新创建所述重启的容器的所述状态对应的键值对,并将重新创建的所述状态对应的键值对中的值设置为就绪状态,同时删除原所述状态对应的键值对。
需要说明的是,如图2所示,由于重新启动离线的节点不需要初始化的过程,因此在启动过程中没有creating状态,只要容器运行状态监控服务根据上述三个条件判断容器正常运行,则将容器的状态设置为running。
在一些实施例中,步骤S4,还包括:
S44,响应于所述接管的工作节点在所述租约内根据所述配置信息未成功重启所述离线的容器,将所述第二键值对删除,并再次选择其他的接管的工作节点以重启所述离线的容器。
具体的,如图2所示,如果在租约时限未成功将离线的容器启动,也即容器的状态没有恢复为running,则会因为TakeoverLease租约到期导致第二键值对删除,集群管理节点上的HA调度服务观察到键值对删除事件后,重新将容器的原状态对应的键值对中的值由Takeover设置为offline,以准备让其他集群节点进行接管。
在一些实施例中,步骤S4,还包括:
响应于所述管理节点重启并检测到原所述状态对应的键值对中的值为接管状态且所述第二键值对不存在,将所述状态对应的键值对中的值由接管状态更新为离线状态,并再次选择接管的工作节点以重启所述离线的容器。
具体的,在容器接管过程中如果发生集群管理节点重启,HA调度服务在启动时首先检查容器的状态是否为takeover,如果状态对应的键值对中的值为takeover,但是第二键值对(/member/node_ip/container/container_id/TakeoverLease)不存在,说明在节点重启过程中服务器存在事件丢失,则需要将离线的容器的原所述状态对应的键值对中的值重新更新为offline,准备进行容器的再次拉起操作。
本发明提供的方案通过容器状态监控服务利用服务器的键值对租约机制,当容器正常运行时监控程序将容器状态更新到服务器,在/member下创建相应的键值对,并定时更新键值租约。位于集群管理节点上HA调度程序监控/member下键值对变化,当容器离线或节点宕机时会因为容器监控程序停止更新键值租约导致容器对应的键值对被删除,HA调度程序从服务器记录的当前运行的节点中选择某一节点进行swift容器接管,向相应节点对应的task键值对下写入需要接管的容器ID。容器监控服务同样观察到本节点对应的task键发生变化,从中读取要拉起的容器Id,并从服务器记录中根据容器Id查询容器使用的镜像、ip、端口、配置文件目录等信息,然后将容器在新节点重新启动。
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种容器管理方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种容器管理方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种容器管理方法,其特征在于,包括以下步骤:
根据容器的状态对应的键值对判断所述容器是否离线;
响应于所述容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点;
将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中;
所述接管的工作节点响应于检测到所述第一键值对中写入所述离线的容器的ID,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器。
2.如权利要求1所述的方法,其特征在于,根据容器的状态对应的键值对判断所述容器是否离线,进一步包括:
判断在所述管理节点上的所述容器的ID对应的键值对的租约和/或所述工作节点的IP对应的键值对的租约是否停止更新;
响应于所述ID对应的键值对的租约和/或所述IP对应的键值对的租约停止更新,将所述ID对应的键值对删除和/或将所述IP对应的键值对删除;
将对应的容器和/或对应的工作节点下的所有的容器的所述状态对应的键值对中的值由所述就绪状态更新为离线状态。
3.如权利要求2所述的方法,其特征在于,响应于所述容器离线,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述容器的所述状态对应的键值对中的值为所述离线状态,确定所述容器离线,获取所有所述IP对应的键值对以确定正在运行的若干个工作节点。
4.如权利要求3所述的方法,其特征在于,获取正在运行的若干个工作节点并选择其中一个作为接管的工作节点,进一步包括:
响应于所述工作节点均处于离线状态且接收到删除所述离线的容器的指令,将所述离线的容器删除,并将所述离线的容器的所述状态对应的键值对中的值由离线状态更新为正在删除状态;
响应于所述离线的容器删除完毕,将所述状态对应的键值对中的值由正在删除状态更新为删除完毕状态。
5.如权利要求1所述的方法,其特征在于,将离线的所述容器的ID写入所述接管的工作节点在管理节点创建的第一键值对中,进一步包括:
将所述离线的容器的原所述状态对应的键值对中的值由离线状态更新为接管状态。
6.如权利要求5所述的方法,其特征在于,利用所述离线的容器的ID从所述管理节点上所述容器的配置信息对应的键值对中获取所述离线的容器的配置信息,以根据所述配置信息重启所述离线的容器,进一步包括:
在所述管理节点上创建第二键值对,并设置所述第二键值对的租约;
响应于所述接管的工作节点在所述租约内根据所述配置信息成功重启所述离线的容器,在所述管理节点上重新创建所述重启的容器的所述状态对应的键值对;
将重新创建的所述状态对应的键值对中的值设置为就绪状态,并删除原所述状态对应的键值对。
7.如权利要求6所述的方法,其特征在于,还包括:
响应于所述接管的工作节点在所述租约内根据所述配置信息未成功重启所述离线的容器,将所述第二键值对删除,并再次选择其他的接管的工作节点以重启所述离线的容器。
8.如权利要求6所述的方法,其特征在于,还包括:
响应于所述管理节点重启并检测到原所述状态对应的键值对中的值为接管状态且所述第二键值对不存在,将所述状态对应的键值对中的值由接管状态更新为离线状态,并再次选择接管的工作节点以重启所述离线的容器。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-8任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-8任意一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010848756.7A CN111966466A (zh) | 2020-08-21 | 2020-08-21 | 一种容器管理方法、设备以及介质 |
PCT/CN2021/103320 WO2022037268A1 (zh) | 2020-08-21 | 2021-06-29 | 一种容器管理方法、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010848756.7A CN111966466A (zh) | 2020-08-21 | 2020-08-21 | 一种容器管理方法、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111966466A true CN111966466A (zh) | 2020-11-20 |
Family
ID=73389935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010848756.7A Withdrawn CN111966466A (zh) | 2020-08-21 | 2020-08-21 | 一种容器管理方法、设备以及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111966466A (zh) |
WO (1) | WO2022037268A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220418A (zh) * | 2021-05-07 | 2021-08-06 | 烽火通信科技股份有限公司 | 一种基于容器的资源管理方法和装置 |
CN113703866A (zh) * | 2021-08-25 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及系统 |
WO2022037268A1 (zh) * | 2020-08-21 | 2022-02-24 | 苏州浪潮智能科技有限公司 | 一种容器管理方法、设备以及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437686B2 (en) * | 2017-09-29 | 2019-10-08 | Ca, Inc. | Failover service to support high availability of monolithic software applications |
CN110535717B (zh) * | 2019-08-16 | 2021-10-15 | 济南浪潮数据技术有限公司 | 一种容器检测方法及装置 |
CN111966466A (zh) * | 2020-08-21 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种容器管理方法、设备以及介质 |
-
2020
- 2020-08-21 CN CN202010848756.7A patent/CN111966466A/zh not_active Withdrawn
-
2021
- 2021-06-29 WO PCT/CN2021/103320 patent/WO2022037268A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022037268A1 (zh) * | 2020-08-21 | 2022-02-24 | 苏州浪潮智能科技有限公司 | 一种容器管理方法、设备以及介质 |
CN113220418A (zh) * | 2021-05-07 | 2021-08-06 | 烽火通信科技股份有限公司 | 一种基于容器的资源管理方法和装置 |
CN113703866A (zh) * | 2021-08-25 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及系统 |
CN113703866B (zh) * | 2021-08-25 | 2024-04-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022037268A1 (zh) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966466A (zh) | 一种容器管理方法、设备以及介质 | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
US8214823B2 (en) | Cluster system, process for updating software, service provision node, and computer-readable medium storing service provision program | |
GB2505644A (en) | Managing network configurations | |
CN106657167B (zh) | 管理服务器、服务器集群、以及管理方法 | |
WO2016197346A1 (zh) | 一种虚拟网络功能的生命周期管理方法,及装置 | |
CN111464603B (zh) | 一种服务器扩容方法及扩容系统 | |
EP3886481A1 (en) | Method for achieving disaster recovery and related device | |
CN112153133B (zh) | 一种数据共享方法、设备以及介质 | |
CN106506490A (zh) | 一种分布式计算控制方法以及分布式计算系统 | |
CN109788068A (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
CN112380062A (zh) | 一种基于系统备份点多次快速恢复系统的方法及系统 | |
US11397632B2 (en) | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN111342986B (zh) | 分布式节点管理方法及装置、分布式系统、存储介质 | |
US20050234919A1 (en) | Cluster system and an error recovery method thereof | |
CN113626054A (zh) | 一种业务服务更新方法及装置 | |
CN113055236B (zh) | 集群业务节点故障的处理方法、装置、设备及存储介质 | |
CN114598711A (zh) | 一种数据迁移方法、装置、设备及介质 | |
CN113900728A (zh) | 同步配置的方法、系统、电子设备及存储介质 | |
CN114064349A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
CN112714143A (zh) | 分布式存储系统的服务协调方法、装置及电子设备 | |
CN117407125B (zh) | Pod高可用实现方法、装置、设备及可读存储介质 | |
CN114422567B (zh) | 数据请求的处理方法、装置、系统、计算机设备及介质 | |
CN113254159B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201120 |