本发明属于kubernetes,具体涉及一种kubernetes动态高可用方法、介质及设备。
背景技术:
1、现有的kubernetes高可用方案主要采用三节点架构,而三节点架构是由kubernetes数据库etcd的高可用架构决定的。etcd基于raft协议算法,其高可用性必须保证集群半数以上的节点可用,因此一般etcd的节点数量为奇数,最小的高可用规模为三节点。在大多数使用场景中,由于受限于资源限制,一般只能选用三节点的高可用架构;当宕机的节点超过半数时,etcd无法对外提供服务,也就是说三节点架构的容错仅有一台。多数etcd高可用架构的高可用性受限,严重依赖运维介入,尤其在无人值守的低运维场景下无法应对。
2、现有的kubernetes高可用方案存在如下缺点:
3、1)高可用受限:三节点架构中一旦某一台机器宕机,则集群处于崩溃的临界状态,运维必须立刻介入处理,其高可用性仅为单节点容错,对人工依赖非常高;
4、2)资源浪费:raft协议的容错能力只为集群的半数,剩下的一般节点无法提高容错能力,如果要扩大容错节点,必须以倍数增加集群节点:当增加一台容错节点,必须增加两台集群节点;
5、3)运维成本高:受限于资源问题,大多数的高可用方案均采用三节点架构,容错性低,对人工运维的依赖程度很高,从而带来高运维成本。
技术实现思路
1、为了克服上述技术缺陷,本发明提供了一种kubernetes动态高可用方法,实现在有限的节点资源中最大化保障etcd集群的高可用性,从而保障kubernetes集群的高可用。
2、为了解决上述问题,第一方面,本发明提供了一种kubernetes动态高可用方法,包括如下步骤:
3、将节点分为第一节点和备份节点,第一节点为部署有etcd的节点,备份节点状态默认为standby状态;
4、第一备份节点对第一节点集群进行监测,当监测到第一节点集群中有节点宕机时,第一备份节点补位宕机节点;
5、当监测到第一节点集群中原宕机节点恢复时,第一备份节点结束补位。
6、进一步的,步骤第一备份节点对第一节点集群进行监测,当监测到第一节点集群中有节点宕机时,第一备份节点补位宕机节点,包括如下步骤:
7、第一备份节点上部署并启动etcd守护进程;
8、第一备份节点调用kube-apiserver接口进行抢锁;
9、抢锁成功的第一备份节点的状态更新为monitor状态,并监听第一节点集群;
10、当监听到第一节点集群中有节点宕机时,抢锁成功的第一备份节点调用kube-apiserver接口,将状态更新为standby-active状态;
11、触发etcd部署,第一备份节点加入第一节点集群,补位宕机节点。
12、进一步的,步骤触发etcd部署,第一备份节点加入第一节点集群,补位宕机节点后,还包括步骤:
13、第一备份节点监听到其成功部署etcd,并且其状态更新为standby-active状态时,释放锁。
14、进一步的,步骤当监测到第一节点集群中原宕机节点恢复时,第一备份节点结束补位,包括如下步骤:
15、抢锁成功的第二备份节点的状态更新为monitor状态,并监听第一节点集群;
16、当第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,通知第一备份节点根据节点优先级结束补位。
17、进一步的,步骤当第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,通知第一备份节点根据节点优先级结束补位,包括步骤:
18、第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,查询所有standby-active状态的备份节点;
19、若standby-active状态的备份节点的数量等于预设值,判断standby-active状态的备份节点是否为控制节点;
20、若standby-active状态的备份节点不是控制节点,将该备份节点的状态更新为standby状态,并删除部署的etcd。
21、进一步的,步骤当第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,通知第一备份节点根据节点优先级结束补位,还包括步骤:
22、若standby-active状态的备份节点的数量大于预设值,按照节点负载的高低以及是否为控制节点对standby-active状态的备份节点进行排序。
23、与现有技术相比,本发明具有以下有益效果:
24、本发明公开了一种kubernetes动态高可用方法,将节点分为第一节点和备份节点,当监测到第一节点集群中有节点宕机时,第一备份节点补位宕机节点;当监测到第一节点集群中原宕机节点恢复时,第一备份节点结束补位;通过将备份节点暂时加入第一节点集群,动态维持etcd的高可用稳态。实现在有限的节点资源中最大化保障etcd集群的高可用性,从而保障kubernetes集群的高可用,同时还可以减少人工运维介入,降低运维成本。
25、第二方面,本发明还提供了一种计算机可读存储介质,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的方法。
26、第三方面,本发明还提供了一种计算机设备,包括:
27、处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述的方法。
1.一种kubernetes动态高可用方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的kubernetes动态高可用方法,其特征在于,步骤第一备份节点对第一节点集群进行监测,当监测到第一节点集群中有节点宕机时,第一备份节点补位宕机节点,包括如下步骤:
3.根据权利要求2所述的kubernetes动态高可用方法,其特征在于,步骤触发etcd部署,第一备份节点加入第一节点集群,补位宕机节点后,还包括步骤:
4.根据权利要求3所述的kubernetes动态高可用方法,其特征在于,步骤当监测到第一节点集群中原宕机节点恢复时,第一备份节点结束补位,包括如下步骤:
5.根据权利要求4所述的kubernetes动态高可用方法,其特征在于,步骤当第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,通知第一备份节点根据节点优先级结束补位,包括步骤:
6.根据权利要求5所述的kubernetes动态高可用方法,其特征在于,步骤当第二备份节点监测到第一节点集群中原宕机节点恢复时,调用kube-apiserver接口,通知第一备份节点根据节点优先级结束补位,还包括步骤:
7.一种计算机可读存储介质,其特征在于,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如权利要求1-6中任一项所述的方法。
8.一种计算机设备,其特征在于,包括: