一种集群的负载均衡方法、装置、设备和存储介质制造方法及图纸

技术编号:38545080 阅读:14 留言:0更新日期:2023-08-22 20:55
本申请公开一种集群的负载均衡方法、装置、设备和存储介质,通过在Kubernetes集群中部署负载均衡控制器,生成Controller容器;将LVS集群与Kubernetes集群进行连接,并在负载均衡控制器中设置LVS集群的配置文件;确定目标节点并对目标节点进行标记,得到标记节点,在标记节点中创建Ingress POD,通过Controller容器对Ingress POD进行监控;获取标记节点的IP地址以及postStart钩子脚本,利用postStart钩子脚本将标记节点的IP地址挂载到标记节点的Lo网卡上;当Controller容器监控到Ingress POD产生生命周期事件时,从标记节点的Lo网卡上获取到标记节点的IP地址;利用IP地址更新LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡。该方案可以在新建Ingress节点实现自动的负载均衡机制,提升集群的可用性和服务质量。提升集群的可用性和服务质量。提升集群的可用性和服务质量。

【技术实现步骤摘要】
一种集群的负载均衡方法、装置、设备和存储介质


[0001]本申请涉及负载均衡
,具体涉及一种集群的负载均衡方法、装置、设备和存储介质。

技术介绍

[0002]云计算系统通常将多个主机组成集群来为用户提供服务,并且通过负载均衡器来为用户提供访问入口。近几年来,以Kubernetes集群为基础的云原生技术飞速发展。Kubernetes集群自身提供了多种流量入口方案,以集群中的Ingress节点为例,Ingress节点不仅能提供4层和7层转发机制,而且可以摆脱云服务商限制,可以在私有云、边缘云上灵活部署。
[0003]但是Ingress节点自身缺少负载均衡机制,若要新建或者扩容Ingress节点,需要手动进行配置,这样会导致Kubernetes集群的负载均衡流程较长,容易出错,不利于集群的可用性和服务质量。

技术实现思路

