一种容器集群保护方法、装置及存储介质制造方法及图纸

技术编号:37200115 阅读:20 留言:0更新日期:2023-04-20 22:56
本发明专利技术涉及一种容器集群保护方法、装置及存储介质。当Kubernetes集群中Node节点出现宕机时,将宕机Node节点上的全部容器实例名称记录到容器实例和宕机节点对应表中,并在运行容器实例名称所对应容器实例的Node节点宕机时,将Node节点记录到容器实例和宕机节点对应表中相应的容器实例名称下,且当前宕机的Node节点与在前宕机的Node节点时序排列形成宕机Node节点列表;若容器实例和宕机节点对应表中一容器实例名称对应的宕机Node节点列表长度超过设定长度阈值,则判断该容器实例名称对应的容器实例存在异常,将异常容器实例熔断,使异常容器实例无法在Node节点重建,避免异常容器实例重建执行导致Kubernetes集群中更多Node节点的宕机。Node节点的宕机。Node节点的宕机。

【技术实现步骤摘要】
一种容器集群保护方法、装置及存储介质


[0001]本专利技术涉及集群保护
,尤其涉及一种容器集群保护方法、装置及存储介质。

技术介绍

[0002]容器技术在轻量和弹性等方面展示的明显的优势,但容器存在隔离性弱的问题。隔离性弱的问题给容器也带来了隐藏的风险,比如由于容器资源使用限制配置不当、内部应用本身异常或者病毒漏洞等导致单个容器异常,而该异常容器可能会将整个节点资源耗尽进而导致整个节点异常,从而导致节点上所有容器异常。
[0003]Kubernetes是容器编排引擎中的实时标准,通过Kubernetes可以构建容器集群,其中一个核心特性就是副本保持,即在当前节点异常后,当前节点上的容器会在其他节点上重新建立新的容器实例。Kubernetes集群由两类节点组成,Master和Node。在Master上运行etcd、API Server、Controller Manager和Scheduler四个组件,其中API Server、Controller Manager和Scheduler构成Kubernetes的总控中心,负责对集群中所有资源进行管控和调度。在每个Node上运行Kubelet、Proxy和Docker Deamon三个组件,负责对本节点上的Pod的生命周期进行管理,并实现服务代理的功能。在Master和Node节点上都可运行Kubectl命令行工具,Kubectl提供了Kubernetes的集群管理工具集。etcd是高可用的key/value存储系统,用于持久化存储集群中所有的资源对象,API Server则提供了操作etcd的封装接口API,以REST方式提供服务,用于集群资源对象的增删改查及监听资源变化的接口。Controller Manager作为集群内部的管理控制中心,负责集群内Node、Pod副本、服务端点、命名空间、服务账号、资源定额等的管理,确保集群处于预期的工作状态。比如在某个Node意外宕机时,Controller Manager会在集群中的其他节点上自动补齐Pod副本。Controller Manager内部包含了副本控制器(Replication Controller),副本控制器的核心作用时确保在任何时候,集群中一个资源对象所关联的Pod保持一定数量的Pod副本。这一机制能够提高容灾能力,减少因节点崩溃造成的损失,但也带来一个问题,如果由于异常容器导致的节点宕机,该容器在其他节点重建时,会继续导致其他节点变为异常或者宕机,如果异常容器在不同节点间反复重建,就会导致整个集群处于瘫痪状态。传统的运维模式,是通过人为发现后,进行日志分析得哪个容器实例有问题,该流程从发现现象到解决问题时间周期一般很长,在解决问题前,集群有可能已经瘫痪无法继续运行。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术提供一种容器集群保护方法、装置及存储介质。能够在集群因异常容器陷入瘫痪之前,自动地将异常容器检测出来,并对异常容器进行熔断,避免整个集群进一步故障。
[0005]第一方面,本专利技术提供一种容器集群保护方法,包括:当Kubernetes集群中Node节点出现宕机时,将宕机Node节点上的全部容器实例名称记录到容器实例和宕机节点对应表
中,并在运行容器实例名称所对应容器实例的Node节点宕机时,将Node节点记录到容器实例和宕机节点对应表中相应的容器实例名称下,且当前宕机的Node节点与在前宕机的Node节点时序排列形成宕机Node节点列表;
[0006]若容器实例和宕机节点对应表中一容器实例名称对应的宕机Node节点列表长度超过设定长度阈值,则判断该容器实例名称对应的容器实例存在异常,将异常容器实例熔断,使异常容器实例无法在Node节点重建。
[0007]更进一步地,预设时间窗口,对于任一实例容器名称对应的宕机Node节点列表,若在预设的时间窗口内连续的出现宕机Node节点列表变动,则保留该实例容器宕机Node节点列表,若在预设的时间窗口内无连续的出现宕机Node节点列表变动,则清空宕机Node节点列表中的内容。
[0008]更进一步地,预设的时间窗口参考单Node节点宕机发现时间最大值和Node节点中最多容器实例重建完成的重建时间的和配置。
[0009]更进一步地,宕机Node节点中的容器实例进行重建时,如果给指定节点名称标签,且亲和性为强制,会根据节点名称标签匹配相应的Node节点,在所匹配到的Node节点中重建宕机Node节点中的容器实例,对于异常容器实例,给异常容器实例配置为Kubernetes集群中不存在的节点名称标签,使根据节点名称标签在相应Node节点进行异常实例容器调度重建时失败,实现异常容器实例的熔断。
[0010]更进一步地,异常容器实例熔断时,删除容器实例和宕机节点对应表中相应的异常容器实例名称及其宕机Node节点列表;将容器实例和宕机节点对应表中被删除的异常容器实例名称及宕机Node节点列表的新增到异常容器实例列表中;基于异常容器实例列表中的各个异常容器实例名称及宕机Node节点列表进行日志生成或宕机Node节点分析或宕机Node节点恢复和容器实例恢复。
[0011]更进一步地,宕机Node节点恢复和容器实例恢复包括:针对容器实例,周期性地定期建立相应的副本作为恢复副本,若容器实例名称对应的容器实例异常导致Node节点崩溃前留下崩溃印记时,重启Node节点,Node节点在启动容器实例前若先检测到崩溃印记,则获取异常容器实例的恢复副本取代原异常容器实例运行。
[0012]更进一步地,保留设定数量的恢复副本,从离异常容器实例导致宕机时间最近的恢复副本开始,逆时序遍历全部恢复副本尝试恢复宕机Node节点,若被遍历到的恢复副本仍导致Node节点崩溃,继续尝试以更久远的恢复副本尝试恢复,若全部恢复副本无法恢复,则生成相应日志并给出相应提示。
[0013]更进一步地,在进行Kubernetes集群运维时,向Kubernetes集群输入运维开始信息,Kubernetes集群基于运维开始信息自动禁止容器集群保护,运维结束时,向Kubernetes集群输入运维结束信息自动开启容器集群保护。
[0014]第二方面,本专利技术提供一种容器集群保护装置,包括:处理单元,总线单元和存储单元,其中,所述总线单元连接存储单元、处理单元,所述存储单元存储计算机程序,计算机程序被处理单元执行时实现所述的容器集群保护方法。
[0015]第三方面,本专利技术提供一种实现容器集群保护方法的存储介质,所述存储介质存储计算机程序,所述计算机程序被处理器执行时实现所述的容器集群保护方法。
[0016]本专利技术实施例提供的上述技术方案与现有技术相比具有如下优点:
[0017]本专利技术当Kubernetes集群中Node节点出现宕机时,将宕机Node节点上的全部容器实例名称记录到容器实例和宕机节点对应表中,并在运行容器实例名称所对应容器实例的Node节点宕机时,将Node节点记录到容器实例和宕机节点对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器集群保护方法,其特征在于,包括:当Kubernetes集群中Node节点出现宕机时,将宕机Node节点上的全部容器实例名称记录到容器实例和宕机节点对应表中,并在运行容器实例名称所对应容器实例的Node节点宕机时,将Node节点记录到容器实例和宕机节点对应表中相应的容器实例名称下,且当前宕机的Node节点与在前宕机的Node节点时序排列形成宕机Node节点列表;若容器实例和宕机节点对应表中一容器实例名称对应的宕机Node节点列表长度超过设定长度阈值,则判断该容器实例名称对应的容器实例存在异常,将异常容器实例熔断,使异常容器实例无法在Node节点重建。2.根据权利要求1所述的容器集群保护方法,其特征在于,预设时间窗口,对于任一实例容器名称对应的宕机Node节点列表,若在预设的时间窗口内连续的出现宕机Node节点列表变动,则保留该实例容器宕机Node节点列表,若在预设的时间窗口内无连续的出现宕机Node节点列表变动,则清空宕机Node节点列表中的内容。3.根据权利要求2所述的容器集群保护方法,其特征在于,预设的时间窗口参考单Node节点宕机发现时间最大值和Node节点中最多容器实例重建完成的重建时间的和配置。4.根据权利要求1所述的容器集群保护方法,其特征在于,宕机Node节点中的容器实例进行重建时,如果给指定节点名称标签,且亲和性为强制,会根据节点名称标签匹配相应的Node节点,在所匹配到的Node节点中重建宕机Node节点中的容器实例,对于异常容器实例,给异常容器实例配置为Kubernetes集群中不存在的节点名称标签,使根据节点名称标签在相应Node节点进行异常实例容器调度重建时失败,实现异常容器实例的熔断。5.根据权利要求1所述的容器集群保护方法,其特征在于,异常容器实例熔断时,删除容器实例和宕机节点对应表中相应的异常容器实例名称及其宕机Node节点列表;将容器实例...

【专利技术属性】
技术研发人员:郭春庭
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1