CN114390052A - 一种基于vrrp协议实现etcd双节点高可用方法和装置 - Google Patents
一种基于vrrp协议实现etcd双节点高可用方法和装置 Download PDFInfo
- Publication number
- CN114390052A CN114390052A CN202111656446.6A CN202111656446A CN114390052A CN 114390052 A CN114390052 A CN 114390052A CN 202111656446 A CN202111656446 A CN 202111656446A CN 114390052 A CN114390052 A CN 114390052A
- Authority
- CN
- China
- Prior art keywords
- etcd
- node
- container
- arbitration
- nodes
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及ETCD集群高可用技术领域,提供了一种基于VRRP协议实现ETCD双节点高可用方法和装置。当第一ETCD节点获取到ETCD仲裁容器的VIP时,启动所述第一ETCD节点上的容器镜像,生成ETCD仲裁容器;为所述ETCD仲裁容器注入预先设置的集群网IP地址,并监测所述ETCD仲裁容器的运行状态;在所述至少两个ETCD节点中有且仅有一个ETCD仲裁容器处于运行状态,并且与各个ETCD节点组成ETCD集群。本发明保证了在极端情况下,仅剩两台ETCD节点情况下,在其中一台设备作为ETCD节点宕机后,相应的ETCD集群仍然能够正常运行的部署架构方案。
Description
【技术领域】
本发明涉及ETCD集群高可用技术领域,特别是涉及一种基于VRRP协议实现ETCD双节点高可用方法和装置。
【背景技术】
随着云计算和云原生的技术发展,kubernetes容器云技术越来越收到企业看重,在服务上云后,需要保障服务能够在7*24小时的可用性,而在kubenetes集群高可用实现中,ETCD作为集群的元数据存储,高可用实现是重中之重。因此搭建高可用集群带来如下问题:
1、传统集群在需要最少保障3个节点来保障集群高可用,对设备数量要求较高;此处的3个节点来保障集群高可用的含义是,3个节点中还可以存在1个节点宕机,通过剩余的仅有的2个节点完成最低限度的集群可用;从而,为该节点的回复提供时机;
2、推荐使用奇数个节点来部署集群,存在较大的局限性;
3、在集群部署上不够灵活,无法充分利用设备资源;
究其原因,ETCD集群使用raft共识算法必须在两个节点以上才能完成选举,当集群只有两个节点是,一个节点掉线后,集群剩下的节点不满足raft共识算法选举要求选出新的leader节点来恢复集群。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明要解决的技术问题是在设备数量在两台以上的设备的场景下,甚至是只有两台的有限场景时,如何在其中一台设备作为节点宕机后,相应的ETCD集群仍然能够正常运行的部署架构方案。
本发明进一步要解决的技术问题是如何在节点掉线后集群状态的监控,如何处理集群节点文件双向同步,以及是集群异常后如何自行恢复,在本发明所提出的双节点高可用的架构中实现恢复过程。
本发明采用如下技术方案:
第一方面本发明提供了一种基于VRRP协议实现ETCD双节点高可用方法,将ETCD二进制文件制作成容器镜像,并在至少两个ETCD节点中布局所述容器镜像,方法包括:
在所述至少两个ETCD节点之间抢占ETCD仲裁容器的VIP;
当第一ETCD节点获取到ETCD仲裁容器的VIP时,启动所述第一ETCD节点上的容器镜像,生成ETCD仲裁容器;
为所述ETCD仲裁容器注入预先设置的集群网IP地址,并监测所述ETCD仲裁容器的运行状态;
在所述至少两个ETCD节点中有且仅有一个ETCD仲裁容器处于运行状态,并且与各个ETCD节点组成ETCD集群。
优选的,在所述至少两个ETCD节点上分别部署keepalived服务,并通过VRRP协议实现所述至少两个ETCD节点的VIP抢占。
优选的,对于运行有ETCD仲裁容器的第一ETCD节点作为主节点,其他布局有所述容器镜像的为备节点,方法还包括:
工作时主节点通过VRRP协议发送VRRP广播包,各个备节点接收到主节点发送的VRRP广播包,确认当前主节点存活,相应备节点不进行VIP抢占;
当备节点接收不到主节点发送的VRRP广播包的时候,各个备节点启动抢占ETCD仲裁容器的VIP,从而在备节点中选出新的ETCD节点,用于在其本地生成ETCD仲裁容器。
优选的,所述主节点和备节点各自分别将ETCD仲裁容器的文件映射到各自的指定文件夹中。
优选的,在至少两个ETCD节点中分别部署glusterFS服务,将所述指定文件夹作为复制卷;
写文件时,先把位于主节点和备节点上的所述指定文件夹锁住,然后同时写入对应指定文件夹数量的副本,在所述副本更新完历史文件后,确认完成相应写文件操作后解锁,写文件操作结束,从而保证所述至少两个ETCD节点上的ETCD仲裁容器的文件能够实时进行同步。
优选的,同时只有一台读写,因此较旧的文件永远是掉线的那一台节点,而在线的节点数据文件总是较新的,所以方法还包括:
当第一ETCD节点恢复后,自动向当前的主节点请求同步其本地的ETC仲裁容器关联的文件数据。
优选的,通过指令指定所述ETCD仲裁容器的网络模式为网桥,以及所述ETCD仲裁容器的IP分配模式为固定的集群网IP地址,其中,所述网桥在集群网卡上创建,分配的所述集群网IP地址被设定在与ETCD集群中各个ETCD节点同属于一个网段上。
优选的,在所述至少两个ETCD节点具体为包括第一ETCD节点和第二ETCD节点,其中,第一ETCD节点为leader,并且第一ETCD节点上运行有ETCD仲裁容器时,方法包括:
第一ETCD节点掉线后,释放VIP和ETCD仲裁容器的固定IP,第二ETCD节点将抢占到VIP,并在第二ETCD上启动仲裁容器;
在第二ETCD节点上,通过glusterFS同步过ETCD仲裁容器的文件数据,并通过pipework注入了固定ip,此时在第二ETCD节点上启动的ETCD仲裁容器和第一ETCD节点掉线之前在第一ETCD节点上运行的ETCD仲裁容器完全相同;
启动ETCD仲裁容器和第二ETCD会竞选新的leader,保证集群正常运行。
优选的,当第一ETCD节点再次上线时,确认VIP在第二ETCD节点上,则自身不会启动ETCD仲裁容器;并保持从第二ETCD节点上获取同步的ETCD仲裁容器的关联文件数据。
第二方面,本发明还提供了一种基于VRRP协议实现ETCD双节点高可用装置,用于实现第一方面所述的基于VRRP协议实现ETCD双节点高可用方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的基于VRRP协议实现ETCD双节点高可用方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的基于VRRP协议实现ETCD双节点高可用方法。
本发明通过在不同的ETCD节点上预先布局根据ETCD二进制文件制作成容器镜像,并通过在相应抢占运行出ETCD仲裁容器的方式,在ETCD集群中虚拟出一席,保证了在极端情况下,仅剩两台ETCD节点情况下,在其中一台设备作为ETCD节点宕机后,相应的ETCD集群仍然能够正常运行的部署架构方案。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的传统ETCD高可用集群由三台服务器组成架构示意图;
图2是本发明实施例提供的传统ETCD高可用集群中出现宕机后节点功能作用演变示意图;
图3是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用方法流程示意图;
图4是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用架构示意图;
图5是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用方法流程示意图;
图6是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用方法流程示意图;
图7是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用架构演变示意图;
图8是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用架构演变示意图;
图9是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用架构演变示意图;
图10是本发明实施例提供的一种基于VRRP协议实现ETCD双节点高可用装置结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
如图1所示,传统ETCD高可用集群由三台服务器etcd-1,etcd-2和etcd-3组成,三台服务分别部署ETCD服务,服务间通过raft共识算法实现leader选主,当一台服务器宕机时,图1中表现为etcd-1掉线,并被标识为etcd-1(down),另外两台服务器etcd-2和etcd-3可以选主一台服务器作为leader继续保证集群正常运行。
上述图1中节点etcd-1掉线,在图2中被简称为节点1离线,集群变化过程如图2所示;在图2的中间过程中,节点2通过竞选成为图2中最右侧过程中所呈现的节点2成为新的leader。
在本发明中,将传统架构下的etcd-3服务器通过docker容器镜像虚拟化来实现,使etcd-3服务器通过docker容器的方式在etcd-1和etcd-2两台服务器上运行。为了满足raft共识算法运行要求,需要保证以下条件:
1、虚拟化出来的etcd-3服务容器(在本发明后续实施例中统一称呼为ETCD仲裁容器)只能在etcd-1或者etcd-2上启动,不能同时运行,以保障完整状态下集群节点数据量为奇数。
2、虚拟化出来的etcd-3服务容器,在etcd-1掉线后,能够自动迁移到etcd-2上运行,并保证数据和IP不变。
在本发明各实施例中,第一ETCD节点和第二ETCD节点也被表述为etcd-1和etcd-2,还被简要的描述为节点1和节点2,这是为了文字表述和附图描述上的方便进行,而其中“第一”和“第二”的限定在本发明实施例中仅仅是为了描述对象区别方便所使用,不代表其他例如顺序含义,相互之间逻辑前后关系等等限定,因此,不应该将其作为限定本发明对应保护范围的依据。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例1提供了一种基于VRRP协议实现ETCD双节点高可用方法,其特征在于,将ETCD二进制文件制作成容器镜像,并在至少两个ETCD节点中布局所述容器镜像,如图3所示,方法包括:
在步骤201中,在所述至少两个ETCD节点之间抢占ETCD仲裁容器的VIP。
在步骤202中,当第一ETCD节点获取到ETCD仲裁容器的VIP时,启动所述第一ETCD节点上的容器镜像,生成ETCD仲裁容器。
例如:使用docker的容器化技术,将ETCD二进制文件制作成容器镜像,容器的基础镜像使用centos7.8操作系统,保留完整的网络组件,及能够正常的读取修改网卡信息,将制作好的容器镜像分别加载到至少两台装有docker容器服务的服务器上(即上述的至少两个ETCD节点)。
在步骤203中,为所述ETCD仲裁容器注入预先设置的集群网IP地址,并监测所述ETCD仲裁容器的运行状态。
在默认情况下,docker会使用bridge网络模式为启动后的的ETCD容器动态分配一个IP,安装docker容器服务器会自动创建docker0网桥,并默认配置一个网关地址,以172.17.0.1为网关,172.17.0.2、172.17.0.3依次类推作为容器的IP,当下次启动容器时还是会按照这种方式分配,因此会导致容器启动顺序不一致,从而IP地址会变动。这在本发明实施例实现过程中是不能被允许的,在本发明实施例中,所述ETCD仲裁容器会被上述安装有容器镜像的至少两个ETCD节点抢占,因此,要保证在后续出现原本运行有ETCD仲裁容器的ETCD节点在掉线后,经过剩余其他ETCD节点抢占后新运行起来的ETCD仲裁容器能够继承历史的ETCD仲裁容器特性,这时候,现有的docker分配IP地址的方式就无法适用于本发明实施例了,因此,才有了步骤203中的“为所述ETCD仲裁容器注入预先设置的集群网IP地址”。
在步骤204中,在所述至少两个ETCD节点中有且仅有一个ETCD仲裁容器处于运行状态,并且与各个ETCD节点组成ETCD集群。
本发明实施例通过在不同的ETCD节点上预先布局根据ETCD二进制文件制作成容器镜像,并通过在相应抢占运行出ETCD仲裁容器的方式,在ETCD集群中虚拟出一席,保证了在极端情况下,仅剩两台ETCD节点情况下,在其中一台设备作为ETCD节点宕机后,相应的ETCD集群仍然能够正常运行的部署架构方案。
在本发明实施例中,为了保障相应的步骤201的正常执行,还提供了一种可选的简要实现方案,例如:在所述至少两个ETCD节点上分别部署keepalived服务,并通过VRRP协议实现所述至少两个ETCD节点的VIP抢占。
如图4所示,使用keepalived软件服务通过VRRP进行通讯,通过竞选机制确定主备,主节点执行启动ETCD仲裁容器操作,运行后的ETCD仲裁容器与节点1和节点2上各自的ETCD(即图4中的ETCD节点1和ETCD节点2)形成集群,备节点的ETCD仲裁容器处于等待状态(如图4中在节点2内部用虚线框标识的ETCD仲裁容器,表面其并未出于正常的运行状态,而是上述的处于等待状态),暂停自己的ETCD仲裁容器,此时集群中只有一台ETCD仲裁容器(即图4中节点1中的ETCD仲裁容器),因此集群中包含节点1、节点2和节点1中的ETCD仲裁容器,实现三点的ETCD集群。在图4中所呈现的检查程序其起到的作用即上述步骤201-步骤204的主体内容,在此不做赘述。
如上所述的,在本发明实施例中,对于运行有ETCD仲裁容器的第一ETCD节点作为主节点,其他布局有所述容器镜像的为备节点,如图5所示,方法还包括:
在步骤301中,工作时主节点通过VRRP协议发送VRRP广播包,各个备节点接收到主节点发送的VRRP广播包,确认当前主节点存活,相应备节点不进行VIP抢占。
在步骤302中,当备节点接收不到主节点发送的VRRP广播包的时候,各个备节点启动抢占ETCD仲裁容器的VIP,从而在备节点中选出新的ETCD节点,用于在其本地生成ETCD仲裁容器。
在本发明实施例中,为了保证在主节点掉线,在备节点中重新竞选出的新的主节点后,在相应新竞选出的主节点上运行的ETCD仲裁容器,能够复刻与发生掉线的前任主节点上的运行的ETCD仲裁容器相同,就需要在主节点和备节点之间同步ETCD仲裁容器的关联文件内容,而其中采用最多的一种方式就是,所述主节点和备节点各自分别将ETCD仲裁容器的文件映射到各自的指定文件夹中。在本发明后续实施例中,将直接采用路径为/opt/etcd/data的文件夹作为内容阐述。
延续上面给出的实现手段,即“所述主节点和备节点各自分别将ETCD仲裁容器的文件映射到各自的指定文件夹中”,则对应还提供了一种优选的实现手段,在至少两个ETCD节点中分别部署glusterFS服务,将所述指定文件夹作为复制卷;
写文件时,先把位于主节点和备节点上的所述指定文件夹锁住,然后同时写入对应指定文件夹数量的副本,在所述副本更新完历史文件后,确认完成相应写文件操作后解锁,写文件操作结束,从而保证所述至少两个ETCD节点上的ETCD仲裁容器的文件能够实时进行同步。
基于上述实施例的相关扩展实现细节展开可知悉,同时只有一台读写,因此较旧的文件永远是掉线的那一台节点,而在线的节点数据文件总是较新的,所以方法还包括:
当第一ETCD节点恢复后,自动向当前的主节点请求同步其本地的ETC仲裁容器关联的文件数据。
作为本发明实施例实现的一种保证,既要保证VRRP协议的执行,还要保证ETCD仲裁容器的设定的IP的固定,通过指令(例如net=none)指定所述ETCD仲裁容器的网络模式为网桥,以及所述ETCD仲裁容器的IP分配模式为固定的集群网IP地址,其中,所述网桥在集群网卡上创建,分配的所述集群网IP地址被设定在与ETCD集群中各个ETCD节点同属于一个网段上。
在本发明实施例实现过程中还存在一种典型场景,如图4所示,在所述至少两个ETCD节点具体为包括第一ETCD节点和第二ETCD节点,其中,第一ETCD节点为leader,并且第一ETCD节点上运行有ETCD仲裁容器时,如图6所示,方法包括:
在步骤401中,第一ETCD节点掉线后,释放VIP和ETCD仲裁容器的固定IP,第二ETCD节点将抢占到VIP,并在第二ETCD上启动仲裁容器。
在步骤402中,在第二ETCD节点上,通过glusterFS同步过ETCD仲裁容器的文件数据,并通过pipework注入了固定ip,此时在第二ETCD节点上启动的ETCD仲裁容器和第一ETCD节点掉线之前在第一ETCD节点上运行的ETCD仲裁容器完全相同。
在步骤403中,启动ETCD仲裁容器和第二ETCD会竞选新的leader,保证集群正常运行。
当第一ETCD节点再次上线时,确认VIP在第二ETCD节点上,则自身不会启动ETCD仲裁容器;并保持从第二ETCD节点上获取同步的ETCD仲裁容器的关联文件数据。
基于上述步骤401-步骤403的方法过程,进一步解决了如何在节点掉线后集群状态的监控,如何处理集群节点文件双向同步,以及是集群异常后如何自行恢复,在本发明所提出的双节点高可用的架构中实现恢复过程的问题。
实施例2:
本发明实施例将延续实施例1中的方法过程内容,并进一步通过在特定实例场景下的方法过程描述,提现本发明方案实现过程中的优势和特性。在提出本发明实施例实现方案前,需要交代下,在实施例1方案实现过程中,作为ETCD仲裁容器,其起到的角色和正常的ETCD节点无异,这代表什么含义,即在不做任何优化处理的情况下,如果ETCD节点1上运行有ETCD仲裁容器,那么在ETCD节点1上相当于存储了两份数据库数据,而在现有技术中,若不存在所述ETCD仲裁容器,则相应的ETCD节点1上只会存储有一份数据库数据。这样一来,本发明实施例1中所描述的至少两个ETCD节点上部署有容器镜像的实现方式中,性价比最高的一种方式就是只选择两个ETCD节点上部署有容器镜像的实现方式,在实施例1中被描述为第一ETCD节点和第二ETCD节点,而在本发明实施例中则被等同的描述etcd-1和etcd-2。
如图4所示,在本发明实施例中,两台服务器对应传统架构下的etcd-1(其在集群中的IP地址设定为192.168.1.1)和etcd-2(其在集群中的IP地址设定为192.168.1.2)。
在etcd-1和etcd-2上部署ETCD服务,描述到此处还与传统架构相同。接下来阐述的就是本发明实施例所引出的对应于实施例1的实质性改进内容:
参考图5和图1,ETCD仲裁容器为docker容器虚拟化出来的etcd-3服务器,虚线框表示停止状态,实线表示运行状态,运行状态的ETCD仲裁容器,与etcd-1和etcd-2组成传统的ETCD三节点高可用集群。
在两台服务器上部署keepalived服务器来通过vrrp协议实现VIP抢占,确保etcd-1和etcd-2只有一个服务器能够获取VIP程序实时检测网卡上的VIP情况,当本服务器获取到VIP时,启动ETCD仲裁容器,并通过pipework工具为容器注入固定ip 192.168.1.3,并保证ETCD仲裁容器为运行状态,当检测到本服务器没有VIP时,停止本服务器上的ETCD仲裁容器。etcd-1和etcd-2上的检查程序逻辑相同,有且仅有一个ETCD仲裁容器处于运行状态,与etcd-1和etcd-2组成集群。
ETCD仲裁容器的数据文件存储到/opt/etcd/data文件加下,通过glusterFS实现两台服务器上的/opt/etcd/data文件数据双向同步,由于ETCD仲裁容器只会运行一个,所以当ETCD仲裁容器在etcd-1上运行时,写入情况时etcd-1上的/opt/etcd/data向etcd-2上的/opt/etcd/data同步数据,反之,则由etcd-2向etcd-1同步。在本发明实施例中,为了描述上的简洁,将对应于实施例1中的步骤201-步骤204的关联方法内容被简要的称呼为检查程序。
当etcd-1掉线,会出现以下六种场景:
场景1.1:如图7所示,etcd-1节点为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;etcd-1掉线后,会释放VIP和ETCD仲裁容器的固定ip 192.168.1.3,如图8所示,etcd-2将抢占到VIP,检查程序会在etcd-2上启动ETCD仲裁容器,由于glusterFS同步了ETCD仲裁容器的数据文件,并通过pipework注入了固定ip 192.168.1.3,所以此时启动ETCD仲裁容器和etcd-1上之前运行的完全相同,此时启动的ETCD仲裁容器和etcd-2会竞选新的leader,保证集群正常运行,如图9所示,此时etcd-2成为了新的leader。当etcd-1再次上线时,VIP不在etcd-1上,不会启动ETCD仲裁容器。
场景1.2:etcd-2为leader并且VIP在etcd-2上,及etcd-2上运行ETCD仲裁容器;此时检查程序不做任何处理,etcd-2依旧为leader节点。
场景1.3:etcd-1节点为leader并且VIP在etcd-2上,及etcd-2上运行ETCD仲裁容器;此时检查程序不做任何处理,ETCD仲裁容器和etcd-2会竞选新的leader,保证集群正常运行。
场景1.4:etcd-2节点为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;etcd-1掉线后,会ETCD仲裁容器的固定ip 192.168.1.3,etcd-2将抢占到VIP,检查程序会在etcd-2上启动ETCD仲裁容器,由于glusterFS同步了ETCD仲裁容器的数据文件,并通过pipework注入了固定ip 192.168.1.3,所以此时启动ETCD仲裁容器和etcd-1上之前运行的完全相同,etcd-2依旧为leader节点,保证集群正常运行。当etcd-1再次上线时,VIP不在etcd-1上,不会启动ETCD仲裁容器。
场景1.5:ETCD仲裁容器为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;与场景1.1类似,由于ETCD仲裁容器相当于重启过,需要和etcd-2竞选新的leader节点。
场景1.6:ETCD仲裁容器为leader并且VIP在etcd-2上,及etcd-2上运行仲裁容器;与场景1.2类似,ETCD仲裁容器无变化,依旧为leader节点。
当etcd-2掉线,同样会出现以下六种场景:
场景2.1:etcd-1节点为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;此时检查程序不做任何处理,etcd-1依旧为leader节点。
场景2.2:etcd-2为leader并且VIP在etcd-2上,及etcd-2上运行ETCD仲裁容器;etcd-2掉线后,会释放VIP和ETCD仲裁容器的固定ip 192.168.1.3,etcd-1将抢占到VIP,检查程序会在etcd-1上启动ETCD仲裁容器,由于glusterFS同步了ETCD仲裁容器的数据文件,并通过pipework注入了固定ip192.168.1.3,所以此时启动ETCD仲裁容器和etcd-2上之前运行的完全相同,此时启动的ETCD仲裁容器和etcd-1会竞选新的leader,保证集群正常运行。当etcd-2再次上线时,VIP不在etcd-2上,不会启动ETCD仲裁容器。
场景2.3:etcd-1节点为leader并且VIP在etcd-2上,及etcd-2上运行ETCD仲裁容器;etcd-2掉线后,会ETCD仲裁容器的固定ip 192.168.1.3,etcd-1将抢占到VIP,检查程序会在etcd-1上启动ETCD仲裁容器,由于glusterFS同步了ETCD仲裁容器的数据文件,并通过pipework注入了固定ip 192.168.1.3,所以此时启动ETCD仲裁容器和etcd-2上之前运行的完全相同,etcd-1依旧为leader节点,保证集群正常运行。当etcd-2再次上线时,VIP不在etcd-2上,不会启动ETCD仲裁容器。
场景2.4:etcd-2节点为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;此时检查程序不做任何处理,ETCD仲裁容器和etcd-1会竞选新的leader,保证集群正常运行。
场景2.5:ETCD仲裁容器为leader并且VIP在etcd-1上,及etcd-1上运行ETCD仲裁容器;与场景2.1类似,ETCD仲裁容器无变化,依旧为leader节点。
场景2.6:ETCD仲裁容器为leader并且VIP在etcd-2上,及etcd-2上运行ETCD仲裁容器;与场景2.2类似,由于ETCD仲裁容器相当于重启过,需要和etcd-1竞选新的leader节点。
实施例3:
如图10所示,是本发明实施例的基于VRRP协议实现ETCD双节点高可用装置的架构示意图。本实施例的基于VRRP协议实现ETCD双节点高可用装置包括一个或多个处理器21以及存储器22。其中,图10中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图10中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的基于VRRP协议实现ETCD双节点高可用方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行基于VRRP协议实现ETCD双节点高可用方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的基于VRRP协议实现ETCD双节点高可用方法,例如,执行以上描述的图3、图5和图6所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于VRRP协议实现ETCD双节点高可用方法,其特征在于,将ETCD二进制文件制作成容器镜像,并在至少两个ETCD节点中布局所述容器镜像,方法包括:
在所述至少两个ETCD节点之间抢占ETCD仲裁容器的VIP;
当第一ETCD节点获取到ETCD仲裁容器的VIP时,启动所述第一ETCD节点上的容器镜像,生成ETCD仲裁容器;
为所述ETCD仲裁容器注入预先设置的集群网IP地址,并监测所述ETCD仲裁容器的运行状态;
在所述至少两个ETCD节点中有且仅有一个ETCD仲裁容器处于运行状态,并且与各个ETCD节点组成ETCD集群。
2.根据权利要求1所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,在所述至少两个ETCD节点上分别部署keepalived服务,并通过VRRP协议实现所述至少两个ETCD节点的VIP抢占。
3.根据权利要求1所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,对于运行有ETCD仲裁容器的第一ETCD节点作为主节点,其他布局有所述容器镜像的为备节点,方法还包括:
工作时主节点通过VRRP协议发送VRRP广播包,各个备节点接收到主节点发送的VRRP广播包,确认当前主节点存活,相应备节点不进行VIP抢占;
当备节点接收不到主节点发送的VRRP广播包的时候,各个备节点启动抢占ETCD仲裁容器的VIP,从而在备节点中选出新的ETCD节点,用于在其本地生成ETCD仲裁容器。
4.根据权利要求3所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,所述主节点和备节点各自分别将ETCD仲裁容器的文件映射到各自的指定文件夹中。
5.根据权利要求4所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,在至少两个ETCD节点中分别部署glusterFS服务,将所述指定文件夹作为复制卷;
写文件时,先把位于主节点和备节点上的所述指定文件夹锁住,然后同时写入对应指定文件夹数量的副本,在所述副本更新完历史文件后,确认完成相应写文件操作后解锁,写文件操作结束,从而保证所述至少两个ETCD节点上的ETCD仲裁容器的文件能够实时进行同步。
6.根据权利要求5所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,同时只有一台读写,因此较旧的文件永远是掉线的那一台节点,而在线的节点数据文件总是较新的,所以方法还包括:
当第一ETCD节点恢复后,自动向当前的主节点请求同步其本地的ETC仲裁容器关联的文件数据。
7.根据权利要求1-6任一所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,通过指令指定所述ETCD仲裁容器的网络模式为网桥,以及所述ETCD仲裁容器的IP分配模式为固定的集群网IP地址,其中,所述网桥在集群网卡上创建,分配的所述集群网IP地址被设定在与ETCD集群中各个ETCD节点同属于一个网段上。
8.根据权利要求1所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,在所述至少两个ETCD节点具体为包括第一ETCD节点和第二ETCD节点,其中,第一ETCD节点为leader,并且第一ETCD节点上运行有ETCD仲裁容器时,方法包括:
第一ETCD节点掉线后,释放VIP和ETCD仲裁容器的固定IP,第二ETCD节点将抢占到VIP,并在第二ETCD上启动仲裁容器;
在第二ETCD节点上,通过glusterFS同步过ETCD仲裁容器的文件数据,并通过pipework注入了固定ip,此时在第二ETCD节点上启动的ETCD仲裁容器和第一ETCD节点掉线之前在第一ETCD节点上运行的ETCD仲裁容器完全相同;
启动ETCD仲裁容器和第二ETCD会竞选新的leader,保证集群正常运行。
9.根据权利要求8所述的基于VRRP协议实现ETCD双节点高可用方法,其特征在于,当第一ETCD节点再次上线时,确认VIP在第二ETCD节点上,则自身不会启动ETCD仲裁容器;并保持从第二ETCD节点上获取同步的ETCD仲裁容器的关联文件数据。
10.一种基于VRRP协议实现ETCD双节点高可用装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-9任一所述的基于VRRP协议实现ETCD双节点高可用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111656446.6A CN114390052B (zh) | 2021-12-30 | 2021-12-30 | 一种基于vrrp协议实现etcd双节点高可用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111656446.6A CN114390052B (zh) | 2021-12-30 | 2021-12-30 | 一种基于vrrp协议实现etcd双节点高可用方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114390052A true CN114390052A (zh) | 2022-04-22 |
CN114390052B CN114390052B (zh) | 2023-10-10 |
Family
ID=81200712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111656446.6A Active CN114390052B (zh) | 2021-12-30 | 2021-12-30 | 一种基于vrrp协议实现etcd双节点高可用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114390052B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421971A (zh) * | 2022-08-16 | 2022-12-02 | 江苏安超云软件有限公司 | Etcd灾备故障恢复的方法及应用 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095930A1 (en) * | 2012-10-01 | 2014-04-03 | Microsoft Corporation | Enhanced arbitration protocol for nodes in a cluster |
US20160359955A1 (en) * | 2015-06-05 | 2016-12-08 | Nutanix, Inc. | Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines |
CN108616566A (zh) * | 2018-03-14 | 2018-10-02 | 华为技术有限公司 | raft分布式系统选主方法、相关设备及系统 |
US20190097900A1 (en) * | 2018-11-26 | 2019-03-28 | Bryan J. Rodriguez | Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes |
CN110086726A (zh) * | 2019-04-22 | 2019-08-02 | 航天云网科技发展有限责任公司 | 一种自动切换Kubernetes主节点的方法 |
CN110535714A (zh) * | 2018-05-25 | 2019-12-03 | 华为技术有限公司 | 一种仲裁方法及相关装置 |
CN110647580A (zh) * | 2019-09-05 | 2020-01-03 | 南京邮电大学 | 分布式容器集群镜像管理主节点、从节点、系统及方法 |
CN110750379A (zh) * | 2019-10-28 | 2020-02-04 | 无锡华云数据技术服务有限公司 | 一种etcd集群恢复方法、系统、设备及计算机介质 |
CN111984274A (zh) * | 2020-07-03 | 2020-11-24 | 新浪网技术(中国)有限公司 | 一种一键自动化部署etcd集群的方法及装置 |
CN112468596A (zh) * | 2020-12-02 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种集群仲裁方法、装置、电子设备及可读存储介质 |
US20210303527A1 (en) * | 2020-03-25 | 2021-09-30 | Pure Storage, Inc. | Mapping equivalent hosts at distinct replication endpoints |
-
2021
- 2021-12-30 CN CN202111656446.6A patent/CN114390052B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095930A1 (en) * | 2012-10-01 | 2014-04-03 | Microsoft Corporation | Enhanced arbitration protocol for nodes in a cluster |
US20160359955A1 (en) * | 2015-06-05 | 2016-12-08 | Nutanix, Inc. | Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines |
CN108616566A (zh) * | 2018-03-14 | 2018-10-02 | 华为技术有限公司 | raft分布式系统选主方法、相关设备及系统 |
CN110535714A (zh) * | 2018-05-25 | 2019-12-03 | 华为技术有限公司 | 一种仲裁方法及相关装置 |
US20190097900A1 (en) * | 2018-11-26 | 2019-03-28 | Bryan J. Rodriguez | Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes |
CN110086726A (zh) * | 2019-04-22 | 2019-08-02 | 航天云网科技发展有限责任公司 | 一种自动切换Kubernetes主节点的方法 |
CN110647580A (zh) * | 2019-09-05 | 2020-01-03 | 南京邮电大学 | 分布式容器集群镜像管理主节点、从节点、系统及方法 |
CN110750379A (zh) * | 2019-10-28 | 2020-02-04 | 无锡华云数据技术服务有限公司 | 一种etcd集群恢复方法、系统、设备及计算机介质 |
US20210303527A1 (en) * | 2020-03-25 | 2021-09-30 | Pure Storage, Inc. | Mapping equivalent hosts at distinct replication endpoints |
CN111984274A (zh) * | 2020-07-03 | 2020-11-24 | 新浪网技术(中国)有限公司 | 一种一键自动化部署etcd集群的方法及装置 |
CN112468596A (zh) * | 2020-12-02 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种集群仲裁方法、装置、电子设备及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115421971A (zh) * | 2022-08-16 | 2022-12-02 | 江苏安超云软件有限公司 | Etcd灾备故障恢复的方法及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN114390052B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853263B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
US9032248B1 (en) | Memory write tracking for virtual machines | |
US11755232B2 (en) | Transferring of snapshot data blocks to a virtual storage volume | |
CN107111457B (zh) | 跨集群冗余配置中的非间断的控制器替换 | |
ES2703901T3 (es) | Sistema de archivo distribuido mediante nodos de consenso | |
US12063270B2 (en) | Commissioning and decommissioning metadata nodes in a running distributed data storage system | |
EP4083786A1 (en) | Cloud operating system management method and apparatus, server, management system, and medium | |
US8560628B2 (en) | Supporting autonomous live partition mobility during a cluster split-brained condition | |
US9495381B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
CN107832138B (zh) | 一种扁平化的高可用namenode模型的实现方法 | |
WO2019231689A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US11709743B2 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
US20150019491A1 (en) | Replication of Data Between Mirrored Data Sites | |
CN104486319A (zh) | 适用于高可用系统的配置文件实时同步方法及其系统 | |
US11733874B2 (en) | Managing replication journal in a distributed replication system | |
CN112052230B (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN108833164B (zh) | 服务器控制方法、装置、电子设备及存储介质 | |
CN112506620A (zh) | 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质 | |
CN114390052A (zh) | 一种基于vrrp协议实现etcd双节点高可用方法和装置 | |
CN106326030B (zh) | 用于存储系统中的软切换的方法和装置 | |
CN115981919A (zh) | 数据库集群的管理控制方法、装置、设备及存储介质 | |
CN112019601B (zh) | 一种基于分布式存储Ceph的两节点实现方法及系统 | |
CN115202917A (zh) | 一种用于虚拟化平台下的分布式集群容错恢复方法及系统 | |
CN109376135A (zh) | 一种集群文件系统管理方法和系统 | |
CN117097725A (zh) | 基于云平台的Redis分布式部署方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |