一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种提高k8s集群稳定性的方法、系统、装置及存储介质与流程

2021-11-22 13:52:00 来源:中国专利 TAG:


1.本发明涉及云平台技术领域,更具体的说是涉及一种提高k8s集群稳定性的方法、系统、装置及存储介质。


背景技术:

2.kubernetes,简称k8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署,规划,更新,维护的一种机制。
3.在kubernetes集群中,etcd为kubernetes集群的服务发现、配置中心功能起到了关键性的作用。etcd是coreos团队于2016年6月发起的开源项目,他的目标是构建一个高可用的分布式键值(key_value)数据库。etcd内部采用raft协议作为一致性算法,etcd是基于go语言实现的,etcd比较多的应用场景适用于服务发现,服务发现(service disvocery)要解决的是分布式系统中最常见的问题之一,在同一个分布式集群中的进程或服务如何才能找到对方并建立连接。
4.当前,在集群环境中,如果etcd出现故障无法正常提供服务,整个k8s环境下服务pod无法启动导致业务会崩溃,使整个k8s集群基本无法使用。在日常,云平台运行过程中也会出现etcd故障导致的云平台无法使用的情况。可见,etcd的稳定性对于k8s集群的稳定性具有直接的影响。
5.因此,如何提高etcd的稳定性,进而支撑k8s平台的稳定运行,是我们亟待解决的问题。


技术实现要素:

6.针对以上问题,本发明的目的在于提供一种提高k8s集群稳定性的方法、系统、装置及存储介质,通过提高etcd的稳定性,在一定程度上提高k8s集群服务的稳定性,进而更好的实现对业务平台的支撑。
7.本发明为实现上述目的,通过以下技术方案实现:一种提高k8s集群稳定性的方法,包括:
8.监控宿主机的运行环境,若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,通过分布式键值存储系统的应用接口(etcd api)以定时同步的方式将etcd的集群数据进行备份;
9.若当前etcd出现故障,利用备份的集群数据进行数据状态恢复;
10.若当前集群内的节点数目大于预设数目阈值,将k8s平台服务与etcd运行环境分离。
11.进一步,所述通过分布式键值存储系统的应用接口以定时同步的方式将分布式键值存储系统的集群数据进行备份包括:
12.在etcd运行环境中创建存储空间;
13.在etcd运行环境中创建定时同步任务,并为定时同步任务设置同步时间;
14.通过etcd集群api接口,启动定时任务,根据设置的同步时间不断将etcd集群数据同步到存储空间。
15.进一步,所述若当前分布式键值存储系统出现故障,利用备份的集群数据进行数据状态恢复包括:
16.监控分布式键值存储系统的运行状态;
17.若当前分布式键值存储系统出现故障,指定数据恢复时间,采集存储空间内相应时间的集群数据,并使用采集的集群数据覆盖当前分布式键值存储系统的集群数据。
18.进一步,在所述etcd集群每个节点上均配置了定时同步任务,并为每个定时同步任务指定对应的存储空间。
19.进一步,所述在分布式键值存储系统的运行环境中创建存储空间具体为:
20.在etcd运行环境中创建固定数据备份空间或者接入外部存储空间作为执行定时同步任务的存储空间。
21.进一步,所述将k8s平台服务与etcd运行环境分离包括:
22.将etcd的集群部署在单独的宿主机节点上;
23.将所述宿主机节点与k8s云平台部署在同一个集群下。
24.相应的,本发明还公开了一种提高k8s集群稳定性的系统,包括:
25.环境监控单元,用于监控宿主机在预设时间间隔内的重启次数和io读写速度;数据备份单元,用于通过etcd api以定时同步的方式将分布式键值存储系统的集群数据进行备份;
26.恢复单元,用于利用备份的集群数据进行数据状态恢复;
27.集群监控单元,用于监控集群内的节点数目;
28.环境分离单元,用于将k8s平台服务与etcd运行环境分离。
29.进一步,所述数据备份单元包括:
30.备份空间创建模块,用于在etcd运行环境中创建存储空间;
31.任务创建模块,用于在etcd运行环境中创建定时同步任务,并为定时同步任务设置同步时间;
32.任务执行模块,用于通过etcd api启动定时同步任务,根据设置的同步时间将etcd集群数据同步到存储空间;
33.指定模块,用于为etcd集群每个节点上配置定时任务,并为每个定时任务指定相应的存储空间。
34.进一步,所述环境分离单元具体用于:将etcd的集群部署在单独的宿主机节点上;将所述宿主机节点与k8s云平台部署在同一个集群下。
35.相应的,本发明公开了一种提高k8s集群稳定性的装置,包括:
36.存储器,用于存储提高k8s集群稳定性的程序;
37.处理器,用于执行所述提高k8s集群稳定性的程序时实现如上文任一项所述提高k8s集群稳定性的方法步骤。
38.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有提高k8s集群稳定性的程序,所述提高k8s集群稳定性的程序被处理器执行时实现如上文任一项所述
提高k8s集群稳定性的方法步骤。
39.对比现有技术,本发明有益效果在于:
40.1、本发明针对宿主机环境稳定性较差时,通过etcd api进行数据备份,将etcd数据与其自身的数据存储机制分离。如果etcd故障需要恢复时,可以正常的恢复到指定日期的数据状态。防止出现etcd自身数据出现问题无法恢复的情况,有效的保证了数据的完整性。
41.2.本发明针对对于集群规模较大时,etcd与k8s云平台服务部署在同一个宿主机环境下带来不稳定性增大。采取将etcd集群与k8s云平台运行环境分离的方法,一方面避免了etcd与云平台服务的资源抢占,提高了etcd自身的稳定性和k8s服务的稳定性;另一方面实现了运行环境的解耦,当云平台服务的运行节点异常,不会对etcd集群服务带来任何影响。
42.3、本发明从etcd稳定性对k8s云平台的重要作用角度提高了etcd集群的稳定性,使etcd集群的高稳定性的基础更好的支撑k8s平台的正常运行,从而保障业务的正常运行。
43.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.附图1是本发明的方法流程图;
46.附图2是本发明的系统结构图。
47.图中,1为环境监控单元;2为数据备份单元;3为恢复单元;4为集群监控单元;5为环境分离单元;6为备份空间创建模块;7为任务创建模块;8为任务执行模块;9为指定模块。
具体实施方式
48.本发明的核心是提供一种提高k8s集群稳定性的方法,当前,在集群环境中,如果etcd出现故障无法正常提供服务,整个k8s环境下服务pod无法启动导致业务会崩溃,使整个k8s集群基本无法使用。在日常,云平台运行过程中也会出现etctd故障导致的云平台无法使用的情况。可见,etcd的稳定性对于k8s集群的稳定性具有直接的影响。
49.而本发明提供的提高k8s集群稳定性的方法,首先,针对宿主机环境稳定性较差时,通过etcd api进行数据备份,将etcd数据与其自身的数据存储机制分离。如果etcd故障需要恢复时,可以正常的恢复到指定日期的数据状态。防止出现etcd自身数据出现问题无法恢复的情况,有效的保证了数据的完整性。其次,针对对于集群规模较大时,etcd与k8s云平台服务部署在同一个宿主机环境下带来不稳定性增大。本发明采取将etcd集群与k8s云平台运行环境分离的方法,一方面避免了etcd与云平台服务的资源抢占,提高了etcd自身的稳定性和k8s服务的稳定性;另一方面实现了运行环境的解耦,当云平台服务的运行节点异常,不会对etcd集群服务带来任何影响。由此可见,本发明从etcd稳定性对k8s云平台的
重要作用角度提高了etcd集群的稳定性,使etcd集群的高稳定性的基础更好的支撑k8s平台的正常运行,从而保障业务的正常运行。
50.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.实施例一:
52.如图1所示,本实施例提供了一种提高k8s集群稳定性的方法,包括如下步骤:
53.s1:监控宿主机的运行环境,若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,通过etcd api以定时同步的方式将etcd的集群数据进行备份。
54.在本步骤中,若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,可视为宿主机的运行环境稳定性较差。在宿主机的运行环境稳定性差时,经常出现系统重启或io延迟较大。etct集群本身的机制是通过raft选举机制进行leader选举,如果通信故障将导致leader成员心跳不能被其他成员获取,从而进行新一轮的选举。选举完成后follower成员将从leader成员进行数据同步。如果在选举前follower成员因为网络或磁盘io原因导致数据同步异常。当选举完成后新的leader成员正好是选举前有异常数据的成员,这时再从该成员到其他成员进行数据同步时就会出现问题。当进行数据恢复时,这种异常数据对etcd来说是无法正常启动的。
55.具体来说:etcd默认的工作目录下生成两个子目录snap和wal。由于在etcd中所有数据的修改在提交前都要先写入wal文件中,使用wal进行数据的存储使得etcd拥有故障快速回复和数据回滚。etcd为防止wal文件过多会创建快照,snap子目录用于存储etcd的快照数据状态。wal子目录用于记录整个数据变化的全部历程。但是,网络或磁盘i/o异常导致备份数据异常则会导致etcd数据无法正常读取,如果再进行etcd集群成员数据的同步,整个集群的同步状态将存在异常数据。一旦etcd集群崩溃,进行集群恢复时,异常数据是无法读取和恢复的。因此,为了保证数据的完整性,本步骤直接通过etcd api以定时同步的方式将etcd的集群数据进行备份。
56.其中,通过etcd api以定时同步的方式将etcd的集群数据进行备份具体包括:
57.首先,在etcd运行环境中创建存储空间,即在etcd运行环境中创建固定备份数据空间或者接入外部存储空间,作为执行定时同步任务的存储空间。然后,以定时同步的方式将etcd的集群数据进行备份。最后,通过etcd集群api接口,启动定时任务,根据设置的同步时间不断将etcd集群数据同步到存储空间。
58.s2:若当前etcd出现故障,利用备份的集群数据进行数据状态恢复。
59.具体来说:首先,监控分布式键值存储系统的运行状态。若当前分布式键值存储系统出现故障,指定数据恢复时间,采集存储空间内相应时间的集群数据,并使用采集的集群数据覆盖当前的etcd集群数据。
60.通常,通过一个集群节点的备份数据就可以进行数据状态。为了防止单节点api异常导致备份数据异常,本步骤在etcd集群的每个节点中均配置了定时同步任务,并为每个定时同步任务指定了相应的存储空间,可以进行多个节点的数据同时备份。
61.s3:若当前集群内的节点数目大于预设数目阈值,将k8s平台服务与etcd运行环境分离。
62.当前,etcd作为分布式键值数据库对k8s云平台业务支撑起到关键性的作用。在集群规模较小、业务数量较少时,通常将etcd集群与云平台服务部署在同一个宿主机环境下。但是采用此种部署方式存在以下两种缺陷:
63.1、如果云平台服务增加或机器性能较差会导致宿主机崩溃,etcd集群因此会受到影响,集群节点故障会导致etcd无法启动,进而影响整个k8s平台无法使用。
64.2、随着集群规模的进一步扩大,k8s集群规模越大,所需要同步的数据资源越多,导致etcd需要处理和同步的数据量大幅度增加,数据处理量的增大会导致etcd的不稳定,故障率会显著提高。
65.因此,为了提高etcd集群稳定性,更好的支撑k8s云平台业务稳定性,本步骤首先检测当前集群的规模,若当前集群内的节点数目大于预设数目阈值,说明当前的集群规模较大,此时,将etcd集群运行节点与服务运行节点分离,使用单独集群部署etcd服务。具体为:将etcd的集群部署在单独的宿主机节点上,并将宿主机节点与k8s云平台部署在同一个集群下。其中,为了满足raft选举机制的实现,部署etcd集群选择的节点个数为奇数。
66.本实施例提供了一种提高k8s集群稳定性的方法,从etcd稳定性对k8s云平台的重要作用角度提高了etcd集群的稳定性,使etcd集群在高稳定性的基础上更好的支撑k8s平台的正常运行,从而保障业务的正常运行。
67.实施例二:
68.基于实施例一,如图2所示,本发明还公开了一种提高k8s集群稳定性的系统,包括:环境监控单元1、数据备份单元2、恢复单元3、集群监控单元4和环境分离单元5。
69.环境监控单元1,用于监控宿主机在预设时间间隔内的重启次数和io读写速度。若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,可视为宿主机的运行环境稳定性较差。则触发数据备份单元2启动。
70.数据备份单元2,用于通过etcd api以定时同步的方式将分布式键值存储系统的集群数据进行备份。数据备份单元2具体包括:
71.备份空间创建模块6,用于在etcd运行环境中创建存储空间。
72.任务创建模块7,用于在etcd运行环境中创建定时同步任务,并为定时同步任务设置同步时间。
73.任务执行模块8,用于通过etcd api启动定时同步任务,根据设置的同步时间将etcd集群数据同步到存储空间。
74.指定模块9,用于为etcd集群每个节点上配置定时任务,并为每个定时任务指定相应的存储空间。
75.恢复单元3,用于利用备份的集群数据进行数据状态恢复。恢复单元3具体用于:监控分布式键值存储系统的运行状态;若当前分布式键值存储系统出现故障,指定数据恢复时间,采集存储空间内相应时间的集群数据,并使用采集的集群数据覆盖当前分布式键值存储系统的集群数据。
76.集群监控单元4,用于监控集群内的节点数目。若当前集群内的节点数目大于预设数目阈值,说明当前的集群规模较大,则触发环境分离单元5启动。
77.环境分离单元5,用于将k8s平台服务与etcd运行环境分离。环境分离单元5具体用于:将etcd的集群部署在单独的宿主机节点上,将所述宿主机节点设置在k8s云平台所属的集群下。
78.本实施例提供了一种提高k8s集群稳定性的系统,首先,通过etcd api进行数据备份,将etcd数据与其自身的数据存储机制分离。如果etcd故障需要恢复时,可以正常的恢复到指定日期的数据状态。防止出现etcd自身数据出现问题无法恢复的情况,有效的保证了数据的完整性。其次,采取了将etcd集群与k8s云平台运行环境分离的方法,一方面避免了etcd与云平台服务的资源抢占,提高了etcd自身的稳定性和k8s服务的稳定性;另一方面实现了运行环境的解耦,当云平台服务的运行节点异常,不会对etcd集群服务带来任何影响。由此,通过提高etcd的稳定性,在一定程度上提高k8s集群服务的稳定性,进而更好的实现对业务平台的支撑。
79.实施例三:
80.本实施例公开了一种提高k8s集群稳定性的装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的提高k8s集群稳定性的程序时实现以下步骤:
81.1、监控宿主机的运行环境,若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,通过etcd api以定时同步的方式将etcd的集群数据进行备份。
82.2、若当前etcd出现故障,利用备份的集群数据进行数据状态恢复。
83.3、若当前集群内的节点数目大于预设数目阈值,将k8s平台服务与etcd运行环境分离。
84.进一步的,本实施例中的提高k8s集群稳定性的装置,还可以包括:
85.输入接口,用于获取外界导入的提高k8s集群稳定性的程序,并将获取到的提高k8s集群稳定性的程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
86.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
87.通讯单元,用于在提高k8s集群稳定性的装置和外部服务器之间建立远程通讯连接,以便于提高k8s集群稳定性的装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
88.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
89.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
90.鼠标,可以用于协助用户输入数据并简化用户的操作。
91.本实施例提供了一种提高k8s集群稳定性的装置,首先,通过etcd api进行数据备份,将etcd数据与其自身的数据存储机制分离。有效的防止出现etcd自身数据出现问题无法恢复的情况,保证了数据的完整性。其次,采取了将etcd集群与k8s云平台运行环境分离的方法,提高了etcd自身的稳定性和k8s服务的稳定性。
92.实施例四:
93.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd

rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有提高k8s集群稳定性的程序,所述提高k8s集群稳定性的程序被处理器执行时实现以下步骤:
94.1、监控宿主机的运行环境,若宿主机在预设时间间隔内的重启次数超过预设次数阈值或io读写速度低于预设次数阈值,通过etcd api以定时同步的方式将etcd的集群数据进行备份。
95.2、若当前etcd出现故障,利用备份的集群数据进行数据状态恢复。
96.3、若当前集群内的节点数目大于预设数目阈值,将k8s平台服务与etcd运行环境分离。
97.本实施例提供了一种可读存储介质,首先,通过etcd api进行数据备份,将etcd数据与其自身的数据存储机制分离。如果etcd故障需要恢复时,可以正常的恢复到指定日期的数据状态。防止出现etcd自身数据出现问题无法恢复的情况,有效的保证了数据的完整性。其次,采取了将etcd集群与k8s云平台运行环境分离的方法,一方面避免了etcd与云平台服务的资源抢占,提高了etcd自身的稳定性和k8s服务的稳定性;另一方面实现了运行环境的解耦,当云平台服务的运行节点异常,不会对etcd集群服务带来任何影响。
98.综上所述,本发明从etcd稳定性对k8s云平台的重要作用角度提高了etcd集群的稳定性,使etcd集群在高稳定性的基础上更好的支撑k8s平台的正常运行,从而保障业务的正常运行。
99.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
100.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
101.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
102.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
103.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
104.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
105.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
106.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
107.以上对本发明所提供的提高k8s集群稳定性的方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献