一种基于服务器虚拟化环境的容器高可用方法和系统与流程

文档序号:23090045发布日期:2020-11-27 12:41阅读:218来源:国知局
一种基于服务器虚拟化环境的容器高可用方法和系统与流程

本发明属于服务器云计算技术领域,特别涉及一种基于服务器虚拟化环境的容器高可用方法和系统。



背景技术:

随着容器技术的不断发展,相关技术日益成熟,虚拟化软件也逐渐与容器技术相结合,利用容器的轻量、消耗少、部署快、利用率高等特性,会将虚拟化系统中某些重要的服务功能容器来实现,并在虚拟化系统中完成对于容器的管理,因为容器中部署着虚拟化系统中的重要服务,那么如何保证容器的高可用就显得尤为重要。

现有技术中,当出现容器所在宿主机故障或者容器本身发生故障被关闭,因此如何在集群中其他宿主机上把容器重新开启,保证容器在故障后能自动恢复,保证重要业务的持续服务能力是亟待结局的问题。



技术实现要素:

为了解决上述技术问题,本发明提出了一种基于服务器虚拟化环境的容器高可用方法和系统,解决了在虚拟化环境中,集群中部署有重要服务的容器的高可用问题。

为实现上述目的,本发明采用以下技术方案:一种基于服务器虚拟化环境的容器高可用方法,包括以下步骤:

集群中所有主机以固定时间间隔和预设数据格式上报容器运行信息;

解析所述容器运行信息,并根据解析后的容器运行信息判断容器的运行状态,在容器出现离线且未重启的情况下,首先通过判断故障时所述容器所在宿主机与上报信息主机是否相同,然后判断上报信息主机与所述容器是否位于同一交换机,如果在同一交换机,则重启所述容器,同时将容器高可用信息至于缓存队列。

进一步的,所述固定时间间隔的范围为15秒至30秒。

进一步的,所述预设数据格式为json字符格式。

进一步的,所述容器运行信息包括容器唯一标识、所在宿主机ip、发生故障时间戳、容器状态和上报信息主机ip。

进一步的,解析所述容器运行信息包括将容器运行信息由json字符格式解析成对象格式。

进一步的,所述根据容器运行信息判断容器的运行状态,在容器出现离线且未重启的情况下,首先通过判断故障时所述容器所在宿主机与上报信息主机是否相同,然后判断上报信息主机与所述容器是否位于同一交换机,如果在同一交换机,则重启所述容器,同时将容器高可用信息至于缓存队列包括:

根据容器运行信息判断容器的运行状态;如果所述容器出现离线,则通高可用触发信息队列中是否包含所述容器相同的故障信息;如果不包含,则退出;如果包含,则判断距离上次高可用时间间隔是否超过阈值;

如果不超过阈值,则退出;如果超过阈值,故障时所述容器所在宿主机与上报信息主机不相同,则判断所述上报信息主机与所述容器是否位于同一交换机;

如果不在同一交换机,则退出,如果在同一交换机,在所述上报信息主机上重启所述容器,同时将容器高可用信息至于缓存队列。

进一步的,所述容器高可用信息包括容器id、原宿主机ip、故障时间戳、重启容器主机ip、重启任务id和高可用发生时间。

本发明还提出了一种基于服务器虚拟化环境的容器高可用系统,包括底层上报模块,上报信息监听模块和高可用处理模块;

所述底层上报模块用于集群中所有主机以固定时间间隔和预设数据格式上报容器运行信息;

所述上报监听模块用于监听和解析所述容器运行信息;

所述高可用模块用于根据解析后的容器运行信息判断容器的运行状态,在容器出现离线且未重启的情况下,首先通过判断故障时所述容器所在宿主机与上报信息主机是否相同,然后判断上报信息主机与所述容器是否位于同一交换机,如果在同一交换机,则重启所述容器,同时将容器高可用信息至于缓存队列。

进一步的,所述系统还包括高可用触发信息缓存队列;

