CN112000442A - 一种基于kubernetes平台的集群状态自动获取方法及装置 - Google Patents

一种基于kubernetes平台的集群状态自动获取方法及装置 Download PDF

Info

Publication number
CN112000442A
CN112000442A CN202010878821.0A CN202010878821A CN112000442A CN 112000442 A CN112000442 A CN 112000442A CN 202010878821 A CN202010878821 A CN 202010878821A CN 112000442 A CN112000442 A CN 112000442A
Authority
CN
China
Prior art keywords
state
cluster
pod
information
acquiring
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
Application number
CN202010878821.0A
Other languages
English (en)
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010878821.0A priority Critical patent/CN112000442A/zh
Publication of CN112000442A publication Critical patent/CN112000442A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种基于kubernetes平台的集群状态自动获取方法及装置,在集群所在主机启动时监测集群所有节点状态;判断在第一预设时长内所有节点是否恢复到正常状态;若是,则执行下一步,否则反馈集群状态异常提醒;第二预存时长内间断获取并检测集群内所有pod的运行状态;若第二预存时长内集群内所有pod均处于运行状态,则反馈集群已完全启动提醒,否则统计非运行状态的pod并生成列表,反馈非运行状态pod列表。本发明供用户及时监测集群节点和pod信息,获知集群启动状况和启动异常状况,优化用户使用体验,节省启动时间。

Description

一种基于kubernetes平台的集群状态自动获取方法及装置
技术领域
本发明涉及kubernetes平台集群领域,具体涉及一种基于kubernetes平台的集群状态自动获取方法及装置。
背景技术
相比虚拟机上运行业务,通过容器进行业务的运转,明显的优点是轻量化,容器是基于基础操作系统的复用,不需要太多的庞大的镜像。但针对日益复杂庞大的云平台系统,各功能模块日益复杂,系统的规模无论从数量还是规模和之前都不在一个数量级,这就导致机器再启动时间慢,机器启动后集群恢复慢,而目前用户还无法监测启动过程,无法获知集群何时已启动成功,启动不成功时也无法获知故障点。
发明内容
为解决上述问题,本发明提供一种基于kubernetes平台的集群状态自动获取方法及装置,在集群启动时监测集群状态,及时发出提醒。
本发明的技术方案是:一种基于kubernetes平台的集群状态自动获取方法,在集群所在主机启动时执行以下步骤:
监测集群所有节点状态;
判断在第一预设时长内所有节点是否恢复到正常状态;若是,则执行下一步,否则反馈集群状态异常提醒;
第二预存时长内间断获取并检测集群内所有pod的运行状态;
若第二预存时长内集群内所有pod均处于运行状态,则反馈集群已完全启动提醒,否则统计非运行状态的pod并生成列表,反馈非运行状态pod列表。
进一步地,该方法还包括:
获取处于非运行状态pod的日志信息;
将非运行状态pod日志信息的后N行保存至一文本。
进一步地,通过调用kubelet错误排查命令获取非运行状态pod的日志信息;通过调用kubelet保存命令将获取的处于非运行状态pod相关信息保存至一文本。
进一步地, N的取值范围为10-30。
进一步地,通过kubelet的pod获取命令获取集群内所有pod的运行状态。
进一步地,该方法还包括:
获取非运行状态pod对应kubelet的服务状态信息;
获取etcd数据库内成员的状态信息;
将所获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
进一步地,监测集群所有节点状态,具体为:
通过网络诊断工具不断轮流发送通信包检测集群各个节点;
当某节点有返回时,表示该节点状态正常。
本发明的技术方案还包括一种基于kubernetes平台的集群状态自动获取装置,包括,
节点状态监测模块:监测集群所有节点状态;
集群状态判断模块:判断在第一预设时长内所有节点是否恢复到正常状态,若是则集群状态正常,否则集群状态异常;
第一信息反馈模块:反馈集群状态异常提醒;
pod运行状态获取模块:获取集群内所有pod的运行状态;
pod运行状态检测模块:检测集群内所有pod是否均处于运行状态;
第二信息反馈模块:反馈集群已完全启动提醒;
pod统计模块:统计非运行状态的pod并生成列表;
第三信息反馈模块:反馈非运行状态pod列表。
进一步地,还包括,
日志信息获取模块:获取处于非运行状态pod的日志信息;
日志信息保存模块:将非运行状态pod日志信息的后N行保存至一文本;其中N的取值范围为10-30。
进一步地,还包括,
kubelet服务状态信息获取模块:获取非运行状态pod对应kubelet的服务状态信息;
etcd数据库内成员状态信息获取模块:获取etcd数据库内成员的状态信息;
状态信息保存模块:将所述获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
本发明提供的一种基于kubernetes平台的集群状态自动获取方法及装置,在机器启动时,在预设时长内监测集群节点状态和节点内所有pod信息,在正常启动时给出启动提醒,在未正常启动时,获取到未正常启动原因,将所获取异常原因反馈给用户,当pod非正常时,还将非正常的pod列表反馈给用户。本发明供用户及时监测集群节点和pod信息,获知集群启动状况和启动异常状况,优化用户使用体验,节省启动时间。
附图说明
图1是本发明具体实施例一方法流程示意图;
图2是本发明具体实施例一一具体实现方式方法流程示意图;
图3是本发明具体实施例二结构示意框图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
以下对本发明涉及的英文进行解释。
Kubernetes:简称k8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Pod: k8s的最小工作单元。每个pod包含一个或者多个容器。pod中的容器会作为一个整体被集群主节点(master)调度到一个节点(node)上运行。
Kubelet:在Kubernetes集群中,在每个node上都会启动一个 kubelet服务进程。kubelet作为连接Kubernetes master和各node之间的桥梁,用于处理master下发到本节点的任务,管理 Pod及Pod中的容器。每个kubelet进程都会在api-server上注册本节点自身的信息,定期向master汇报节点资源的使用情况,并通过cAdvisor监控容器和节点资源。进而实现pod的启停任务。
Etcd:Kubernetes提供默认的存储系统,保存所有集群数据。
实施例一
如图1所示,本实施例提供一种基于kubernetes平台的集群状态自动获取方法,在集群所在主机启动时执行以下步骤:
S1,监测集群所有节点状态;
S2,判断在第一预设时长内所有节点是否恢复到正常状态;若是,则执行下一步,否则反馈集群状态异常提醒;
S3,第二预存时长内间断获取并检测集群内所有pod的运行状态;
S4,若第二预存时长内集群内所有pod均处于运行状态,则反馈集群已完全启动提醒,否则统计非运行状态的pod并生成列表,反馈非运行状态pod列表。
本发明首先确认集群节点状态是否均正常,并做出相应提示;若集群状态正常,则继续监控集群pod状态(例如每隔1分钟进行一次k8s指令);当检测到所有pod状态为running时,则做出相应的提示,除却running以外的状态,计算非running状态的pod个数,进行计数,最终给出不正常pod的列表。
本实施例中,可通过调用相关kubernetes平台的相关命令获取pod状态等,为进一步方便运维人员进行问题诊断,具体实施时,还可记录pod日志、kubelet和ectd状态等。
为进一步对本发明进行解释,以下结合上述步骤,基于本发明原理提供一具体实现方法,如图2所示,该方法包括以下步骤。
S101,通过网络诊断工具不断轮流发送通信包检测集群各个节点,当某节点有返回时,表示该节点状态正常;
该步骤即通过ping操作不断轮流去ping集群节点,检测集群各节点是否正常重启。
S102,判断在第一预设时长内所有节点是否恢复到正常状态;若是,则执行下一步,否则反馈集群状态异常提醒;
持续ping操作十分钟,若仍有节点未返回信息(即未重启),说明集群状态异常,反馈提醒给用户,以便用户及时获知信息。若集群正常的话,则进一步检测各节点的pod状态。
S103,第二预设时长内间断获取并检测集群内所有pod的运行状态;
通过kubelet的pod获取命令获取集群内所有pod的运行状态,该命令为kubectl getpo –n ns|grep 0/1,若所获取信息为running,则说明pod处于运行状态。
需要说明的是,在第二预设时长内间断发送命令获取状态信息,如10分钟内每隔1分钟发送一次命令获取pod运行状态。
S104,若第二预设时长内集群内所有pod均处于运行状态,则反馈集群已完全启动提醒,否则统计非运行状态的pod并生成列表,反馈非运行状态pod列表;
若所有pod均处于运行状态,则说明所有节点启动成功,此时集群已完成启动。若第二预设时长后,仍有pod未运行,则说明有异常pod,则统计所有异常pod,生成相关列表发送给用户,供用户了解异常点。
本实施例在预设时长内监测集群节点和pod,避免集群在异常状况下,一直处于启动状态,使用户及时了解异常,节省时间。
S105:获取处于非运行状态pod的日志信息,将非运行状态pod日志信息的后N行保存至一文本;
本实施例为进一步方便运维人员进行问题诊断,将异常pod的日志提取到一文本,运维人员在文本中查找故障原因。
具体通过调用kubelet错误排查命令(kubectl describe po –n ns)获取非运行状态pod的日志信息;通过调用kubelet保存命令(kubectl logs –f -nns)将获取的处于非运行状态pod相关信息保存至一文本。
需要说明的是,N的取值范围为10-30,即最少将异常pod日志后10行,最多将异常pod日志后30行提取出来保存。后10-30一般已包含全部故障信息。
S106,获取非运行状态pod对应kubelet的服务状态信息和etcd数据库内成员的状态信息,将所获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本;
为更全面地定位问题,本实施例还获取非运行状态pod对应kubelet的服务状态信息和etcd数据库内成员的状态信息。需要说明的是,ectd内成员与节点一一对应,若有节点异常,ectd内成员相应也会有异常。
获取非运行状态pod对应kubelet的服务状态信息的命令为systemctl statuskubelet –l。
获取etcd数据库内成员的状态信息的命令为:
etcdurl=`docker exec etcd ps -o args |grep -v ps |grep -v COMMAND |awk '{print $7}'
`docker exec etcd etcdctl --endpoints ${etcdurl} cluster-health。
同样调用命令kubectl logs –f –n ns > xx.log将所获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
实施例二
如图3所示,在实施例基础上,本实施例提供一种基于kubernetes平台的集群状态自动获取装置,包括以下功能模块。
节点状态监测模块101:监测集群所有节点状态;
集群状态判断模块102:判断在第一预设时长内所有节点是否恢复到正常状态,若是则集群状态正常,否则集群状态异常;
第一信息反馈模块103:反馈集群状态异常提醒;
pod运行状态获取模块104:获取集群内所有pod的运行状态;
pod运行状态检测模块105:检测集群内所有pod是否均处于运行状态;
第二信息反馈模块106:反馈集群已完全启动提醒;
pod统计模块107:统计非运行状态的pod并生成列表;
第三信息反馈模块108:反馈非运行状态pod列表。
进一步地,为定位问题,该装置还设置以下功能模块。
日志信息获取模块109:获取处于非运行状态pod的日志信息;
日志信息保存模块110:将非运行状态pod日志信息的后N行保存至一文本;其中N的取值范围为10-30。
kubelet服务状态信息获取模块111:获取非运行状态pod对应kubelet的服务状态信息;
etcd数据库内成员状态信息获取模块112:获取etcd数据库内成员的状态信息;
状态信息保存模块113:将所述获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

Claims (10)

1.一种基于kubernetes平台的集群状态自动获取方法,其特征在于,在集群所在主机启动时执行以下步骤:
监测集群所有节点状态;
判断在第一预设时长内所有节点是否恢复到正常状态;若是,则执行下一步,否则反馈集群状态异常提醒;
第二预存时长内间断获取并检测集群内所有pod的运行状态;
若第二预存时长内集群内所有pod均处于运行状态,则反馈集群已完全启动提醒,否则统计非运行状态的pod并生成列表,反馈非运行状态pod列表。
2.根据权利要求1所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,该方法还包括:
获取处于非运行状态pod的日志信息;
将非运行状态pod日志信息的后N行保存至一文本。
3.根据权利要求2所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,通过调用kubelet错误排查命令获取非运行状态pod的日志信息;通过调用kubelet保存命令将获取的处于非运行状态pod相关信息保存至一文本。
4.根据权利要求3所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,N的取值范围为10-30。
5.根据权利要求1-4任一项所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,通过kubelet的pod获取命令获取集群内所有pod的运行状态。
6.根据权利要求5所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,该方法还包括:
获取非运行状态pod对应kubelet的服务状态信息;
获取etcd数据库内成员的状态信息;
将所获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
7.根据权利要求6所述的基于kubernetes平台的集群状态自动获取方法,其特征在于,监测集群所有节点状态,具体为:
通过网络诊断工具不断轮流发送通信包检测集群各个节点;
当某节点有返回时,表示该节点状态正常。
8.一种基于kubernetes平台的集群状态自动获取装置,其特征在于,包括,
节点状态监测模块:监测集群所有节点状态;
集群状态判断模块:判断在第一预设时长内所有节点是否恢复到正常状态,若是则集群状态正常,否则集群状态异常;
第一信息反馈模块:反馈集群状态异常提醒;
pod运行状态获取模块:获取集群内所有pod的运行状态;
pod运行状态检测模块:检测集群内所有pod是否均处于运行状态;
第二信息反馈模块:反馈集群已完全启动提醒;
pod统计模块:统计非运行状态的pod并生成列表;
第三信息反馈模块:反馈非运行状态pod列表。
9.根据权利要求8所述的基于kubernetes平台的集群状态自动获取装置,其特征在于,还包括,
日志信息获取模块:获取处于非运行状态pod的日志信息;
日志信息保存模块:将非运行状态pod日志信息的后N行保存至一文本;其中N的取值范围为10-30。
10.根据权利要求9所述的基于kubernetes平台的集群状态自动获取装置,其特征在于,还包括,
kubelet服务状态信息获取模块:获取非运行状态pod对应kubelet的服务状态信息;
etcd数据库内成员状态信息获取模块:获取etcd数据库内成员的状态信息;
状态信息保存模块:将所述获取对应kubelet的服务状态和etcd数据库内成员的状态信息保存至另一文本。
CN202010878821.0A 2020-08-27 2020-08-27 一种基于kubernetes平台的集群状态自动获取方法及装置 Withdrawn CN112000442A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010878821.0A CN112000442A (zh) 2020-08-27 2020-08-27 一种基于kubernetes平台的集群状态自动获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010878821.0A CN112000442A (zh) 2020-08-27 2020-08-27 一种基于kubernetes平台的集群状态自动获取方法及装置

Publications (1)

Publication Number Publication Date
CN112000442A true CN112000442A (zh) 2020-11-27

Family

ID=73472143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010878821.0A Withdrawn CN112000442A (zh) 2020-08-27 2020-08-27 一种基于kubernetes平台的集群状态自动获取方法及装置

Country Status (1)

Country Link
CN (1) CN112000442A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561093A (zh) * 2020-12-16 2021-03-26 航天信息股份有限公司 微服务治理管理平台巡检方法、设备、存储介质及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112561093A (zh) * 2020-12-16 2021-03-26 航天信息股份有限公司 微服务治理管理平台巡检方法、设备、存储介质及装置

Similar Documents

Publication Publication Date Title
CN106789306B (zh) 通信设备软件故障检测收集恢复方法和系统
CN108710544B (zh) 一种数据库系统的进程监控方法及轨道交通综合监控系统
CN104268061B (zh) 一种适用于虚拟机的存储状态监控方法
CN111181767A (zh) 一种面向复杂系统的监控和故障自愈系统及其方法
WO2016188100A1 (zh) 信息系统故障场景信息收集方法及系统
CN114328102B (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
CN110895488B (zh) 任务调度方法及装置
CN108521339A (zh) 一种基于集群日志的反馈式节点故障处理方法及系统
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
CN111552556B (zh) 一种gpu集群服务管理系统及方法
CN103067209B (zh) 一种心跳模块自检测方法
CN111046011A (zh) 日志收集方法、系统、节点、电子设备及可读存储介质
CN111290900A (zh) 一种基于微服务日志的软件故障检测方法
CN114356499A (zh) Kubernetes集群告警根因分析方法及装置
CN108769170A (zh) 一种集群网络故障自检系统及方法
CN112529223A (zh) 一种设备故障报修方法、装置、服务器及储存介质
CN107729213B (zh) 一种后台任务监控方法及装置
CN110659147B (zh) 一种基于模块自检行为的自修复方法和系统
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN102957563B (zh) Linux集群故障自动恢复方法和Linux集群故障自动恢复系统
CN112000442A (zh) 一种基于kubernetes平台的集群状态自动获取方法及装置
CN100435105C (zh) 集群环境下的应用服务器的系统再生方法
CN105025179A (zh) 呼叫中心座席的监控方法及系统
CN113055203B (zh) Sdn控制平面的异常恢复方法及装置
JP2009252006A (ja) コンピュータシステムにおけるログ管理システム、ログ管理方法

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

Application publication date: 20201127

WW01 Invention patent application withdrawn after publication