CN111431740B - 数据的传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据的传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111431740B CN111431740B CN202010185431.5A CN202010185431A CN111431740B CN 111431740 B CN111431740 B CN 111431740B CN 202010185431 A CN202010185431 A CN 202010185431A CN 111431740 B CN111431740 B CN 111431740B
- Authority
- CN
- China
- Prior art keywords
- cluster
- application delivery
- delivery device
- configuration information
- application
- 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.)
- Active
Links
Images
Classifications
-
- 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/0893—Assignment of logical groups to network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Abstract
本发明公开了一种数据的传输方法、装置、设备及计算机可读存储介质,该方法包括步骤:根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。本发明实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种数据的传输方法、装置、设备及计算机可读存储介质。
背景技术
K8s是基于容器的集群管理平台,它的全称是Kubernetes,就是用8代替“ubernete”8个字符而成的缩写,是一个开源的容器编排引擎,用于管理云平台中多个主机上的容器化应用,K8s的目标是让部署容器化的应用简单并且高效,K8s提供了应用部署,规划,更新,维护的一种机制。目前支持K8s ingress的原生方案主要为ingress nginx,存在如下缺点:ingress nginx一般运行于集群节点中,需要另外暴露Nodeport或利用LoadBalancer去支持外部访问,但Nodeport模式需要暴露节点上的端口,不利于管理,一般只用于开发测试;LoadBalancer一般由云厂商提供收费服务,而且不方便支持7层服务,且nginx支持的负载均衡算法较少,健康检查监视器功能不完善。其中,NodePort服务是引导外部流量到你的服务的最原始方式,在所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。LoadBalancer服务暴露服务的标准方式,ingress定义7层服务中不同host(主机)和path(路径)调度到Service(服务)的对应关系。
由此可知,目前K8s集群无法直接向外部提供Pod(管理单元)级别的服务和负载均衡的支持。
发明内容
本发明的主要目的在于提供一种数据的传输方法、装置、设备及计算机可读存储介质,旨在解决现有的K8s集群无法直接向外部提供Pod(管理单元)级别的服务和负载均衡的支持的技术问题。
为实现上述目的,本发明提供一种数据的传输方法,所述数据的传输方法应用于集群管理平台K8s集群,所述数据的传输方法包括步骤:
根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;
通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;
将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
优选地,所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
获取所述变动资源对应的配置信息,确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
将所述第一IP地址、第二IP地址、端口号和负载均衡策略同步至所述应用交付设备中,以供所述应用交付设备将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
优选地,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤之后,还包括:
获取所述应用负载控制器的运行参数,根据所述运行参数确定接收所述变动资源配置信息的应用交付目标设备;
所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
将所述变动资源的配置信息同步至应用交付目标设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
优选地,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤包括:
通过所述应用负载控制器监测所述K8s集群的资源,并在监测到所述K8s集群的资源处于变动状态情况下,根据预设的资源同步周期检测当前时间是否为资源同步时间;
若检测到当前时间为所述资源同步时间,则获取所述K8s集群中的变动资源。
优选地,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤之后,还包括:
确定所述变动资源中与所述应用负载控制器对应的变动目标资源;
所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
将所述变动目标资源对应的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
优选地,所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤之后,还包括:
检测是否接收到关闭所述应用负载控制器的关闭指令;
若接收到所述关闭指令,则根据所述关闭指令关闭所述应用负载控制器;
若未接收到所述关闭指令,则通过所述应用负载控制器监测所述K8s集群的资源。
此外,为实现上述目的,本发明还提供一种数据的传输方法,所述数据的传输方法应用于应用交付设备,所述数据的传输方法包括以下步骤:
应用交付设备接收集群管理平台K8s集群通过应用负载控制器同步的配置信息,根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池;
通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求。
所述根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
优选地,所述若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池的步骤包括:
若接收到访问所述虚拟服务的访问请求,则确定所述访问请求是否为超文本传输安全协议HTTPS请求;
若所述访问请求是所述HTTPS请求,则将所述HTTPS请求转换为超文本传输协议HTTP请求,并确定所述HTTP请求对应的目标节点池。
优选地,所述通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求的步骤包括:
获取所述目标节点池对应的负载均衡策略,根据所述负载均衡策略确定所述K8s集群中与所述访问请求对应的待访问管理单元;
将所述访问请求发送给所述待访问管理单元,以供所述待访问管理单元执行所述访问请求。
优选地,所述通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求的步骤之后,还包括:
检测是否接收到所述待访问管理单元执行所述访问请求后返回的响应请求;
若接收到所述响应请求,则将所述响应请求发送给所述访问请求对应的客户端。
此外,为实现上述目的,本发明还提供一种数据的传输装置,所述数据的传输装置应用于集群管理平台K8s集群,所述数据的传输装置包括:
启动模块,用于根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;
监测模块,用于通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;
同步模块,用于将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
此外,为实现上述目的,本发明还提供一种数据的传输装置,所述数据的传输装置应用于应用交付设备,所述数据的传输装置包括:
接收模块,用于接收集群管理平台K8s集群通过应用负载控制器同步的配置信息;
修改模块,用于根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
确定模块,用于若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池;
发送模块,用于通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求。
此外,为实现上述目的,本发明还提供一种数据的传输设备,所述数据的传输设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的数据的传输程序,所述数据的传输程序被所述处理器执行时实现如上所述的数据的传输方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据的传输程序,所述数据的传输程序被处理器执行时实现如上所述的数据的传输方法的步骤。
本发明通过应用负载控制器监测K8s集群的资源,获取K8s集群中的变动资源,将该变动资源的配置信息同步至应用交付设备中,使应用交付设备具备K8s集群中最新Pod的配置信息,使应用交付设备成为K8s集群外部访问的负载均衡器,从而使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能,在K8s集群中接入具有丰富应用负载功能的应用交付设备,实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持。
附图说明
图1是本发明数据的传输方法第一实施例的流程示意图;
图2是本发明实施例中应用负载控制器的一种架构示意图;
图3是本发明数据的传输方法第三实施例的流程示意图;
图4是本发明数据的传输方法第四实施例的流程示意图;
图5是本发明数据的传输装置第一实施例的结构示意图;
图6是本发明数据的传输装置第二实施例的结构示意图;
图7是本发明实施例方案涉及的硬件运行环境的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据的传输方法,参照图1,图1为本发明数据的传输方法第一实施例的流程示意图。
本发明实施例提供了数据的传输方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先对本实施例中所需用到的专业词汇进行解释:
AD设备:就是应用交付设备,应用交付(AD)解决方案是对应用数据进行端到端的分析、调度、保护、加密和优化,通过多达20种应用探测机制,能够探测应用交付过程中的故障,并毫秒级切换,保障应用稳定;同时AD具备Web(WorldWideWeb,全球广域网)漏洞扫描、网络层DDOS(DistributeddenialofServiceattack,分布式拒绝服务攻击)攻击防护、应用层DDOS攻击防护,SSL(SecureSocketsLayer,安全套接层)加密功能(支持加密算法,支持商密国密混配等),保障应用从服务器至客户端的应用安全和数据安全。
kube-APIServer:K8s集群中提供的管理接口,对集群外部和内部提供不同的授权鉴权访问方式。
Pod:作为K8s集群中最小工作单元,最基本的管理单位(区别于容器),一个或多个容器可运行在一个Pod内,容器共享同一个Pod的网络环境;K8s以Pod为最小单位进行调度、扩展、共享资源、管理生命周期。
Service:因为Pod的生命周期不稳定,经常变化(创建或销毁、IP(InternetProtocol,网际互连协议)地址变动),因此需要对多个Pod副本进一步抽象,通过标签选择器选择具有相同标签的Pod,则定义这样一个Service,访问这个Service(集群内部提供固定的cluster_IP)就能负载均衡到多个Pod。
Endpoints:Service与Pod的一对多对应关系,即一个Service关联多个后端Pod。
ingress:定义7层服务中不同host(主机)和path调度到Service的对应关系,path就是URL(UniformResourceLocator,统一资源定位系统)地址后的路径。
Calico:一种提供网络管理方案的插件,可用于K8s集群的容器网络管理,一般使用其中的BGP(BorderGatewayProtocol,边界网关协议)运行模式(基于动态路由)。
Flannel:一种提供网络管理方案的插件,可用于K8s集群的容器网络管理,一般使用其中的VXLAN(VirtualExtensibleLocalAreaNetwork,虚拟扩展局域网)运行模式(基于隧道网络)。
client-go:从K8s集群代码中抽出来的一个客户端工具,Informer是client-go中的核心工具包,已经被Kubernetes中众多组件所使用。所谓Informer,其实就是一个带有本地缓存和索引机制的、可以注册Event Handler的client(客户端),本地缓存被称为Store,索引被称为Index。使用informer的目的是为了减轻API(ApplicationProgrammingInterface,应用程序接口)数据交互的压力而抽象出来的一个cache层,客户端对API Server数据的“读取”和“监听”操作都通过本地informer进行。
kube-controller-manager:运行管理控制器,是K8s集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。
kube-scheduler:kube-scheduler监视新创建没有分配到Node(节点)的Pod,为Pod选择一个Node。
kubelet:是主要的worker(工作)节点代理,监测已分配给它的Pod,负责如挂载Pod数据卷(Volume)、下载Pod的secrets(密钥)、通过Docker(应用容器引擎)运行Pod容器、定期对容器生命周期进行监测等功能实现。
kube-proxy:通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。
etcd:为Kubernetes提供默认的存储系统,保存所有集群数据。
configmap:配置字典,可通过环境变量或文件挂载方式注入配置到Pod使用。
namespace:命名空间,K8s集群中的概念,为K8s集群其它资源定义一个空间,用于隔离配置命名。
Node:指K8s集群中的节点,worker-Node则是除master(集群控制)节点外的工作节点,可以是物理机、虚拟机和/或云机器等。
K8s集群一般由master节点和多个worker(工作节点)节点组成,kube-APIServer,kube-controller-manager,kube-scheduler等运行在master上,kubelet和kube-proxy等运行在worker节点上,master节点和worker节点通过API Server和kubelet(后台命令行)完成交互通信,etcd存储整个集群的配置信息,Dashboard(前端操作界面)和kubectl作为集群的管理工具,Pod作为集群最基础的调度单元会被kube-scheduler调度分配至worker节点。
应用交付设备与K8s集群通过Flannel或Calico连通,即应用交付设备能直接访问Pod。应用交付设备通过自身VXLAN配置支持接入Flannel VXLAN网络,通过自身BGP配置支持接入Calico BGP。
参照图2,图2是本发明实施例中应用负载控制器的一种架构示意图。应用负载控制器包括命令控制行、应用总控模块、事件监测模块、节点轮询器、VXLAN管理模块、任务队列、配置管理模块、健康检查模块和日志模块。
其中,命令行控制:用于通过命令行和执行参数的形式启动控制负载控制器,可以独立运行一个进程,也可以生成镜像通过传入参数的形式运行。
应用总控模块:用于监听命令行和控制各类工作协程运行,如创建K8s集群资源的informer事件监听协程、节点轮询器协程等。
事件监测模块:通过生成各类资源的informer监听协程监听资源变化,从而触发对应资源的回调事件(add(增加),update(更新),delete(删除)),回调事件是将需要变动的K8s集群资源生成任务加入到任务队列。
节点轮询器:监听节点的变动(节点增删,地址变动等),将变动节点信息生成任务加入到任务队列。
VXLAN管理模块:当使用到flannel VXLAN网络并开启VXLAN管理功能时,需要使用到VXLAN管理模块,此模块将节点相关的FDB(Forwarding Data Base,转发数据库)和ARP表(Address Resolution Protocol,地址转换协议)信息生成同步任务,加入到任务队列。Calico BGP模式下只需要利用calicoctl配置和应用交付BGP配置。
任务队列:接收各类监听协程生成的任务,由配置管理模块进行消费处理。
配置管理模块:消费任务队列,通过应用交付设备的API进行配置管理,如进行配置对比和配置下发等。
健康检查模块:用于对外提供对自身(指应用负载控制器)的健康检查接口,如可用于K8s集群的监测探针Liveness Probe(存活探针)等,LivenessProbe用于判断容器是否存活(running状态),如果LivenessProbe探针探测到容器不健康,则kubelet杀掉该容器,并根据容器的重启策略做相应的处理;如果一个容器不包含LivenessProbe探针,则kubelet认为该容器的LivenessProbe探针返回的值永远是“Success”,即该容器永远都是存活的。
日志模块:日志模块是一个公共模块,按照Debug(调试),Info(信息),Warning(警告),Error(错误),Critical(严重),Fatal(致命),Panic(死机)等划分日志等级,并按等级、日期等生成日志文件,其余各模块均可直接调用日志模块中的日志。其中,Debug是面向功能开发人员,一般在功能开发阶段使用,用来给开发人员检查功能是否正常的;Info用来查看新开发特性或者bugfix是否正常;Warning是不会对系统造成影响的非正常流程;Error是会对系统造成影响的非正常流程,可自我修复,不影响系统稳定性;Critical是产生了不可逆的错误,系统无法正常工作;Fatal指出每个严重的错误事件将会导致应用程序的退出。
数据的传输方法应用于K8s集群,数据的传输方法包括:
步骤S10,根据接收的启动指令启动与所述K8s集群对应的应用负载控制器。
定时或者实时检测是否接收到启动应用负载控制器的启动指令,其中,定时对应的时长可根据具体需要而设置,本实施例对定时对应的时长不做具体限制。该启动指令可由用户通过K8s集群的节点对应的设备触发的,该设备可为物理机和虚拟机等;启动指令也可为K8s集群节点中设置的定时任务定时触发的,本实施例不限制启动指令的触发方式。当接收到启动应用负载控制器的启动指令后,根据启动指令启动应用负载控制器;当未接收到启动应用负载控制器的启动指令后,继续检测是否接收到启动应用负载控制器的启动指令。
需要说明的是,应用负载控制器有两种运行模式,第一种运行模式是应用负载控制器直接运行在K8s集群的外部,通过预先设置好的配置文件访问K8s集群的kube-APIServer,以通过应用负载控制器监测K8s集群资源;第二种运行模式是应用负载控制器作为K8s集群的镜像容器,由K8s集群管理。需要说明的是,两种运行模式在功能上并没有区别,都是运行前设置好了必要的运行参数,在第一种运行模式中,运行参数设置在配置文件中,运行参数包括但不限于应用交付设备的IP地址、账号和密码。在本实施例中,应用负载控制器优先以第二种运行模式运行,即应用负载控制器作为Pod运行在K8s集群中,由K8s集群统一管理,通过kube-APIServer访问监听K8s集群的资源变动信息。
步骤S20,通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源。
当启动应用负载控制器后,通过应用负载控制器监测K8s集群的资源,得到监测结果,并根据监测结果确定K8s集群中的变动资源。可以理解的是,监测结果就是监测到的K8s集群的资源。具体地,应用负载控制器启动后,会通过informer一直监听K8s集群资源的变化,具体监听的资源包括但不限于K8s集群的ingress、configmap、Service、endpoints、secret、namespace和Node等。在通过应用负载控制器监测K8s集群资源的过程中,可在监测到K8s集群资源存在变动时,就触发回调事件,获取K8s集群中的变动资源。可以理解的是,K8s集群中的变动资源可通过将K8s集群中变动前的资源与变动后的资源进行对比,从而确定K8s集群中的变动资源。
进一步地,所述步骤S20包括:
步骤a,通过所述应用负载控制器监测所述K8s集群的资源,并在监测到所述K8s集群的资源处于变动状态情况下,根据预设的资源同步周期检测当前时间是否为资源同步时间。
步骤b,若检测到当前时间为所述资源同步时间,则获取所述K8s集群中的变动资源。
进一步地,通过应用负载控制器监测K8s集群中的资源,并在监测到K8s集群的资源处于变动状态情况下,获取预设的资源同步周期,其中,资源同步周期可根据具体需要而设置,本实施例不限制资源同步周期的大小。当获取到资源同步周期后,获取当前时间和上一次资源同步时间,根据资源同步周期确定当前时间是否为资源同步时间。若确定当前时间为资源同步时间,则获取K8s集群中的变动资源。如当资源同步周期为10小时,若上一次资源同步时间为2019年12月18日的凌晨1点钟,则可确定当前的资源同步时间为2019年12月18日上午11点钟,若当前时间为2019年12月18日上午11点钟,则可确定当前时间为资源同步时间。进一步地,资源同步时间可为一个时间点,也可为一个时间段,当资源同步时间为一个时间段时,检测当前时间是否在资源同步时间对应的时间段内。若检测到当前时间在资源同步时间对应的时间段内,则获取K8s集群中的变动资源。
步骤S30,将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
当获取到K8s集群的变动资源后,获取变动资源对应的配置信息,将变动资源的配置信息转换为应用交付设备的配置信息,即将变动资源的配置信息同步至应用交付设备中,控制应用交付设备成为K8s集群外部访问的负载均衡器,即使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能。
进一步地,步骤S30包括:
步骤c,获取所述变动资源对应的配置信息,确定所述配置信息中所述K8s集群管理单元对应的第一IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略。
步骤d,将所述第一IP地址、第二IP地址、端口号和负载均衡策略同步至所述应用交付设备中,以供所述应用交付设备将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
具体地,将变动资源的配置信息同步至应用交付设备中的过程可为:获取变动资源中Service所调用的Pod的IP地址,确定K8s集群中选择Service所调用的Pod作为后端服务的ingress,获取该ingress对应的IP地址,以及获取该ingress对应的端口号和负载均衡策略,为了区分,本实施例将Pod的IP地址的记为第一IP地址,将ingress对应的IP地址记为第二IP地址。需要说明的是,Pod为K8s集群中的管理单元,一个Service可调用的一个Pod或者调用多个Pod,每个Pod都存在对应的IP地址,ingress为K8s集群中的对外服务。由此可知,配置信息包括第一IP地址、第二IP地址、端口号和负载均衡策略。当得到第一IP地址、第二IP地址、端口号和负载均衡策略后,将第一IP地址、第二IP地址、端口号和负载均衡策略同步至应用交付设备中。当应用交付设备得到第一IP地址、第二IP地址、端口号和负载均衡策略后,应用交付设备将第一IP地址确定为其节点池的IP地址,将第二IP地址确定为其虚拟服务的虚拟IP地址,将端口号确定为节点池的端口号,以及将负载均衡策略转换为应用交付设备中节点池的负载均衡策略,以使应用交付设备成为K8s集群外部访问的负载均衡器。需要说明的是,当应用交付设备中的节点池中对应多个节点,则这多个节点池的端口号都为上述ingress对应的端口号。进一步地,在将配置信息同步发送给应用交付设备时,会将节点池调度策略和SSL卸载策略等一起发送给应用交付设备。
为了便于理解,以下举例说明将变动资源的配置信息同步至应用交付设备中的过程。
K8s集群中,在变动资源对应的Service的配置代码中,K8s集群的配置中定义了一个名为“myweb-svc3”的Service,通过selector(选择器)选择带有标签“app:myweb3”的Pod,假设选择了3个Pod,它们的Pod IP地址可分别为:192.170.40.15、192.170.41.1和192.170.42.1,这些Pod IP地址将作为应用交付设备的节点池配置信息。
K8s集群中,在变动资源对应的ingress的配置代码中,K8s集群的配置定义了一个名称“ingress-web”的ingress配置,ServiceName:myweb-svc3表示这个ingress选择了名为myweb-svc3的Service作为后端服务,相当于选择了上述Service的3个Pod IP地址作为最终的后端服务,这几个Pod的端口为ServicePort:8080;sangfor.com.cn/ip:"10.10.43.88"转化为应用交付设备中虚拟服务的虚拟IP地址;sangfor.com.cn/http-port:"80"转化为应用交付设备中虚拟服务中的虚拟端口号;sangfor.com.cn/balance:"WEIGHTED-ROUND-ROBIN"转化为应用交付设备中节点池的负载均衡策略。
应用交付设备中,在应用交付设备节点池的配置代码中,Nodes数组里面就是对应Service的配置代码和ingresse的配置代码中涉及的3个Pod,节点池的端口号由ingress中的“ServicePort:8080”转化而来;Method对应ingress中sangfor.com.cn/balance:"WEIGHTED-ROUND-ROBIN"表示应用交付设备中节点池的负载均衡策略。
应用交付设备中,在应用交付设备虚拟服务的配置代码中,"pool":"ingress_default_myweb-svc3"定义了这个虚拟服务会调度到应用交付设备节点池对应节点;虚拟服务的虚拟IP地址由ingress中的sangfor.com.cn/ip:"10.10.43.88"定义;虚拟服务的虚拟端口号由ingress中的sangfor.com.cn/http-port:"80"定义。
由Service的配置代码、ingresse的配置代码、节点池的配置代码和虚拟服务的配置代码可知,K8s集群中的ingress、Service和Pod的配置信息并不能与应用交付设备中的虚拟服务、节点池等一一对应,因此需要由ingress、Service等K8s集群配置信息的整体关联关系转化为应用交付设备中的虚拟服务、节点池等配置信息。
本实施例通过应用负载控制器监测K8s集群的资源,获取K8s集群中的变动资源,将该变动资源的配置信息同步至应用交付设备中,使应用交付设备具备K8s集群中最新Pod的配置信息,使应用交付设备成为K8s集群外部访问的负载均衡器,从而使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能,在K8s集群中接入具有丰富应用负载功能的应用交付设备,实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持,即实现了南北流量负载均衡的效果。
进一步地,提出本发明数据的传输方法第二实施例。
所述数据的传输方法第二实施例与所述数据的传输方法第一施例的区别在于,所述数据的传输方法还包括:
步骤e,获取所述应用负载控制器的运行参数,根据所述运行参数确定接收所述变动资源配置信息的应用交付目标设备。
步骤S30包括:
步骤f,将所述变动资源的配置信息同步至应用交付目标设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
当启动应用负载控制器后,获取应用负载控制器的运行参数,根据该运行参数确定接收变动资源配置信息的应用交付目标设备。其中,运行参数包括但不限于应用交付设备的IP地址、账户和密码。可以理解的是,每一应用交付设备都存在对应的IP地址,通过该IP地址可唯一确定一个应用交付设备,即通过运行参数中IP地址即可确定应用交付目标设备。账户和密码可用于用户登录应用交付设备。可以理解的是,在运行参数中,也可以包括其它可以唯一确定应用交付设备的标识信息。当确定应用交付目标设备后,将变动资源的配置信息同步至应用交付目标设备中,控制应用交付设备成为K8s集群外部访问的负载均衡器,即使应用交付设备成为K8s集群外部访问的负载均衡器。
本实施例通过应用负载控制器的运行参数确定接收配置信息的应用交付设备,将K8s集群中资源的配置信息同步至所确定的应用交付设备中,提高了配置信息在K8s集群和应用交付设备之间传输的准确率。
进一步地,所述数据的传输方法还包括:
步骤g,确定所述变动资源中与所述应用负载控制器对应的变动目标资源。
所述步骤S30包括:
步骤h,将所述变动目标资源对应的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
当获取到K8s集群中的变动资源后,确定变动资源中应用负载控制器所关心的变动资源,应用负载控制器所关心的变动资源就是应用负载控制器对应的变动目标资源。具体地,当确定变动目标资源后,处理K8s集群中变动目标资源对应的依赖关系,根据该依赖关系获取变动目标资源对应的配置信息。如在K8s集群中,变动目标资源为ingress,而ingress会调用Service,即ingress和Service有依赖关系,此时要获取存在依赖关系的资源ingress和Service的配置信息,将存在依赖关系的资源ingress和Service的配置信息确定为变动目标资源对应的配置信息。当确定变动目标资源对应的配置信息后,将变动目标资源对应的配置信息同步至应用交付设备中,控制应用交付设备成为K8s集群外部访问的负载均衡器。
本实施例在确定K8s集群中的变动资源后,只获取与应用负载控制器对应的变动目标资源的配置信息,而不获取应用负载控制器不关心的变动资源的配置信息,只将变动目标资源对应的配置信息同步到应用交付设备中,降低了所传输配置信息的数据量。
进一步地,所述数据的传输方法还包括:
步骤i,检测是否接收到关闭所述应用负载控制器的关闭指令。
步骤j,若接收到所述关闭指令,则根据所述关闭指令关闭所述应用负载控制器。
步骤k,若未接收到所述关闭指令,则通过所述应用负载控制器监测所述K8s集群的资源。
当将变动资源的配置信息同步至应用交付设备中后,检测是否接收到关闭应用负载控制器的关闭指令。其中,关闭指令的触发方式和启动指令的触发方式相同,在此不再重复赘述。可以理解的是,该关闭指令可以手动触发,也可以自动触发。若接收到关闭指令,则根据该关闭指令关闭应用负载控制器;若未接收到关闭指令,则通过应用负载控制器继续监测K8s集群的资源。
本实施例通过在接收到关闭应用负载控制器的关闭指令时,根据该关闭指令关闭应用负载控制器,避免应用负载控制器一直处于启动状态,从而浪费K8s集群的资源。
进一步地,提出本发明数据的传输方法第三实施例,数据的传输方法应用于应用交付设备,参照图3,所述数据的传输方法还包括:
步骤S40,应用交付设备接收集群管理平台K8s集群通过应用负载控制器同步的配置信息,根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
当K8s集群通过应用负载控制器获取需要同步的配置信息后,将配置信息发送给应用交付设备。当应用交付设备接收到K8s集群通过应用负载控制器同步的配置信息后,应用交付设备根据配置信息修改其节点池和虚拟服务的配置信息,从而使应用交付设备成为K8s集群外部访问的负载均衡器。
进一步地,所述根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
步骤l,确定所述配置信息中所述K8s集群管理单元对应的第一IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
步骤m,将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,应用交付设备根据配置信息修改节点池和虚拟服务的配置信息的过程为:应用交付设备接收K8s集群通过应用负载控制器同步的配置信息,确定配置信息中K8s集群中管理单元对应的第一IP地址,以及确定配置信息中K8s集群对外服务的第二IP地址、端口号和负载均衡策略,然后将第一IP地址确定为应用交付设备节点池的IP地址,将第二IP地址确定为应用交付设备中虚拟服务的虚拟IP地址,将端口号确定为节点池的端口号,将负载均衡策略确定为节点池的负载均衡策略。需要说明的是,应用交付设备根据配置信息修改节点池和虚拟服务的配置信息的过程已在第一实施例中详细说明的,在此不再重复赘述。
步骤S50,若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池。
当应用交付设备成为K8s集群外部访问的负载均衡器后,应用交付设备检测是否接收到访问虚拟服务的访问请求。若检测到应用交付设备接收到访问虚拟服务的访问请求,应用交付设备则确定访问请求对应的节点池,并将该访问请求对应的节点池确定为目标节点池。具体地,当应用交付设备接收到访问请求后,根据预先设置好的调度策略确定目标节点池,其中,每个节点池都会对应K8s集群中的至少一个管理单元,应用交付设备根据预先设置好的调度策略,可确定目标节点池中的管理单元当前有较多未使用资源的管理单元。具体的调度策略可由用户根据具体需要而设置,如可将调度策略设置为根据访问请求的类型确定对应的目标节点池。
进一步地,为了提高访问请求执行的成功率,步骤S50包括:
步骤n,若接收到访问所述虚拟服务的访问请求,则确定所述访问请求是否为超文本传输安全协议HTTPS请求。
步骤o,若所述访问请求是所述HTTPS请求,则将所述HTTPS请求转换为超文本传输协议HTTP请求,并确定所述HTTP请求对应的目标节点池。
进一步地,若应用交付设备接收到访问虚拟服务的访问请求,应用交付设备则确定访问请求是否为HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议)请求。若确定访问请求为HTTPS请求,应用交付设备则将HTTPS请求转换为HTTP(HyperText Transfer Protocol,超文本传输协议)请求,并确定HTTP请求对应的目标节点池;若确定访问请求不是HTTPS请求,而是HTTP请求,应用交付设备则直接确定访问请求对应的目标节点池。需要说明的是,HTTPS请求和HTTP请求都有自己特有的属性,根据HTTPS请求和HTTP请求对应的属性,即可实现HTTPS请求和HTTP请求之间的转换。具体地,如可采用SSL卸载策略将HTTPS请求转换为HTTP请求。在HTTP请求中,是根据host或URI(Uniform Resource Identifier,统一资源标识符)进行节点池调度。
需要说明的是,相对于处理HTTP请求,由于处理HTTPS请求难度高,且对应用交付设备的技术要求也高,本实施例通过将HTTPS请求转换成HTTP请求,降低了应用交付设备处理访问请求的难度,从而提高了访问请求执行的成功率。
步骤S60,通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求。
当确定目标节点池后,应用交付设备通过目标节点池将访问请求发送给K8s集群中的管理单元。在K8s集群中,将接收访问请求的管理单元称为待访问管理单元。当待访问管理单元接收到访问请求后,执行该访问请求,得到响应结果,并将响应结果以响应请求的形式发送给应用交付设备。
进一步地,所述步骤S60包括:
步骤p,获取所述目标节点池对应的负载均衡策略,根据所述负载均衡策略确定所述K8s集群中与所述访问请求对应的待访问管理单元。
步骤q,将所述访问请求发送给所述待访问管理单元,以供所述待访问管理单元执行所述访问请求。
具体地,当应用交付设备确定目标节点池后,应用交付设备获取该目标节点池对应的负载均衡策略,根据该负载均衡策略确定K8s集群中与访问请求对应的待访问管理单元。需要说明的,在应用交付设备中,每一节点池都存在对应的负载均衡策略,负载均衡策略包括但不限于随机算法、加权轮询算法和源地址哈希法。当应用交付设备确定待访问管理单元后,将访问请求发送给待访问管理单元,以供待访问管理单元执行该访问请求。通过负载均衡策略确定K8s集群中接收访问请求的管理单元,以使接收访问请求的管理单元由足够的处理能力可以在较短时间内成功执行访问请求,提高了访问请求执行效率和执行成功率。
本实施例中的应用交付设备通过同步K8s集群中变动资源的配置信息,使应用交付设备具备K8s集群中最新Pod的配置信息,即使应用交付设备成为K8s集群外部访问的负载均衡器,从而使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能,实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持。
进一步地,提出本发明数据的传输方法第四实施例。
所述数据的传输方法第四实施例与所述数据的传输方法第三施例的区别在于,参照图4,所述数据的传输方法还包括:
步骤S70,检测是否接收到所述待访问管理单元执行所述访问请求后返回的响应请求。
步骤S80,若接收到所述响应请求,则将所述响应请求发送给所述访问请求对应的客户端。
当应用交付设备将访问请求发送给待访问管理单元后,应用交付设备检测是否接收到待访问管理单元执行访问请求后返回的响应请求。其中,应用交付设备可以在将访问请求发送给待访问管理单元后立即检测是否接收到响应请求,也可以在将访问请求发送给待访问管理单元后的预设时长后再检测是否接收到响应请求,该预设时长可根据具体需要而设置,本实施例对预设时长的大小不做具体限制。
当应用交付设备接收到响应请求后,应用交付设备将该响应请求发送给访问请求对应的客户端;若应用交付设备未接收到响应请求后,应用交付设备则继续检测是否接收到响应请求。
本实施例在应用交付设备将响应请求发送给K8s集群的管理单元后,检测是否接收到管理单元返回的响应请求,在接收到响应请求后,将响应请求发送给访问请求对应的客户端,以在应用交付设备接收到响应请求后,及时将响应请求发送给客户端。
此外,本发明还提供一种数据的传输装置,参照图5,所述数据的传输装置应用于集群管理平台K8s集群,所述数据的传输装置包括:
启动模块10,用于根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;
监测模块20,用于通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;
同步模块30,用于将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,所述同步模块30包括:
第一获取单元,用于获取所述变动资源对应的配置信息;
确定单元,用于确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
同步单元,用于将所述第一IP地址、第二IP地址、端口号和负载均衡策略同步至所述应用交付设备中,以供所述应用交付设备将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,所述数据的传输装置还包括:
获取模块,用于获取所述应用负载控制器的运行参数;
第一确定模块,用于根据所述运行参数确定接收所述变动资源配置信息的应用交付目标设备;
所述同步模块30还用于将所述变动资源的配置信息同步至应用交付目标设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,所述监测模块20包括:
监测单元,用于通过所述应用负载控制器监测所述K8s集群的资源;
检测单元,用于在监测到所述K8s集群的资源处于变动状态时,根据预设的资源同步周期检测当前时间是否为资源同步时间;
第二获取单元,用于若检测到当前时间为所述资源同步时间,则获取所述K8s集群中的变动资源。
进一步地,所述数据的传输装置还包括:
第二确定模块,用于确定所述变动资源中与所述应用负载控制器对应的变动目标资源;
所述同步模块30还用于将所述变动目标资源对应的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,所述数据的传输装置还包括:
检测模块,用于检测是否接收到关闭所述应用负载控制器的关闭指令;
关闭模块,用于若接收到所述关闭指令,则根据所述关闭指令关闭所述应用负载控制器;
所述监测模块20还用于若未接收到所述关闭指令,则通过所述应用负载控制器监测所述K8s集群的资源。
本发明数据的传输装置具体实施方式与上述K8s集群对应的数据的传输方法各实施例基本相同,在此不再赘述。
本实施例通过应用负载控制器监测K8s集群的资源,获取K8s集群中的变动资源,将该变动资源的配置信息同步至应用交付设备中,使应用交付设备具备K8s集群中最新Pod的配置信息,使应用交付设备成为K8s集群外部访问的负载均衡器,从而使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能,在K8s集群中接入具有丰富应用负载功能的应用交付设备,实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持,即实现了南北流量负载均衡的效果。
此外,本发明还提供一种数据的传输装置,参照图6,所述数据的传输装置应用于应用交付设备,所述数据的传输装置包括:
接收模块40,用于接收集群管理平台K8s集群通过应用负载控制器同步的配置信息;
修改模块50,用于根据所述配置信息修改所述交付应用设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
确定模块60,用于若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池;
发送模块70,用于通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求。
进一步地,所述修改模块50包括:
第一确定单元,用于确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
进一步地,所述确定模块60包括:
第二确定单元,用于若接收到访问所述虚拟服务的访问请求,则确定所述访问请求是否为超文本传输安全协议HTTPS请求;
转换单元,用于若所述访问请求是所述HTTPS请求,则将所述HTTPS请求转换为超文本传输协议HTTP请求;
所述第二确定单元还用于确定所述HTTP请求对应的目标节点池。
进一步地,所述发送模块70包括:
获取单元,用于获取所述目标节点池对应的负载均衡策略;
第三确定单元,用于根据所述负载均衡策略确定所述K8s集群中与所述访问请求对应的待访问管理单元;
发送单元,用于将所述访问请求发送给所述待访问管理单元,以供所述待访问管理单元执行所述访问请求。
进一步地,所述数据的传输装置还包括:
检测模块,用于检测是否接收到所述待访问管理单元执行所述访问请求后返回的响应请求;
所述发送模块70还用于若接收到所述响应请求,则将所述响应请求发送给所述访问请求对应的客户端。
本发明数据的传输装置具体实施方式与上述应用交付设备对应的数据的传输方法各实施例基本相同,在此不再赘述。
本实施例中的应用交付设备通过同步K8s集群中变动资源的配置信息,使应用交付设备具备K8s集群中最新Pod的配置信息,即使应用交付设备成为K8s集群外部访问的负载均衡器,从而使应用交付设备具备K8s集群的虚拟服务功能和流量负载均衡功能,实现了通过应用交付设备直接向外部系统提供K8s集群Pod级别的服务和负载均衡的支持。
此外,本发明还提供一种数据传输设备,该数据传输设备可为K8s集群,也可为应用交付设备。如图7所示,图7是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图7即可为数据传输设备的硬件运行环境的结构示意图。
如图7所示,该数据传输设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,数据传输设备还可以包括RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图7中示出的数据传输设备结构并不构成对数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据的传输程序。其中,操作系统是管理和控制数据传输设备硬件和软件资源的程序,支持数据的传输程序以及其它软件或程序的运行。
在图7所示的数据传输设备中,当数据传输设备为K8s集群时,用户接口1003主要用于连接应用交付设备,与应用交付设备进行数据通信当数据传输设备为应用交付设备时,用户接口1003主要用于连接K8s集群和客户端,分别与K8s集群和客户端进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的数据的传输程序,并执行如上所述的数据的传输方法的步骤。
本发明数据传输设备具体实施方式与上述数据的传输方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据的传输程序,所述数据的传输程序被处理器执行时实现如上所述的数据的传输方法的步骤。
本发明计算机可读存储介质具体实施方式与上述数据的传输方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种数据的传输方法,其特征在于,所述数据的传输方法应用于集群管理平台K8s集群,所述数据的传输方法包括以下步骤:
根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;
通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;
将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
所述将所述变动资源的配置信息同步至应用交付设备的步骤包括:
获取所述变动资源对应的配置信息,确定所述配置信息中所述K8s集群管理单元对应的第一IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
将所述第一IP地址、第二IP地址、端口号和负载均衡策略同步至所述应用交付设备中。
2.如权利要求1所述的数据的传输方法,其特征在于,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤之后,还包括:
获取所述应用负载控制器的运行参数,根据所述运行参数确定接收所述变动资源配置信息的应用交付目标设备;
所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
将所述变动资源的配置信息同步至应用交付目标设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
3.如权利要求1所述的数据的传输方法,其特征在于,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤包括:
通过所述应用负载控制器监测所述K8s集群的资源,并在监测到所述K8s集群的资源处于变动状态情况下,根据预设的资源同步周期检测当前时间是否为资源同步时间;
若检测到当前时间为所述资源同步时间,则获取所述K8s集群中的变动资源。
4.如权利要求1所述的数据的传输方法,其特征在于,所述通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源的步骤之后,还包括:
确定所述变动资源中与所述应用负载控制器对应的变动目标资源;
所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
将所述变动目标资源对应的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
5.如权利要求1至4任一项所述的数据的传输方法,其特征在于,所述将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤之后,还包括:
检测是否接收到关闭所述应用负载控制器的关闭指令;
若接收到所述关闭指令,则根据所述关闭指令关闭所述应用负载控制器;
若未接收到所述关闭指令,则通过所述应用负载控制器监测所述K8s集群的资源。
6.一种数据的传输方法,其特征在于,所述数据的传输方法应用于应用交付设备,所述数据的传输方法包括以下步骤:
应用交付设备接收集群管理平台K8s集群通过应用负载控制器同步的配置信息,根据所述配置信息修改所述应用交付设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池;
通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求;
所述根据所述配置信息修改所述应用交付设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器的步骤包括:
确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
7.如权利要求6所述的数据的传输方法,其特征在于,所述通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求的步骤包括:
获取所述目标节点池对应的负载均衡策略,根据所述负载均衡策略确定所述K8s集群中与所述访问请求对应的待访问管理单元;
将所述访问请求发送给所述待访问管理单元,以供所述待访问管理单元执行所述访问请求。
8.如权利要求6至7任一项所述的数据的传输方法,其特征在于,所述通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求的步骤之后,还包括:
检测是否接收到所述待访问管理单元执行所述访问请求后返回的响应请求;
若接收到所述响应请求,则将所述响应请求发送给所述访问请求对应的客户端。
9.一种数据的传输装置,其特征在于,所述数据的传输装置应用于集群管理平台K8s集群,所述数据的传输装置包括:
启动模块,用于根据接收的启动指令启动与所述K8s集群对应的应用负载控制器;
监测模块,用于通过所述应用负载控制器监测所述K8s集群的资源,根据监测所得的监测结果确定所述K8s集群中的变动资源;
同步模块,用于将所述变动资源的配置信息同步至应用交付设备中,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
所述同步模块,包括:
获取单元,用于获取所述变动资源对应的配置信息,确定所述配置信息中所述K8s集群管理单元对应的第一IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;
同步单元,用于将所述第一IP地址、第二IP地址、端口号和负载均衡策略同步至所述应用交付设备中,以供所述应用交付设备将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
10.一种数据的传输装置,其特征在于,所述数据的传输装置应用于应用交付设备,所述数据的传输装置包括:
接收模块,用于接收集群管理平台K8s集群通过应用负载控制器同步的配置信息;
修改模块,用于根据所述配置信息修改所述应用交付设备节点池和虚拟服务的配置信息,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器;
确定模块,用于若接收到访问所述虚拟服务的访问请求,则确定所述访问请求对应的目标节点池;
发送模块,用于通过所述目标节点池将所述访问请求发送给所述K8s集群中的待访问管理单元,以供所述待访问管理单元执行所述访问请求;
所述修改模块,包括:
第一确定单元,用于确定所述配置信息中所述K8s集群管理单元对应的第一网际互连协议IP地址,以及确定所述配置信息中所述K8s集群对外服务的第二IP地址、端口号和负载均衡策略;将所述第一IP地址确定为所述应用交付设备节点池的IP地址,将所述第二IP地址确定为所述应用交付设备中虚拟服务的虚拟IP地址,将所述端口号确定为所述节点池的端口号,将所述负载均衡策略确定为所述节点池的负载均衡策略,控制所述应用交付设备成为所述K8s集群外部访问的负载均衡器。
11.一种数据的传输设备,其特征在于,所述数据的传输设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的数据的传输程序,所述数据的传输程序被所述处理器执行时实现如权利要求1至5,或者6至8中任一项所述的数据的传输方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据的传输程序,所述数据的传输程序被处理器执行时实现如权利要求1至5,或6至8中任一项所述的数据的传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010185431.5A CN111431740B (zh) | 2020-03-16 | 2020-03-16 | 数据的传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010185431.5A CN111431740B (zh) | 2020-03-16 | 2020-03-16 | 数据的传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431740A CN111431740A (zh) | 2020-07-17 |
CN111431740B true CN111431740B (zh) | 2023-07-14 |
Family
ID=71549559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010185431.5A Active CN111431740B (zh) | 2020-03-16 | 2020-03-16 | 数据的传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431740B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112181600B (zh) * | 2020-10-21 | 2021-07-13 | 甘肃柏隆电子商务科技有限责任公司 | 一种云计算资源管理方法及系统 |
CN112702441B (zh) * | 2021-01-05 | 2023-06-30 | 南京领行科技股份有限公司 | 基于容器的访问数据处理方法、装置、系统及存储介质 |
CN112764886A (zh) * | 2021-01-29 | 2021-05-07 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN113010385B (zh) | 2021-03-18 | 2022-10-28 | 山东英信计算机技术有限公司 | 一种任务状态更新方法、装置、设备及介质 |
CN113031874B (zh) * | 2021-03-26 | 2022-05-13 | 网易(杭州)网络有限公司 | 基于Kubernetes集群的缓存处理方法、装置、设备及存储介质 |
CN113608865A (zh) * | 2021-07-13 | 2021-11-05 | 北京奇艺世纪科技有限公司 | 一种流量控制方法、装置、系统、电子设备及存储介质 |
CN113778511A (zh) * | 2021-09-10 | 2021-12-10 | 豆盟(北京)科技股份有限公司 | 资源配置方法、装置、设备及存储介质 |
CN114374696A (zh) * | 2021-12-15 | 2022-04-19 | 深圳前海微众银行股份有限公司 | 一种容器负载均衡方法、装置、设备及存储介质 |
CN114390101A (zh) * | 2022-01-04 | 2022-04-22 | 上海弘积信息科技有限公司 | 一种基于BGP组网的Kubernetes负载均衡方法 |
CN114466017B (zh) * | 2022-03-14 | 2024-03-12 | 阿里巴巴(中国)有限公司 | kubernetes边缘集群的数据监测方法和装置 |
CN114826964B (zh) * | 2022-04-11 | 2024-04-05 | 京东科技信息技术有限公司 | 一种资源监控方法、装置和系统 |
CN115987652B (zh) * | 2022-12-27 | 2023-11-03 | 北京深盾科技股份有限公司 | 一种账号管理方法、系统、设备及计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932209A (zh) * | 2012-11-20 | 2013-02-13 | 无锡城市云计算中心有限公司 | 服务器机群的状态检测方法和装置 |
CN107302604A (zh) * | 2017-06-30 | 2017-10-27 | 挖财网络技术有限公司 | 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备 |
CN107707688A (zh) * | 2017-10-19 | 2018-02-16 | 杭州数梦工场科技有限公司 | 一种kubernetes集群解析宿主机主机名的方法及装置 |
CN108039975A (zh) * | 2017-12-21 | 2018-05-15 | 北京搜狐新媒体信息技术有限公司 | 容器集群管理系统及其应用方法 |
CN108052333A (zh) * | 2017-12-11 | 2018-05-18 | 北京紫优能源科技有限公司 | 一种电力调度集控系统标准化自动化部署方法及架构 |
CN110868465A (zh) * | 2019-11-13 | 2020-03-06 | 北京浪潮数据技术有限公司 | 一种容器云的负载均衡系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009016B (zh) * | 2016-10-31 | 2021-10-22 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
-
2020
- 2020-03-16 CN CN202010185431.5A patent/CN111431740B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932209A (zh) * | 2012-11-20 | 2013-02-13 | 无锡城市云计算中心有限公司 | 服务器机群的状态检测方法和装置 |
CN107302604A (zh) * | 2017-06-30 | 2017-10-27 | 挖财网络技术有限公司 | 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备 |
CN107707688A (zh) * | 2017-10-19 | 2018-02-16 | 杭州数梦工场科技有限公司 | 一种kubernetes集群解析宿主机主机名的方法及装置 |
CN108052333A (zh) * | 2017-12-11 | 2018-05-18 | 北京紫优能源科技有限公司 | 一种电力调度集控系统标准化自动化部署方法及架构 |
CN108039975A (zh) * | 2017-12-21 | 2018-05-15 | 北京搜狐新媒体信息技术有限公司 | 容器集群管理系统及其应用方法 |
CN110868465A (zh) * | 2019-11-13 | 2020-03-06 | 北京浪潮数据技术有限公司 | 一种容器云的负载均衡系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111431740A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431740B (zh) | 数据的传输方法、装置、设备及计算机可读存储介质 | |
US10802906B2 (en) | Monitoring method and apparatus of server, and storage medium | |
CN110462589B (zh) | 本地装置协调器中的按需代码执行 | |
US8713177B2 (en) | Remote management of networked systems using secure modular platform | |
US10798218B2 (en) | Environment isolation method and device | |
US8019835B2 (en) | Automated provisioning of computing networks using a network database data model | |
CN108206847B (zh) | Cdn管理系统、方法及装置 | |
US7152109B2 (en) | Automated provisioning of computing networks according to customer accounts using a network database data model | |
JP2021529386A (ja) | オンデマンドネットワークコード実行システム上での補助機能の実行 | |
JP2020502895A (ja) | メッセージングプロトコル通信の管理 | |
CN107800565B (zh) | 巡检方法、装置、系统、计算机设备和存储介质 | |
CN110352401B (zh) | 具有按需代码执行能力的本地装置协调器 | |
US20080141350A1 (en) | Authentication for computer system management | |
US11398989B2 (en) | Cloud service for cross-cloud operations | |
CN111262839A (zh) | 一种漏洞扫描方法、管理设备、节点和存储介质 | |
CN112769687A (zh) | Api网关平台 | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN103810420B (zh) | 一种应用防卸载方法和系统 | |
CN110677475A (zh) | 一种微服务处理方法、装置、设备及存储介质 | |
US10721260B1 (en) | Distributed execution of a network vulnerability scan | |
CN111193778B (zh) | 一种web服务负载均衡的方法及装置 | |
CN111193636A (zh) | 测试单机可用性的方法及装置 | |
CN111176782B (zh) | 一种在线实验方法和装置 | |
CN112381498B (zh) | 电网业务处理系统、装置、设备和存储介质 | |
US20240143352A1 (en) | Unified Management Interface |
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 |