所述高可用触发信息缓存队列用于缓存重启容器命令的容器高可用信息。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明提出了一种基于服务器虚拟化环境的容器高可用方法和系统,特别涉及arm64服务器。该方法包括以下步骤:集群中所有主机以固定时间间隔和预设数据格式上报容器运行信息;解析容器运行信息,并根据解析后的容器运行信息判断容器的运行状态,在容器出现离线且未重启的情况下,首先通过判断故障时所述容器所在宿主机与上报信息主机是否相同,然后判断上报信息主机与容器是否位于同一交换机,如果在同一交换机,则重启容器,同时将容器高可用信息至于缓存队列。当底层上报容器信息中状态变更为正常,查到缓存队列中存在该容器触发高可用信息,则将该信息从队列中移除。基于本发明提出的一种基于服务器虚拟化环境的容器高可用方法,还提出了一种基于服务器虚拟化环境的容器高可用系统,本发明解决的是虚拟化环境中,集群中部署有重要服务的容器的高可用问题,当容器故障,对于集群来说会导致重要服务不可用,造成不可估计的损失,而本发明可以避免容器发生长时间的故障,保证容器故障后,自动将容器在合适的主机上重启,保证重要服务的不中断,本发明也通过固定时间间隔底层上报,超过时间阈值没启动会继续重启,以及缓存队列机制,保证容器实例的正确性和唯一性,提高了整个虚拟化系统的可靠性。

附图说明

如图1为本发明实施例1一种基于服务器虚拟化环境的容器高可用方法流程图;

如图2为本发明实施例2一种基于服务器虚拟化环境的容器高可用系统示意图。

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例1

本发明实施例1提出了一种基于服务器虚拟化环境的容器高可用方法,避免容器发生长时间的故障,保证容器故障后,自动将容器在合适的主机上重启,保证重要服务的不中断。如图1给出了一种基于服务器虚拟化环境的容器高可用方法流程图。

在步骤s101中,开始处理该流程,集群中所有主机以固定时间间隔和预设数据格式上报容器运行信息;监听和解析容器运行信息,将容器运行信息由json字符格式解析成对象格式。

集群中有若干台主机,其中设定容器运行在某台主机上,每隔固定时间间隔,集群中所有的主机都会上报容器的运行信息,防止某些主机故障如断网都无法上报信息的情况。其中,固定时间间隔的范围为15秒至30秒,预设数据格式为json字符格式。容器运行信息包括容器唯一标识、所在宿主机ip、发生故障时间戳、容器状态和上报信息主机ip。

在步骤s102中,根据解析后的容器运行信息判断容器的运行状态,如果判断容器的运行状态,则执行步骤s103,如果离线,则执行步骤s106。

在步骤s103中,判断容器在缓存队列中是否有相应的记录,如果有相应的记录,则执行步骤s104,否则执行步骤s105。

在步骤s104中,移除缓存队列中容器的信息。

在步骤s105中,流程结束。

在步骤s106中,判断故障时容器所在宿主机与上报信息主机是否相同,即容器在缓存队列中是否有相应的记录。如果有相应的记录,则执行步骤s107,否则执行步骤s108。

在步骤s107中,判断距离上次高可用时间间隔是否超过阈值,在本发明中时间阈值设置为2分钟。如果超过时间阈值,则执行步骤s110。

在步骤s108中,重启容器。

在步骤s109中,将高可用触发信息加入缓存队列。

在步骤s110中,故障时所述容器所在宿主机与上报信息主机不相同,判断所述上报信息主机与所述容器是否位于同一交换机。如果不在同一交换机,则执行步骤s105。如果在同一交换机,则执行步骤s111。

在步骤s111中,重启容器。

在步骤s112中,更新高可用列表中的高可用信息。容器高可用信息包括容器id、原宿主机ip、故障时间戳、重启容器主机ip、重启任务id和高可用发生时间。当底层上报容器信息中状态变更为正常,查到缓存队列中存在该容器触发高可用信息,则将该信息从队列中移除。

基于本发明提出的一种基于服务器虚拟化环境的容器高可用方法,还提出了一种基于服务器虚拟化环境的容器高可用系统。如图2给出了一种基于服务器虚拟化环境的容器高可用系统示意图。该系统包括:底层上报模块,上报信息监听模块和高可用处理模块。

底层上报模块用于集群中所有主机以固定时间间隔和预设数据格式上报容器运行信息。

上报监听模块用于监听和解析所述容器运行信息。

高可用模块用于根据解析后的容器运行信息判断容器的运行状态,在容器出现离线且未重启的情况下,首先通过判断故障时所述容器所在宿主机与上报信息主机是否相同,然后判断上报信息主机与所述容器是否位于同一交换机,如果在同一交换机,则重启所述容器,同时将容器高可用信息至于缓存队列。当底层上报容器信息中状态变更为正常,查到缓存队列中存在该容器触发高可用信息,则将该信息从队列中移除。

系统还包括高可用触发信息缓存队列;高可用触发信息缓存队列用于缓存重启容器命令的容器高可用信息。因为每次故障,集群中所有的主机都会上报故障信息,而当找到满足条件的主机下发重启容器的命令后,将对应的信息加入缓存队列,其他主机的上报信息时,查到该缓存队列中已经重启过,就不再重复下发,避免出现一个容器的多个实例。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1