[0004]有鉴于此,本申请提供了一种集群的负载均衡实现方法、装置、设备和存储介质,用于解决Ingress节点自身缺少负载均衡机制,若要新建或者扩容Ingress节点,需要手动进行配置,这样会导致Kubernetes集群的负载均衡流程较长,容易出错,不利于集群的可用性和服务质量的问题。
[0005]为实现以上目的,现提出的方案如下:
[0006]第一方面,一种集群的负载均衡方法,包括:
[0007]在Kubernetes集群中部署负载均衡控制器,同时生成与所述负载均衡控制器对应的Controller容器;
[0008]将预设的LVS集群与所述Kubernetes集群进行连接,并在所述负载均衡控制器中设置所述LVS集群的配置文件;
[0009]从所述Kubernetes集群的各个节点中确定目标节点;
[0010]利用预设的标签对所述目标节点进行标记,得到标记节点,并在所述标记节点中创建Ingress POD,通过所述Controller容器对所述Ingress POD进行监控;
[0011]获取所述标记节点的IP地址以及所述Ingress POD中的postStart钩子脚本,利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上;
[0012]当所述Controller容器监控到所述Ingress POD产生生命周期事件时,从所述标记节点的Lo网卡上获取到所述标记节点的IP地址;
[0013]利用所述IP地址更新所述LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡。
[0014]优选地,所述获取所述标记节点的IP地址,包括:
[0015]获取所述Kubernetes集群的命名空间;
[0016]在所述命名空间中部署预先定制的ConfigMap;
[0017]从所述ConfigMap中确定所述标记节点的IP地址。
[0018]优选地,所述利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上,包括:
[0019]对所述Ingress POD配置Nginx容器特权模式,并以预设的根用户运行所述Ingress POD;
[0020]启动所述Ingress POD,由Kubernetes集群的预先设置的生命周期管理流程自动触发所述postStart钩子脚本;
[0021]获取与所述标记节点的IP地址对应的修改脚本;
[0022]利用所述Ingress POD读取所述标记节点的IP地址,并执行所述修改脚本,以期利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上。
[0023]优选地,所述当所述Controller容器监控到所述Ingress POD产生生命周期事件时,从所述标记节点的Lo网卡上获取到所述标记节点的IP地址,包括:
[0024]当所述Controller容器监控到所述Ingress POD产生生命周期事件时,获取所述Kubernetes集群的应用程序编程接口,并利用所述应用程序编程接口查询所述Ingress POD的状态信息;
[0025]基于所述状态信息从所述标记节点的Lo网卡上获取到所述标记节点的IP地址。
[0026]优选地,所述利用所述IP地址更新所述LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡,包括:
[0027]在所述负载均衡控制器的镜像中安装Ansible,并启动所述Ansible,利用所述Ansible将所述IP地址增加到所述LVS集群的配置文件中;
[0028]重启所述LVS集群,并加载增加IP地址后的LVS集群的配置文件,以供所述LVS集群判断所述标记节点是否正常;
[0029]若是,则将所述标记节点加入至Kubernetes集群,以期在新建Ingress节点时实现Kubernetes集群的负载均衡。
[0030]优选地,还包括:
[0031]当所述标记节点发生节点宕机时,获取预先设置的preStop钩子脚本;
[0032]启动所述Ingress POD,由Kubernetes集群的预先设置的生命周期管理流程自动触发所述preStop钩子脚本;
[0033]利用所述preStop钩子脚本将所述标记节点的IP地址进行卸载。
[0034]第二方面,一种集群的负载均衡装置,包括:
[0035]部署生成模块,用于在Kubernetes集群中部署负载均衡控制器,同时生成与所述负载均衡控制器对应的Controller容器;
[0036]连接模块,用于将预设的LVS集群与所述Kubernetes集群进行连接,并在所述负载均衡控制器中设置所述LVS集群的配置文件;
[0037]目标节点确定模块,用于从所述Kubernetes集群的各个节点中确定目标节点;
[0038]标记模块,用于利用预设的标签对所述目标节点进行标记,得到标记节点,并在所述标记节点中创建Ingress POD,通过所述Controller容器对所述Ingress POD进行监控;
[0039]获取和挂载模块,用于获取所述标记节点的IP地址以及所述Ingress POD中的
postStart钩子脚本,利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上;
[0040]IP地址获取模块,用于当所述Controller容器监控到所述Ingress POD产生生命周期事件时,从所述标记节点的Lo网卡上获取到所述标记节点的IP地址;
[0041]更新模块,用于利用所述IP地址更新所述LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡。
[0042]优选地,所述挂载模块包括:
[0043]配置运行模块,用于对所述Ingress POD配置Nginx容器特权模式,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群的负载均衡方法,其特征在于,包括:在Kubernetes集群中部署负载均衡控制器,同时生成与所述负载均衡控制器对应的Controller容器;将预设的LVS集群与所述Kubernetes集群进行连接,并在所述负载均衡控制器中设置所述LVS集群的配置文件;从所述Kubernetes集群的各个节点中确定目标节点;利用预设的标签对所述目标节点进行标记,得到标记节点,并在所述标记节点中创建Ingress POD,通过所述Controller容器对所述Ingress POD进行监控;获取所述标记节点的IP地址以及所述Ingress POD中的postStart钩子脚本,利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上;当所述Controller容器监控到所述Ingress POD产生生命周期事件时,从所述标记节点的Lo网卡上获取到所述标记节点的IP地址;利用所述IP地址更新所述LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡。2.根据权利要求1所述的方法,其特征在于,所述获取所述标记节点的IP地址,包括:获取所述Kubernetes集群的命名空间;在所述命名空间中部署预先定制的ConfigMap;从所述ConfigMap中确定所述标记节点的IP地址。3.根据权利要求1所述的方法,其特征在于,所述利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上,包括:对所述Ingress POD配置Nginx容器特权模式,并以预设的根用户运行所述Ingress POD;启动所述Ingress POD,由Kubernetes集群的预先设置的生命周期管理流程自动触发所述postStart钩子脚本;获取与所述标记节点的IP地址对应的修改脚本;利用所述Ingress POD读取所述标记节点的IP地址,并执行所述修改脚本,以期利用所述postStart钩子脚本将所述标记节点的IP地址挂载到所述标记节点的Lo网卡上。4.根据权利要求1所述的方法,其特征在于,所述当所述Controller容器监控到所述Ingress POD产生生命周期事件时,从所述标记节点的Lo网卡上获取到所述标记节点的IP地址,包括:当所述Controller容器监控到所述Ingress POD产生生命周期事件时,获取所述Kubernetes集群的应用程序编程接口,并利用所述应用程序编程接口查询所述Ingress POD的状态信息;基于所述状态信息从所述标记节点的Lo网卡上获取到所述标记节点的IP地址。5.根据权利要求1所述的方法,其特征在于,所述利用所述IP地址更新所述LVS集群的配置文件,以期在新建Ingress节点时实现Kubernetes集群的负载均衡,包括:在所述负载均衡控制器的镜像中安装Ansible,并启动所述Ansible,利用所述Ansible将所述IP地址增加到所述LVS集群的配置文件中;重启所述LVS集群,...

【专利技术属性】
技术研发人员:江帆梁苑文成思敏马幸晖
申请(专利权)人:天翼数字生活科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1