CN109981782B - 用于集群脑裂的远端存储异常处理方法及系统 - Google Patents

用于集群脑裂的远端存储异常处理方法及系统 Download PDF

Info

Publication number
CN109981782B
CN109981782B CN201910242222.7A CN201910242222A CN109981782B CN 109981782 B CN109981782 B CN 109981782B CN 201910242222 A CN201910242222 A CN 201910242222A CN 109981782 B CN109981782 B CN 109981782B
Authority
CN
China
Prior art keywords
node
worker node
abnormal
master
determining
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
Application number
CN201910242222.7A
Other languages
English (en)
Other versions
CN109981782A (zh
Inventor
张勇
石光银
高传集
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201910242222.7A priority Critical patent/CN109981782B/zh
Publication of CN109981782A publication Critical patent/CN109981782A/zh
Application granted granted Critical
Publication of CN109981782B publication Critical patent/CN109981782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于集群脑裂的远端存储异常处理方法及系统,属于集群脑裂场景下异常处理领域,要解决的技术问题为如何在有状态pod的情况下及时检测异常worker节点并处理异常worker节点;其方法包括:检测master集群中的leader节点;检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;解除存储卷与异常worker节点的映射关系,并删除异常worker节点。其系统包括leader节点检测模块、异常worker节点检测模块、异常worker节点处理模块。

Description

用于集群脑裂的远端存储异常处理方法及系统
技术领域
本发明涉及集群脑裂场景下异常处理领域,具体地说是一种用于集群脑裂的远端存储异常处理方法及系统。
背景技术
随着容器技术在公有云、私有云、混合云等领域越来越广泛的应用,以及kubernetes已经成为容器领域的编排管理事实上的标准,用户在实际使用中不可避免的会遇到kubernetes集群脑裂的问题。
一般来说,如果产生脑裂故障的worker节点上所有pod都是无状态的,则kubernetes通过自身的状态监控,选主等机制就能在其余正常worker节点上运行新的pod,无需介入,用户也无感知;这里要讨论的是有状态pod的情况,由于远端挂载的存储卷状态还是“正在使用”,这时kubernetes调度到其他worker节点上运行新的pod时都会报错:“Unable to mount volumes for pod”。这种情形必须主动介入才能让新pod正常运行。
基于上述分析,如何在有状态pod的情况下及时检测异常worker节点并处理异常worker节点,以使得新pod正常运行,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供一种用于集群脑裂的远端存储异常处理方法及系统,来解决如何在有状态pod的情况下及时检测异常worker节点并处理异常worker节点的问题。
第一方面,本发明提供一种用于集群脑裂的远端存储异常处理方法,包括:
检测master集群中的leader节点;
检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;
解除存储卷与异常worker节点的映射关系,并删除异常worker节点。
通常情况下,kubernetes集群部署方案都会部署3个或5个etcd节点,组成一个etcd集群,master节点负责管理集群,提供集群的资源数据访问入口,由Worker节点承接实际的业务负载。
集群脑裂具体分以下场景:
1、master节点部分坏了
Worker节点分两种情况:
(1.1)所有Worker节点和坏掉的master节点一起;
(1.2)Worker节点没有全部和坏掉的master节点一起
2、所有master节点都坏了
apiserver无法工作,集群down掉;
3、master好的,若干Worker节点坏了。
当集群中的网络出现故障时对服务的选主影响不是很大,因为scheduler和controller-manager是依赖Etcd进行选主的,在网络故障后,可以和Etcd通信的主机依然可以按照之前的逻辑进行选主,就算集群被切分,Etcd也可以保证同一时刻只有一个节点的服务处于leader状态。
在上述所说的通用3etcd的部署拓扑图中:
一个etcd坏了(二个etcd可用),集群可正常使用;
两个etcd坏了(一个etcd可用),原pod可正常使用,但是已无法新建pod;
即etcd集群,需要至少2个etcd节点才可以正常工作。总之,kubernetes的master选举机制最终会选出可用的master。
基于上述,本实施方式中,先取出maste集群中的leader节点,在该leader节点上运行脚本检查每个Worker节点的状态以及连通性,得到非ready状态或不通的异常worker节点,对于异常worker节点detach其volume,再将pod kubectl delete掉,从而达到防脑裂效果。
作为优选,检测master集群中的leader节点,包括:
通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是。
作为优选,检查每个worker节点的状态以及连通性,包括:
执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点。
作为优选,解除存储卷与异常worker节点的映射关系,包括:
执行umount命令,将映射路径从异常worker节点上umount掉;
调用detach接口,将异常worker节点和远端存储的映射关系删掉。
作为优选,调用kubectl delete命令删除异常worker节点。
第二方面,本发明提供一种用于集群脑裂的远端存储异常处理系统,包括:
leader节点检测模块,用于检测master集群中的leader节点;
异常worker节点检测模块,用于检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;
异常worker节点处理模块,用于解除存储卷与异常worker节点的映射关系,并删除异常worker节点。
作为优选,leader节点检测模块为具有如下功能的模块:通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是。
作为优选,异常worker节点检测模块为具有如下功能的模块:
执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点。
作为优选,异常worker节点处理模块为具有如下功能的模块:
执行umount命令,将映射路径从异常worker节点上umount掉;
调用detach接口,将异常worker节点和远端存储的映射关系删掉;
调用kubectl delete命令删除异常worker节点。
本发明的用于集群脑裂的远端存储异常处理方法及系统具有以下优点:可以在集群脑裂场景下第一时间发现问题并解决问题,对非集群脑裂场景、worker节点不明原因出现状态异常的情况也能解决其远端存储的问题,能够极大提高云平台的技术特性和产品竞争力。
附图说明
为了更清除地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
附图1为实施例1用于集群脑裂的远端存储异常处理方法流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供用于集群脑裂的远端存储异常处理方法及系统,用于解决如何在有状态pod的情况下及时检测异常worker节点并处理异常worker节点的技术问题。
本发明中:
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Etcd:一个高可用的分布式键值数据库。
Master节点:kubernetes集群中的管理节点,负责管理集群,提供集群的资源数据访问入口。
worker节点:Kubernetes集群架构中运行Pod的服务节点,承接实际的业务负载。
集群脑裂:kubernetes集群中多个master节点由于种种原因分隔成相互之间不通的子集群。
实施例1:
如附图1所示,本发明的用于集群脑裂的远端存储异常处理方法,包括如下步骤:
S100、检测master集群中的leader节点;
S200、检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;
S300、解除存储卷与异常worker节点的映射关系,并删除异常worker节点。
其中,步骤S100中,检测master集群中的leader节点采用如下方法:通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是。
步骤S200中,检查每个worker节点的状态以及连通性,采用如下方法:执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点。
步骤S300中,解除存储卷与异常worker节点的映射关系,采用如下方法:执行umount命令,将映射路径从异常worker节点上umount掉;调用detach接口,将异常worker节点和远端存储的映射关系删掉。
步骤S300中,解除存储卷与异常worker节点的映射关系后,调用kube-ctl delete命令删除异常worker节点。
实施例2:
本发明的用于集群脑裂的远端存储异常处理系统,包括驾leader节点检测模块、异常worker节点检测模块和异常worker节点处理模块,上述模块配合检测异常worker节点,并处理leader节点。
其中leader节点检测模块,用于检测master集群中的leader节点,该模块执行如下操作:通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是。
异常worker节点检测模块,用于检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点。该模块执行如下操作:执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点。
异常worker节点处理模块,用于解除存储卷与异常worker节点的映射关系,并删除异常worker节点。该模块执行如下操作;执行umount命令,将映射路径从异常worker节点上umount掉;调用detach接口,将异常worker节点和远端存储的映射关系删掉;调用kubectl delete命令删除异常worker节点。
本发明的用于集群脑裂的远端存储异常处理系统可执行实施例1公开的用于集群脑裂的远端存储异常处理方法。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (2)

1.用于集群脑裂的远端存储异常处理方法,其特征在于包括:
检测master集群中的leader节点;
检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;
解除存储卷与异常worker节点的映射关系,并调用kubectl delete命令删除异常worker节点;
检测master集群中的leader节点,包括:
通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是;
检查每个worker节点的状态以及连通性,包括:
执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点;
解除存储卷与异常worker节点的映射关系,包括:
执行umount命令,将映射路径从异常worker节点上umount掉;
调用detach接口,将异常worker节点和远端存储的映射关系删掉。
2.用于集群脑裂的远端存储异常处理系统,其特征在于包括:
leader节点检测模块,用于检测master集群中的leader节点;
异常worker节点检测模块,用于检查每个worker节点的状态以及连通性,得到的非ready状态或者不连通的worker节点为异常worker节点;
异常worker节点处理模块,用于解除存储卷与异常worker节点的映射关系,并删除异常worker节点;
leader节点检测模块为具有如下功能的模块:通过kubectl命令取得命名空间为kube-system kube-scheduler下的端点,从中查找本master节点是否在其中,如果在其中则为master集群中的leader节点,否则不是;
异常worker节点检测模块为具有如下功能的模块:
执行kubectl命令获取节点信息完整描述,查找其中有无KubeletReady,如果无则为异常worker节点,如果有则ping对应的slave节点若干次,如果ping不通则为异常worker节点;
异常worker节点处理模块为具有如下功能的模块:
执行umount命令,将映射路径从异常worker节点上umount掉;
调用detach接口,将异常worker节点和远端存储的映射关系删掉;
调用kubectl delete命令删除异常worker节点。
CN201910242222.7A 2019-03-28 2019-03-28 用于集群脑裂的远端存储异常处理方法及系统 Active CN109981782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910242222.7A CN109981782B (zh) 2019-03-28 2019-03-28 用于集群脑裂的远端存储异常处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910242222.7A CN109981782B (zh) 2019-03-28 2019-03-28 用于集群脑裂的远端存储异常处理方法及系统

Publications (2)

Publication Number Publication Date
CN109981782A CN109981782A (zh) 2019-07-05
CN109981782B true CN109981782B (zh) 2022-03-22

Family

ID=67081047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910242222.7A Active CN109981782B (zh) 2019-03-28 2019-03-28 用于集群脑裂的远端存储异常处理方法及系统

Country Status (1)

Country Link
CN (1) CN109981782B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618853B (zh) * 2019-08-02 2022-04-22 东软集团股份有限公司 一种僵尸容器的检测方法、装置及设备
CN110968445A (zh) * 2019-11-13 2020-04-07 泰康保险集团股份有限公司 一种基于流程引擎的节点跳转方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656584A (zh) * 2016-12-06 2017-05-10 南京南瑞继保电气有限公司 一种分布式系统无效节点判定方法
CN107147540A (zh) * 2017-07-19 2017-09-08 郑州云海信息技术有限公司 高可用性系统中的故障处理方法和故障处理集群
CN107566511A (zh) * 2017-09-20 2018-01-09 郑州云海信息技术有限公司 一种实现云存储的方法及云存储系统
CN107749887A (zh) * 2017-10-25 2018-03-02 暴风集团股份有限公司 一种cdn资源分配、定位方法和装置及cdn系统
CN108984356A (zh) * 2018-07-10 2018-12-11 郑州云海信息技术有限公司 一种it产品测试方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656584A (zh) * 2016-12-06 2017-05-10 南京南瑞继保电气有限公司 一种分布式系统无效节点判定方法
CN107147540A (zh) * 2017-07-19 2017-09-08 郑州云海信息技术有限公司 高可用性系统中的故障处理方法和故障处理集群
CN107566511A (zh) * 2017-09-20 2018-01-09 郑州云海信息技术有限公司 一种实现云存储的方法及云存储系统
CN107749887A (zh) * 2017-10-25 2018-03-02 暴风集团股份有限公司 一种cdn资源分配、定位方法和装置及cdn系统
CN108984356A (zh) * 2018-07-10 2018-12-11 郑州云海信息技术有限公司 一种it产品测试方法及装置

Also Published As

Publication number Publication date
CN109981782A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CA2808239C (en) Determining equivalent subsets of agents to gather information for a fabric
CN105429776B (zh) 一种虚拟化网络功能管理的方法和系统
CN102355369B (zh) 虚拟化集群系统及其处理方法和设备
US20130297603A1 (en) Monitoring methods and systems for data centers
CN109981782B (zh) 用于集群脑裂的远端存储异常处理方法及系统
US20190081853A1 (en) Link Handover Method for Service in Storage System, and Storage Device
US20120066376A1 (en) Management method of computer system and management system
CN111857998A (zh) 一种可配置的定时任务调度方法及系统
CN114884838A (zh) Kubernetes组件的监控方法及服务器
WO2021002164A1 (en) Method and control system for operating ecus of vehicles in fails-safe mode
CN113542074A (zh) 一种可视化管理kubernetes集群的东西向网络流量的方法及系统
CN111641521A (zh) 一种基于Ambari的云上部署大数据集群的方法
CN112732401A (zh) 虚拟机资源分配方法、系统、设备及介质
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN110971439A (zh) 策略决策方法及装置、系统、存储介质、策略决策单元及集群
CN106603330A (zh) 一种云平台检查虚拟机连接状态的方法
CN111752675B (zh) 一种基于容器化技术的物联网平台
US20200282561A1 (en) Collaborative task execution by a robotic group using a distributed semantic knowledge base
CN116016028B (zh) 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备
CN108733477A (zh) 数据集群化处理的方法、装置及设备
CN108089968A (zh) 一种宿主机监控虚拟机数据库状态的方法
TW202213096A (zh) 用於階層式系統之故障排除之裝置、方法及電腦程式產品
CN111221620B (zh) 存储方法、装置及存储介质
CN104657240B (zh) 多内核操作系统的失效控制方法及装置
CN112882794B (zh) pod扩容方法、装置、节点及存储介质

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
CB02 Change of applicant information

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 250100 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Applicant before: SHANDONG INSPUR CLOUD INFORMATION TECHNOLOGY Co.,Ltd.

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Inspur cloud Information Technology Co.,Ltd.

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant