本发明涉及网络通信,尤其涉及一种基于云原生网关的流量控制方法、系统、设备及介质。
背景技术:
1、在云环境中,kubernetes(简称k8s)集群的部署和运维已成为关键的基础设施之一。随着云原生技术的普及,k8s以其强大的pod(即k8s中的一个应用容器)编排能力,在各个领域得到了广泛应用。然而,在安全性要求较高的云场景中,当k8s集群内的pod访问外部资源时,需要通过网闸进行流量控制和管理,对指定的流量进行放通。
2、目前,k8s的网络模型通常分为overlay和underlay两种。overlay模型通过nat(network address translation,网络地址转换)技术,将pod的流量转发到宿主机ip(internet protocol,互联网协议)地址,从而通过宿主机与外部网络通信。而underlay模型则允许pod直接使用其独立ip与外部网络通信,无需通过宿主机中转。
3、然而,上述两种网络模型都存在一定的缺陷,在underlay模型中,网闸需要为每个pod的ip地址配置相应的放通规则,导致配置规则数量大、管理复杂;在overlay模型中,虽然通过nat将pod的流量统一转换为宿主机ip地址对外访问,简化了网闸的配置,但是网闸无法指定放通的pod,导致无法精细化管控pod的流量。
技术实现思路
1、本发明提供一种基于云原生网关的流量控制方法、系统、设备及介质,用以解决相关技术中流量管控繁琐、复杂,无法精细化管理的缺陷。
2、本发明提供一种基于云原生网关的流量控制方法,包括:
3、在接收到域名解析请求的情况下,对所述域名解析请求中携带的待访问域名进行解析,得到所述待访问域名对应的ip地址,所述域名解析请求是pod在接收到域名访问请求的情况下发送的;
4、基于所述ip地址,从路由转发规则中匹配得到目标路由,并从地址转换规则中匹配得到目标转换规则;
5、基于所述目标路由,将所述域名访问请求对应的流量转发到网关节点;
6、基于所述目标转换规则,将所述流量的ip地址转换为所述网关节点的ip地址,以使所述pod基于所述网关节点的ip地址对所述待访问域名进行访问。
7、根据本发明提供的一种基于云原生网关的流量控制方法,所述路由转发规则和所述地址转换规则的配置步骤包括:
8、在监听到网关规则配置请求的情况下,对所述网关规则配置请求中携带的目的域名进行解析,得到所述目的域名对应的ip地址;
9、将所述ip地址更新到路由资源配置信息和规则资源配置信息中;
10、基于更新后的所述路由资源配置信息,配置所述路由转发规则;
11、基于更新后的所述规则资源配置信息,获取pod集合,并应用所述pod集合和所述ip地址,配置所述地址转换规则。
12、根据本发明提供的一种基于云原生网关的流量控制方法,所述得到所述目的域名对应的ip地址,之后还包括:
13、将所述目的域名和所述目的域名的解析结果存储在缓存中,所述解析结果包括所述ip地址和所述目的域名的解析时间。
14、根据本发明提供的一种基于云原生网关的流量控制方法,所述在监听到网关规则配置请求的情况下,对所述网关规则配置请求中携带的目的域名进行解析,得到所述目的域名对应的ip地址,包括:
15、在监听到网关规则配置请求的情况下,将所述网关规则配置请求中携带的目的域名与所述缓存中的目的域名进行比较,得到域名比较结果,并将当前时间与所述缓存中所述目的域名的解析时间进行比较,确定时间差;
16、在所述域名比较结果为相同且所述时间差小于预设阈值的情况下,基于所述缓存,得到所述目的域名对应的ip地址;
17、在所述域名比较结果为不同或所述时间差大于预设阈值的情况下,对所述网关配置请求中携带的目的域名进行解析,得到所述目的域名对应的ip地址。
18、根据本发明提供的一种基于云原生网关的流量控制方法,所述路由转发规则和所述地址转换规则的配置步骤还包括:
19、基于预设频率,获取所有域名的当前解析结果,并将所述当前解析结果与所述缓存中的解析结果进行比较;
20、在比较结果为不一致的情况下,基于所述当前解析结果,对所述缓存中的解析结果进行更新,并对所述路由转发规则和所述地址转换规则进行更新。
21、根据本发明提供的一种基于云原生网关的流量控制方法,所述网关规则以pod的ip地址作为源地址,以域名作为目的地址。
22、本发明还提供一种基于云原生网关的流量控制系统,包括:
23、域名服务器,用于在接收到域名解析请求的情况下,对所述域名解析请求中携带的待访问域名进行解析,得到所述待访问域名对应的ip地址,所述域名解析请求是pod在接收到域名访问请求的情况下发送的;
24、域名解析模块,用于在查询到所述ip地址的情况下,将所述ip地址发送至路由管理模块和规则管理模块;
25、路由管理模块,用于基于所述ip地址,从路由转发规则中匹配得到目标路由,并基于所述目标路由,将所述域名访问请求对应的流量转发到网关节点;
26、规则管理模块,用于基于所述ip地址,从地址转换规则中匹配得到目标转换规则,并基于所述目标转换规则,将所述流量的ip地址转换为所述网关节点的ip地址,应用所述网关节点的ip地址对所述待访问域名进行访问。
27、根据本发明提供的一种基于云原生网关的流量控制系统,所述域名解析模块还用于在监听到网关规则配置请求的情况下,向所述域名服务器发送域名解析请求;
28、所述域名服务器用于基于所述域名解析请求,对所述网关规则配置请求中携带的目的域名进行解析,得到所述目的域名对应的ip地址;
29、所述域名解析模块用于将接收到的所述ip地址更新到路由资源配置信息和规则资源配置信息中;
30、所述路由管理模块用于基于更新后的所述路由资源配置信息,获取所述目的域名对应的ip地址,并应用所述ip地址配置所述路由转发规则;
31、所述规则管理模块用于基于更新后的所述规则资源配置信息,获取pod集合和所述目的域名对应的ip地址,并应用所述pod集合和所述ip地址配置所述地址转换规则。
32、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于云原生网关的流量控制方法。
33、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于云原生网关的流量控制方法。
34、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于云原生网关的流量控制方法。
35、本发明提供的基于云原生网关的流量控制方法、系统、设备及介质,通过对待访问域名进行解析,得到待访问域名对应的ip地址,并基于ip地址从路由转发规则和地址转换规则中自动匹配得到目标路由和目标转换规则,由此可以根据目标路由,将流量转发到网关节点,并根据目标转换规则,将流量的ip地址转换为网关节点的ip地址,实现了将pod流量转换成网关节点的ip地址,网闸只需要放通网关节点的ip地址即可实现对外访问,减少了网闸的配置难度。此外,通过在网关节点过滤放通的pod,实现了精细化的pod流量管控。