The invention relates to a flexible task scheduling system and method based on Docker cluster, belonging to the field of computer technology. This includes building a Rancher cluster, creating a load balancer, creating a task scheduler, creating a resource monitor, creating an elastic controller, and creating a Docker private mirror repository. The distributed task scheduling system constructed by Docker cluster can effectively avoid single point of failure and improve the utilization ratio of physical resources; can dynamically increase or decrease the service servers according to the system load; has good flexibility and can adapt to sudden increase of requests; and can directly use Docker mirror reality. Now rapid deployment, when server downtime, can quickly restore the system running state, with strong stability and scalability.
【技术实现步骤摘要】
一种基于Docker集群的弹性任务调度系统及方法
本专利技术涉及计算机
,特别是涉及一种基于Docker集群的弹性任务调度系统。
技术介绍
经过多年的发展,云计算已经从研究阶段真正的步入大范围的使用阶段。包括搜索、电商、游戏等各种业务都已部署在数据中心,通过云计算的服务模式获得更高的资源利用率,更快的响应时间并且能够承担更大的并发访问量。因此,各大企业也争相整合现有硬件设备以搭建私有云,并将企业的业务迁入云端。在这种多业务的数据中心中,往往为每个业务提供多台运行相同业务的服务器,从而加大并行处理能力,加快请求响应速度。在这种前提下,任务调度成为数据中心需要解决的关键问题之一,它按照特定目标为用户请求选择合适的响应服务器。一般来说,任务调度可以通过硬件和软件两种方式来实现,硬件任务调度系统固化了调度算法,具有速度快的优点,但不够灵活且成本较高。而软件任务调度系统,虽然能够灵活的选择算法但是速度相对较慢且自身占用较多的服务器资源。此外,面对当前业务种类不断增加,突发访问量巨大等现实条件,这两种任务调度方法都存在着弹性较差的缺点,不能够根据业务请求量动态调整。在硬件实现方式中,当访问量突增时可能出现单点故障造成整个系统的瘫痪,为此只能通过增加硬件调度器的方式来实现横向扩展,这无疑将带来很高的成本,而当业务量下降时过多的硬件调度器将造成资源的浪费。相比之下,基于软件实现的任务调度可以通过简单的增加通用服务器来实现系统的扩展,甚至可以使用虚拟化技术来提升系统的资源利用率,但是传统的虚拟化技术自身将带来较大的额外开销,并且软件部署过程复杂,启动速度慢,不能够及时 ...
【技术保护点】
1.一种基于Docker集群的弹性任务调度系统,其特征在于,包括:(1)构建Rancher集群:选择其中一台服务器作为RancherServer节点,而包括RancherServer自身在内的全部N台服务器都作为RancherAgent节点,系统中的所有功能容器都分布在RancherAgent节点上;(2)创建负载均衡器:负载均衡器利用Nginx实现,拉取Nginx的Docker镜像后,需要配置高可用(HA)特性,通过结合Keepalived服务,当MASTER节点宕机时,能够快速启动BACKUP节点,使业务中断对用户来说是透明的;(3)创建任务调度器:任务调度器基于开源的Haproxy实现,基于一致性哈希算法改进的新任务调度算法,在Haproxy源码中增加算法后通过源码编译安装;(4)创建资源监控器:资源监控器基于Python语言开发,作为运行在Ubuntu操作系统的守护进程存在,实时请求各任务调度器的资源实用情况;(5)创建弹性控制器;弹性控制器由一组启动、关闭Docker容器的命令脚本以及调用脚本的应用程序组成,利用实时获取的资源监控器数据,自动调用相应脚本;(6)创建Docke ...
【技术特征摘要】
1.一种基于Docker集群的弹性任务调度系统,其特征在于,包括:(1)构建Rancher集群:选择其中一台服务器作为RancherServer节点,而包括RancherServer自身在内的全部N台服务器都作为RancherAgent节点,系统中的所有功能容器都分布在RancherAgent节点上;(2)创建负载均衡器:负载均衡器利用Nginx实现,拉取Nginx的Docker镜像后,需要配置高可用(HA)特性,通过结合Keepalived服务,当MASTER节点宕机时,能够快速启动BACKUP节点,使业务中断对用户来说是透明的;(3)创建任务调度器:任务调度器基于开源的Haproxy实现,基于一致性哈希算法改进的新任务调度算法,在Haproxy源码中增加算法后通过源码编译安装;(4)创建资源监控器:资源监控器基于Python语言开发,作为运行在Ubuntu操作系统的守护进程存在,实时请求各任务调度器的资源实用情况;(5)创建弹性控制器;弹性控制器由一组启动、关闭Docker容器的命令脚本以及调用脚本的应用程序组成,利用实时获取的资源监控器数据,自动调用相应脚本;(6)创建Docker私有镜像仓库;Docker私有镜像库按照Docker官方推荐的私有库安装方式构建,同时优化了私有库的查询过程。2.根据权利要求1所述的一种基于Docker集群的弹性任务调度系统,其特征在于,所述步骤(3)中新任务调度算法包括如下步骤:a)预处理,确定任务调度器副本数量:每隔固定时间间隔获取各任务调度器的CPU、内存及磁盘的使用率,分别用ci,mi,di,表示,其中i表示任务调度器序号,接下来,用如下公式计算每个任务调度器i的使用率加权和si:si=w1ci+w2mi+w3di其中w1+w2+w3=1,可以根据对不同资源的侧重进行调整,本发明中使用w1=0.4,w2=0.4,w3=0.2,得到每个任务调度器的使...
【专利技术属性】
技术研发人员:刘鹏,徐高潮,金镇君,丁言,李阳,葛佳琦,吴春毅,
申请(专利权)人:吉林大学,
类型:发明
国别省市:吉林,22
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。