本技术公开了一种基于容器化应用管理系统的故障隔离方法和系统,属于容器化应用管理的技术领域,所述故障隔离方法包括容器隔离的方法:对容器进行健康监测,获得一个或多个故障容器组;获取管理故障容器组的Deployment;判断所述Deployment是否具有多个故障容器组;若是,将Deployment的一个或多个第一故障容器组进行隔离,并终止第二故障容器组。容器隔离的过程中,保留故障应用POD,方便排查故障原因;同一Deployment下的多个故障容器组,仅隔离其中的部分故障容器组,而终止或杀死其余的故障容器组,减少隔离造成的资源消耗。
背景技术
随着容器化应用上云的趋势,越来越多的企业选择容器化应用管理系统(Kubernetes)进行集群环境容器化部署业务应用。
基于Kubernetes的集群容器环境特性,应用容器组(pod)调度到某个节点后,由于主机本身原因或其他原因导致应用pod没法运行成功,Kubelet会不停的重启容器,但不会重启应用pod,导致应用pod没法重新调度到合适的节点上,业务pod只会在不合适的节点上不停重启。
当应用发生故障时,Kubelet会重启容器,删除故障容器,导致应用发生故障时的“现场”(故障发生时的应用容器)没有保留,不方便回溯排查应用报错原因。
当kubernetes集群内主机发生故障时,会影响故障主机上运行的业务pod。只能通过人工介入驱逐,故障主机导致的应用故障恢复较慢,无法实时隔离故障主机,实时驱逐业务,以减小对业务的影响。
因此为了更好地利用kubernetes集群,需要突破故障隔离的机制。
实现思路