CN116743845B - 边缘服务发现方法、装置、节点设备和可读存储介质 - Google Patents
边缘服务发现方法、装置、节点设备和可读存储介质 Download PDFInfo
- Publication number
- CN116743845B CN116743845B CN202311023465.4A CN202311023465A CN116743845B CN 116743845 B CN116743845 B CN 116743845B CN 202311023465 A CN202311023465 A CN 202311023465A CN 116743845 B CN116743845 B CN 116743845B
- Authority
- CN
- China
- Prior art keywords
- server
- service
- pod
- access request
- application access
- 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
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 16
- 230000002688 persistence Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Classifications
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种边缘服务发现方法、装置、节点设备和可读存储介质,属于云计算技术领域,所述边缘服务发现方法,应用于第一节点,所述方法包括:基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组pod。本发明提供的边缘服务发现方法可以实现对第一节点中的服务和应用进行统一的服务IP或服务域名访问,无需受限于边缘节点的计算、存储和网络等资源,便于使用。
Description
技术领域
本发明涉及云计算技术领域,特别是指一种边缘服务发现方法、装置、节点设备和可读存储介质。
背景技术
边缘计算是一种为应用开发者和服务提供商在网络的边缘侧提供云服务以及互联网技术(Internet Technology,IT)环境服务的计算模式,可以将“边缘”定义为沿着数据源与云数据中心之间路径的任何计算和网络资源。靠近终端设备的网络一侧数据域边缘侧,终端设备应用产生的数据不需要全部上传云端,将部分数据直接放在边缘侧进行存储和计算,可以有效降低网络时延和负荷,并确保数据的隐私安全。
随着物联网技术的快速发展,越来越多的边缘应用接入网络,完全依托云端处理边缘应用数据非常消耗网络带宽资源,很难满足实时性需求,因此云计算和边缘计算的协同即云边协同应用而生。而保证边缘应用之间的通信,确保应用流量可以正常被访问,已成为日益紧迫和重要的一项需求。
现有技术中,原生kubernetes(一个用于管理容器化的工作负载和服务的开源平台,k8s)里面,通常在云端节点部署一个CoreDNS容器应用实现服务发现和域名解析,部署Kube-Proxy应用实现负载均衡。这样会有一个问题:边缘节点和云端会由于云边网络不稳定等因素导致云边网络经常断开,在这种情况下,云边网络不稳定会引起大量的容器应用迁移和重建,无法保证服务正常访问的稳定性。在边缘节点安装CoreDNS、Kube-Proxy和容器网络接口(Container Network Interface,CNI)插件等一套原生组件需要消耗较多的资源,而边缘节点通常采用低端设备,资源规格较低,存在计算、存储和网络资源受限,需要轻量化的组件管理边缘服务。因此,受限于边缘节点的计算、存储和网络等资源,现有的边缘服务发现方法难以使用。
发明内容
本发明的目的是提供一种边缘服务发现方法、装置、节点设备和可读存储介质,用以解决现有的边缘服务发现方法受限于边缘节点的计算、存储和网络等资源的问题。
为解决上述技术问题,本发明实施例提供如下技术方案:
第一方面,本发明提供了一种边缘服务发现方法,应用于第一节点,所述方法包括:
基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;
所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组pod。
可选地,所述基于目标信息向第一服务器发送第一应用访问请求之前,所述方法还包括:
接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的pod的相关信息;服务器与pod之间的关联关系;pod与容器组网际互连协议pod IP之间的关联关系;
根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系。
可选地,在所述目标信息为第一服务器的服务IP的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据所述第一服务器的服务IP将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
向所述第一服务器发送所述第一应用访问请求。
可选地,所述方法还包括:
在所述第一节点部署了容器网络接口CNI网络插件的情况下,向所述第一服务器发送第二应用访问请求;所述第二应用访问请求包括目标pod IP;
所述第一服务器用于根据所述目标pod IP将所述第二应用访问请求的流量转发到第二pod。
可选地,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP;
根据所述第一服务器的服务IP,将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
向所述第一服务器发送所述第一应用访问请求;
其中,第一pod为无状态应用对应的pod。
可选地,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定所述第一服务器对应的第一虚拟IP;
根据所述第一服务器对应的第一虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,第一pod为有状态应用对应的pod。
可选地,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定第一pod;
在根据元数据确定所述第一pod处于运行状态的情况下,从所述第一服务器的服务域名对应的第一虚拟IP中为所述第一服务器的服务域名分配第一目标虚拟IP;
根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
可选地,所述接收云端发送的元数据之后,所述方法还包括:
对所述元数据进行本地持久化处理和资源生命周期管理处理。
可选地,在所述第一节点与云端断开连接的情况下,所述方法还包括:
根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
第二方面,本发明实施例还提供一种边缘服务发现装置,应用于第一节点,所述装置包括:
第一发送模块,用于基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;
所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组pod。
第三方面,本发明实施例还提供一种节点设备,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所述程序或指令时实现如上中任一项所述的边缘服务发现方法中的步骤。
第四方面,本发明实施例还提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的边缘服务发现方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明方案提供的边缘服务发现方法,通过第一节点基于目标信息向第一服务器发送第一应用访问请求,其中,所述目标信息为所述第一服务器的服务IP或所述第一服务器的服务域名,第一服务器根据第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一pod,该边缘服务发现方法可以实现对第一节点中的服务和应用进行统一的服务IP或服务域名访问,无需受限于边缘节点计算、存储和网络等资源,便于使用。
附图说明
图1为本发明实施例提供的应用于第一节点的边缘服务发现方法的流程图;
图2为本发明实施例提供的边缘服务发现方法的具体流程图之一;
图3为本发明实施例提供的边缘服务发现方法的具体流程图之二;
图4为本发明实施例提供的应用于第一服务器的边缘服务发现方法的流程图;
图5为本发明实施例提供的应用于第一节点的边缘服务发现装置的结构示意图;
图6为本发明实施例提供的节点设备的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”、“在一实施例中”或“在一可选实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A 相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
为了方便理解,在进行本发明具体实施方式的说明之前,首先进行说明如下:
原生Docker容器不解决跨主机通信问题,不同主机上的容器应用之间需要通过在主机上用映射端口的方法来进行通信,这种方式会需要暴露主机大量的端口,很不方便,甚至达不到要求,因此位于不同物理机上的Docker容器之间直接使用容器本身的网际互连协议(Internet Protocol,IP)地址进行通信很有必要。引入容器网络接口(ContainerNetwork Interface,CNI)网络插件可以使每个容器应用都具备全集群唯一的IP地址,但是CNI插件正常工作需要节点之间三层可达,边缘节点通常呈现离散式分布或者位于私有网络,难以满足双向通信,直接访问Service服务,一旦请求被分发到不同子网的容器应用上,会出现访问失败的现象。
原生k8s通过在云端节点部署一个CoreDNS容器应用通过域名解析获取域名对应的IP,基于Kube-proxy容器设置iptables规则,通过iptables规则将对IP的请求策略转到后端pod。原生k8s是在感知到service被创建时,在宿主机上创建一组iptables规则,这一组规则会随着service代理的pod数量的增加而等量增加。当宿主机有大量的service和pod的时候,多量级的iptables规则会大量占用该宿主机的CPU资源。
为解决现有的边缘服务发现方法受限于边缘节点的计算、存储和网络等资源的问题,本发明实施例提供一种边缘服务发现方法、装置、节点设备和可读存储介质。
如图1所示,本发明实施例提供一种边缘服务发现方法,应用于第一节点,所述方法包括:
步骤101:基于目标信息向第一服务器(service,也可以称为服务组件)发送第一应用访问请求(服务IP网段请求或服务域名访问请求),所述目标信息为所述第一服务器的服务IP或所述第一服务器的服务域名。
所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组(pod)。
需要说明的是,所述第一节点为边缘节点或云端节点,在本发明实施例中,以所述第一节点为边缘节点为例进行说明。
在本步骤中,边缘节点的主要功能可以分为基于服务IP访问和基于服务域名访问应用两种请求方式,具体地,第一节点基于目标信息向第一服务器发送第一应用访问请求,该目标信息为所述第一服务器的服务IP或所述第一服务器的服务域名。
第一服务器接收到第一应用访问请求后,通过自定义的负载均衡策略(即预先设定的负载均衡策略)转发应用间的流量,即向第一pod转发第一应用访问请求的流量。
作为本发明一可选实施例,所述基于目标信息向第一服务器发送第一应用访问请求之前,所述方法还包括:
接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的pod的相关信息;服务器与pod之间的关联关系;pod与容器组网际互连协议(pod Internet Protocol,pod IP)之间的关联关系;其中,相关信息可以为IP信息等;
根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系。
在本可选实施例中,边缘节点通过list-watch实时监听云端控制面的元数据的增加(创建)、删除和修改,元数据包括云端上的service的相关信息、云端上的服务端点(endpoints)的相关信息和云端上的pod的相关信息,还包括服务器与pod之间的关联关系和pod与pod IP之间的关联关系等,边缘节点监听到上述元数据后存储至本地数据库中。边缘节点通过service的informer感知到service被创建时,会生成一条第一信息,所述第一信息用于指示service的服务IP与service的服务域名之间的关联关系,并且边缘节点在宿主机上添加第一信息,且第一信息用于域名解析,也将第一信息添加至元数据中并存储至本地数据库。
具体地,控制面的元数据如service的相关信息、pod的相关信息、endpoints的相关信息等都是通过云边管理通道从云端进行下发到边端(即边缘节点)。
进一步地,边节点接收云端发送的元数据之后,所述方法还包括:
云端下发的元数据,先由数据库进行本地持久化处理后,再进行资源生命周期管理处理。同时,本实施例中,在监听到资源被创建或者更新时缓存并实时更新service服务和容器应用(pod)的关联关系。
普通的service都有clusterIP(服务IP),对于处于clusterIP模式的service,在本发明一可选实施例中,目标信息为所述第一服务器的服务IP,所述基于第一服务器的服务IP向第一服务器发送第一应用访问请求,包括:
根据第一服务器的服务IP将所述第一应用访问请求拦截至服务发现进程内,具体地,通过iptables规则拦截第一服务器的服务IP,拦截第一服务器的服务IP之后,根据第一服务器的服务IP将服务网段请求拦截到进程内,在本地数据库中的元数据中根据该第一服务器的服务IP找到对应的service名称,即第一服务器的名称,基于与service同名的endpoints中获取所有pod的相关信息,向第一服务器发送第一应用访问请求(第一应用访问请求包括与第一服务器同名的endpoints和该endpoints中所有pod的相关信息),第一服务器通过自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod(第一pod为endpoints中所有pod中的一个)。
如果集群节点安装了CNI网络插件,使每个pod都会具备全集群唯一的IP地址,本发明一实施例中,边缘节点也会兼容主流的网络插件,在本发明一可选实施例中,所述方法还包括:
边缘节点通过监听机制去判断CNI网络插件是否部署,若第一节点部署CNI网络插件,本可选实施例会通过iptables规则拦截集群中pod IP服务网段请求(即第二应用访问请求,该第二应用访问请求包括目标pod IP)。当目标pod IP对应的pod资源被创建时,pod的informer会监听到pod的增加、删除和修改操作,同步更新并缓存pod与pod IP的关联记录,从而可以直接通过目标pod IP从list-watch监听的数据缓存中直接获取应用节点信息。之后将第二应用访问请求发送至第一服务器,该第一服务器根据目标pod IP将所述第二应用访问请求的流量转发到第二pod。此外,为保证宿主机节点的pod可以被正常访问,节点自身的pod IP的请求不会被iptables拦截。
下面结合图2具体说明本发明一实施例中的边缘服务发现方法的具体流程:
根据应用访问请求(服务IP网段请求或pod IP服务网段请求)进行拦截,拦截应用访问请求到进程内,向第一服务器发送应用访问请求,如果是服务IP网段请求(serviceIP),则第一服务器基于自定义的负载均衡策略选择后端的pod应用(第一pod),如果是podIP服务网段请求(目标pod IP),则基于目标pod IP找到目标pod和关联的应用节点信息,流量直转目标pod应用。
需要说明的是,service的域名格式是$(service name).$(namespace).svc.cluster.local,其中cluster.local为指定的集群的域名。当基于服务域名发起请求即目标信息为第一服务器的服务域名时,需要通过域名解析将服务域名解析成服务IP。对于无状态应用,关联的service类型为Cluster IP类型。具体地,在本发明一可选实施例中,基于第一服务器的服务域名向第一服务器发送第一应用访问请求,包括:
通过域名分割获取指定命名空间下的服务名称(即第一服务器的服务域名),通过service被创建或者更新时的缓存记录将服务域名解析成service的IP值,即根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP,再基于第一服务器的服务IP将第一应用访问请求拦截至服务发现进程内,之后的操作同上述的基于第一服务器的服务IP向第一服务器发送第一应用访问请求的步骤,也就是,在本地数据库中的元数据中根据该第一服务器的服务IP找到对应的service名称,即第一服务器的名称,向第一服务器发送第一应用访问请求,第一服务器基于与service同名的endpoints中获取所有pod的相关信息,通过自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod。其中,所述第一pod为无状态应用对应的pod。
kubernetes是通过headless service(无头类型的服务器)管理有状态应用,headless service本身没有IP,在本发明一可选实施例中,基于第一服务器的服务域名向第一服务器发送第一应用访问请求,包括:
边缘节点根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP(fakeIP),具体地,对监听到的headless service资源绑定一个唯一的fake IP(fake IP网段1),并记录headless service与fake IP的绑定关系(或称为关联关系),这个关联关系会伴随整个headless service的生命周期。根据所述第一服务器的服务域名,确定所述第一服务器对应的第一虚拟IP,同时,第一应用访问请求(fake IP的服务网段请求)根据第一fakeIP被iptables规则重定向(拦截)到服务发现进程内,即拦截fake IP网段1到进程内,在进程内,通过第一fake IP地址去缓存(本地数据库)中找到唯一对应的headless service的相关信息,进而获取到每个endpoint的IP,向所述第一服务器发送所述第一应用访问请求(该第一应用访问请求包括endpoint的IP和该endpoint中所有pod的相关信息),第一服务器根据自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod(第一pod为endpoint中所有pod中的一个),即在本可选实施例中未指定pod。其中,所述第一pod为无状态应用对应的pod。
headless service会为代理的每一个有状态应用创建出来的endpoint也就是pod添加域名系统(Domain Name System,DNS)域名解析。在本发明一可选实施例中,headlessservice也支持和原生一样的$(pod name).$(service name).$(namespace).svc.cluster.local的域名能力,可以通过域名访问指定的应用,即指定第一pod。具体地,所述基于第一服务器的服务域名向第一服务器发送第一应用访问请求,包括:
根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP,具体过程同上述可选实施例,之后,根据所述第一服务器的服务域名,确定第一pod,具体地,通过对第一服务器的服务域名进行域名分割得到第一pod的相关信息,基于本地数据库中的元数据监听到的pod的相关信息判断第一pod的应用状态,如果第一pod处于运行状态,则在fake IP网段2(即第一服务器的服务域名对应的第一虚拟IP)中给该第一服务器的服务域名分配唯一一个fake IP(即第一目标虚拟IP),并记录该第一服务器的服务域名与第一目标虚拟IP的关联关系,根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内,在所述服务发现进程内,通过第一目标虚拟IP和缓存的元数据获取具体的应用以及服务(具体包括根据第一目标虚拟IP找到headless service的相关信息,进而获取到每个endpoint(第一服务端点)的IP和该endpoint中的第一pod的相关信息),向所述第一服务器发送所述第一应用访问请求(该第一应用访问请求包括endpoint的IP和该endpoint中的第一pod的相关信息),第一服务器根据自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod,具体地,在第一服务器遍历后端实例的endpoints时,判断第一pod是否归属于其中,若是,则直接将第一应用访问请求的流量转到边端应用对应的第一pod。其中,所述第一pod为有状态应用对应的pod。
需要说明的是,第一目标虚拟IP和第一虚拟IP相比,第一目标虚拟IP的生命周期会随着服务域名访问的结束而释放,确保不会占用太多内存空间。
下面结合图3具体说明本发明一实施例中的边缘服务发现方法的具体流程:
获取应用访问请求(服务域名网段请求),对第一服务器的服务域名进行域名解析,对于无状态应用对应的pod关联的service类型为Cluster IP类型,根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP(实际IP),再基于第一服务器的服务IP将第一应用访问请求拦截至服务发现进程内,在本地数据库中的元数据中根据该第一服务器的服务IP找到对应的service名称,即第一服务器的名称,向第一服务器发送第一应用访问请求,第一服务器基于与service同名的endpoints中获取所有pod的相关信息,通过自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod。对于有状态应用是通过headlessservice(无头类型的服务器)管理的,在第一服务器的服务域名中未指定pod的情况下,对监听到的headless service资源绑定一个唯一的fake IP(fake IP网段1),该fake IP网段1伴随整个headless service的生命周期,拦截fake IP网段1到进程内,通过第一fake IP地址去缓存(本地数据库)中找到唯一对应的headless service的相关信息,进而获取到每个endpoint的IP,向所述第一服务器发送所述第一应用访问请求(该第一应用访问请求包括endpoint的IP和该endpoint中所有pod的相关信息),第一服务器根据自定义负载均衡策略选择后端的pod应用(第一pod)。在第一服务器的服务域名中指定pod的情况下,在fakeIP网段2(即第一服务器的服务域名对应的第一虚拟IP)中给该第一服务器的服务域名分配唯一一个fake IP(即第一目标虚拟IP),第一目标虚拟IP的生命周期会随着服务域名访问的结束而释放,根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内(即拦截第一目标虚拟IP到服务发现进程内),通过第一目标虚拟IP和缓存的元数据获取关联的headless service(第一服务器)的相关信息和第一pod的相关信息,若第一pod与service(第一服务器)存在关联关系,向所述第一服务器发送所述第一应用访问请求,第一服务器根据自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod。
边缘节点的管理面的网络与边端断开情况下,为了不会影响边缘容器运行,本发明一可选实施例中根据边缘离线缓存数据自动恢复边缘应用,并保证边缘流量正常转发,流程如下:
即在所述第一节点与云端断开连接的情况下,所述方法还包括:
根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
具体地,在云边连接断开后,节点重启或业务故障情况下,从数据库读取元数据恢复边缘容器,实现了边缘应用的离线自治。边缘节点流量转发时可从边缘本地数据库获得对应的node、service、endpoints、pod等元数据的相关信息,然后进行边边流量转发。另外,由于云边网络异常会导致部分pod的云端状态异常,而边缘侧却正常运行,为了确保这样的pod也可被正常访问到,需要从endpoints的所有后端实例address中包括ready和notready状态,以及pod的运行状态两方便去判断筛选后端实例。
在第一节点与云端断开连接之后恢复连接的情况下,边缘节点迅速连上云端并上报状态,同步元数据信息,继续实时监听并更新元数据的列表信息,即更新元数据。
在边缘计算场景下,云端和边端通过数据和管理通道建立通信连接,以便应用元数据可以在云和边之间进行协同。边缘和云端的通信连接会由于网络不稳定等原因经常断开,在这种情况下,域名解析服务就不起作用了,因此,本发明实施了把服务发现和域名解析放到边缘,而不是传统的在云端里面去解析,将数据中心云服务网格的关键能力延申到边缘,为应用程序提供了轻量的服务发现与域名解析功能。
并且,本发明实施例在初始化时选取服务的subnet网段进行拦截,只需要创建少量的iptables规则,并在原生的service之上,增加了endpoint的拓扑管理功能,通过自定义负载均衡策略而非iptables规则来限制service后端endpoint的访问方式,这样不需要为每个pod设置iptables规则,极大地降低了维护这些规则的代价。
如图4所示,本发明实施例还提供一种边缘服务发现方法,应用于第一服务器,所述方法包括:
步骤401:接收第一节点基于目标信息发送的第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名。
需要说明的是,所述第一节点为边缘节点或云端节点,在本发明实施例中,以所述第一节点为边缘节点为例进行说明。
在本步骤中,边缘节点的主要功能可以分为基于服务IP访问和基于服务域名访问应用两种请求方式,具体地,第一节点基于目标信息向第一服务器发送第一应用访问请求,该目标信息为所述第一服务器的服务IP或所述第一服务器的服务域名。
步骤402:根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一pod。
第一服务器接收到第一应用访问请求后,通过自定义的负载均衡策略(即预先设定的负载均衡策略)转发应用间的流量,即向第一pod转发第一应用访问请求的流量。
在本发明一可选实施例中,所述方法还包括:
接收所述第一节点发送的第二应用访问请求,所述第二应用访问请求包括目标pod IP;其中,所述第一节点部署了CNI网络插件,确保podIP具有唯一性;
根据所述目标pod IP和预先设定的负载均衡策略将所述第二应用访问请求的流量转发到第二pod。
具体地,边缘节点通过监听机制去判断CNI网络插件是否部署,若第一节点部署CNI网络插件,本可选实施例会通过iptables规则拦截集群中pod IP服务网段请求(即第二应用访问请求,该第二应用访问请求包括目标pod IP)。当目标pod IP对应的pod资源被创建时,pod的informer会监听到pod的增加、删除和修改操作,同步更新并缓存pod与pod IP的关联记录,从而可以直接通过目标pod IP从list-watch监听的数据缓存中直接获取应用节点信息。之后将第二应用访问请求发送至第一服务器,该第一服务器根据目标pod IP将所述第二应用访问请求的流量转发到第二pod。此外,为保证宿主机节点的pod可以被正常访问,节点自身的pod IP的请求不会被iptables拦截。
在本发明一可选实施例中,在所述目标信息为所述第一服务器的服务域名的情况下,根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一pod,包括:
在根据所述第一服务器对应的第一服务端点的相关信息确定所述第一pod是所述第一服务端点对应的pod中的一个的情况下,根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到所述第一pod。
具体地,headless service会为代理的每一个有状态应用创建出来的endpoint也就是pod添加域名系统(Domain Name System,DNS)域名解析。
边缘节点根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP,具体过程同上述可选实施例,之后,根据所述第一服务器的服务域名,确定第一pod,具体地,通过对第一服务器的服务域名进行域名分割得到第一pod的相关信息,基于本地数据库中的元数据监听到的pod的相关信息判断第一pod的应用状态,如果第一pod处于运行状态,则在fake IP网段2(即第一服务器的服务域名对应的第一虚拟IP)中给该第一服务器的服务域名分配唯一一个fake IP(即第一目标虚拟IP),并记录该第一服务器的服务域名与第一目标虚拟IP的关联关系,根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内,在所述服务发现进程内,通过第一目标虚拟IP和缓存的元数据获取具体的应用以及服务(具体包括根据第一目标虚拟IP找到headless service的相关信息,进而获取到每个endpoint(第一服务端点)的IP和该endpoint中的第一pod的相关信息),向所述第一服务器发送所述第一应用访问请求(该第一应用访问请求包括endpoint的IP和该endpoint中的第一pod的相关信息),第一服务器根据自定义负载均衡策略将第一应用访问请求的流量转到边端应用对应的第一pod,具体地,在第一服务器遍历后端实例的endpoints(第一服务端点)时,判断第一pod是否归属于其中,若是,则直接将第一应用访问请求的流量转到边端应用对应的第一pod。其中,所述第一pod为有状态应用对应的pod。
本发明实施例通过在边端节点部署一个完善、轻量化的服务发现系统,可以对边缘节点中的服务和应用进行统一的服务域名访问和服务IP访问。这套边缘计算场景中的服务发现方案简单高效、架构清晰,能够充分满足云边集群中应用之间服务访问的场景。边缘应用中的数据存储模块(本地数据库)具备通过监听机制实时从云端拉取资源信息,将应用元数据持久化到本地,定时缓存更新clusterIP service服务和无状态容器应用、headlessservice服务和有状态容器应用的关联信息,能够充分的保障边缘节点在云边网络断开连接的情况下,根据边缘离线缓存数据自动恢复边缘应用,保证处于运行状态的边缘应用流量可以正常转发。
原生k8s安装CoreDNS、Kube-Proxy和CNI网络插件需要占用较多的资源,本发明实施例将数据中心云服务网格的能力延申到边缘,只需要一键部署一个轻量化的组件就可以管理边缘服务。原生k8s采用多量级的iptables规则会大量占用该宿主机的CPU资源,本发明实施例不需要为每个pod设置iptables规则,可以极大地降低维护这些规则所需的代价。
本发明实施例还可以对云边集群中的所有无状态应用和有状态应用进行统一的服务访问。不仅支持最基本的无状态和clusterIP类型的IP和域名访问,也满足有状态应用和headless类型的流量负载,提供了一套完善、高效的边缘计算场景中的边缘节点服务访问策略,这种方案部署和管理成本极低、更易维护。
云边网络异常会导致边缘节点服务访问的异常,本实施例利用边端的轻量化数据库存储元数据信息,保障边端节点在网络断开后服务访问不丢失。在云边网络恢复后,迅速接入云端并更新资源信息,快速恢复应用服务。
本发明实施例可以兼容K8S的CNI网络插件。如果边缘节点安装了网络插件,每个容器应用都会具备全集群唯一的IP地址,本发明实施例也会自动监听和检测到网络插件的部署,并拦截pod IP网段的请求,支持直接基于容器应用本身的IP地址访问。这种方案对原生CNI网络插件无侵入性,具有广泛地应用空间。
上述完善、高效的边缘计算场景中的边缘节点服务发现和域名解析方案与现有的技术有本质区别,而场景领域却广泛,因此具有很好的商业价值。
如图5所示,本发明实施例还提供一种边缘服务发现装置,应用于第一节点,所述装置包括:
第一发送模块501,用于基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;
所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一pod。
可选地,所述装置还包括:
第一接收模块,用于接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的pod的相关信息;服务器与pod之间的关联关系;pod与pod IP之间的关联关系;
第一处理模块,用于根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系。
可选地,所述第一发送模块501,包括:
第一拦截单元,用于在所述目标信息为第一服务器的服务IP的情况下,根据所述第一服务器的服务IP将所述第一应用访问请求拦截至服务发现进程内;
第一确定单元,用于根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
第一发送单元,用于向所述第一服务器发送所述第一应用访问请求。
可选地,所述装置还包括:
第二发送模块,用于在所述第一节点部署了容器网络接口CNI网络插件的情况下,向所述第一服务器发送第二应用访问请求;所述第二应用访问请求包括目标pod IP;
所述第一服务器用于根据所述目标pod IP将所述第二应用访问请求的流量转发到第二pod。
可选地,所述第一发送模块501,包括:
第一解析单元,用于在所述目标信息为所述第一服务器的服务域名的情况下,根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP;
第二拦截单元,用于根据所述第一服务器的服务IP,将所述第一应用访问请求拦截至服务发现进程内;
第二确定单元,用于根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
第二发送单元,用于向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为无状态应用对应的pod。
可选地,所述第一发送模块501,包括:
第一绑定单元,用于在所述目标信息为所述第一服务器的服务域名的情况下,根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
第三确定单元,用于根据所述第一服务器的服务域名,确定所述第一服务器对应的第一虚拟IP;
第三拦截单元,用于根据所述第一服务器对应的第一虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
第三发送单元,用于在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
可选地,所述第一发送模块501,包括:
第二绑定单元,用于在所述目标信息为所述第一服务器的服务域名的情况下,根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
第四确定单元,用于根据所述第一服务器的服务域名,确定第一pod;
第一分配单元,用于在根据元数据确定所述第一pod处于运行状态的情况下,从所述第一服务器的服务域名对应的第一虚拟IP中为所述第一服务器的服务域名分配第一目标虚拟IP;
第四拦截单元,用于根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
第四发送单元,用于在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
可选地,所述装置还包括:
第二处理模块,用于对所述元数据进行本地持久化处理和资源生命周期管理处理。
可选地,所述装置还包括:
第三发送模块,用于根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
需要说明的是,本发明实施例提供的应用于第一节点的边缘服务发现装置,是能够执行上述的应用于第一节点的边缘服务发现方法的装置,则上述的应用于第一节点的边缘服务发现方法的所有实施例均适用于该装置,且能够达到相同或者相似的技术效果。
如图6所示,本发明实施例还提供一种节点设备,包括:处理器601;以及通过总线接口602与所述处理器601相连接的存储器603,所述存储器603用于存储所述处理器601在执行操作时所使用的程序和数据,所述处理器601调用并执行所述存储器603中所存储的程序和数据。
其中,所述收发机604与所述总线接口602连接,用于在所述处理器601的控制下接收和发送数据,具体地,所述处理器601用于读取所述存储器603中的程序,所述收发机604执行下列过程:
基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;
所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一pod。
可选地,所述收发机604还用于:
接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的pod的相关信息;服务器与pod之间的关联关系;pod与pod IP之间的关联关系;
所述处理器601用于:
根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系。
可选地,所述处理器601具体用于:
在所述目标信息为第一服务器的服务IP的情况下,根据所述第一服务器的服务IP将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
所述收发机604具体用于:
向所述第一服务器发送所述第一应用访问请求。
可选地,所述收发机604还用于:
在所述第一节点部署了容器网络接口CNI网络插件的情况下,向所述第一服务器发送第二应用访问请求;所述第二应用访问请求包括目标pod IP;
所述第一服务器用于根据所述目标pod IP将所述第二应用访问请求的流量转发到第二pod。
可选地,所述处理器601具体用于:
在所述目标信息为所述第一服务器的服务域名的情况下,根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP;
根据所述第一服务器的服务IP,将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
所述收发机604具体用于:
向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为无状态应用对应的pod。
可选地,所述处理器601具体用于:
在所述目标信息为所述第一服务器的服务域名的情况下,根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定所述第一服务器对应的第一虚拟IP;
根据所述第一服务器对应的第一虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
所述收发机604具体用于:
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
可选地,所述处理器601具体用于:
在所述目标信息为所述第一服务器的服务域名的情况下,根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定第一pod;
在根据元数据确定所述第一pod处于运行状态的情况下,从所述第一服务器的服务域名对应的第一虚拟IP中为所述第一服务器的服务域名分配第一目标虚拟IP;
根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
所述收发机604具体用于:
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
可选地,所述处理器601还用于:
对所述元数据进行本地持久化处理和资源生命周期管理处理。
可选地,所述收发机604还用于:
根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器603代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供用户接口605。收发机604可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器601负责管理总线架构和通常的处理,存储器603可以存储处理器601在执行操作时所使用的数据。
另外,本发明具体实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上中任一项所述的边缘服务发现方法中的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括用若干指令使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U 盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种边缘服务发现方法,其特征在于,应用于第一节点,所述方法包括:
接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的容器组pod的相关信息;服务器与pod之间的关联关系;pod与容器组网际互连协议pod IP之间的关联关系;
根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系;
基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组pod;
其中,所述方法还包括:
在所述第一节点部署了容器网络接口CNI网络插件的情况下,向所述第一服务器发送第二应用访问请求;所述第二应用访问请求包括目标pod IP;所述第一服务器用于根据所述目标pod IP将所述第二应用访问请求的流量转发到第二pod;
其中,在所述第一节点与云端断开连接的情况下,所述方法还包括:
根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
2.根据权利要求1所述的边缘服务发现方法,其特征在于,在所述目标信息为第一服务器的服务IP的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据所述第一服务器的服务IP将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
向所述第一服务器发送所述第一应用访问请求。
3.根据权利要求1所述的边缘服务发现方法,其特征在于,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据服务器的服务IP与服务器的服务域名之间的关联关系,对所述第一服务器的服务域名进行解析,确定所述第一服务器的服务IP;
根据所述第一服务器的服务IP,将所述第一应用访问请求拦截至服务发现进程内;
根据所述第一服务器的服务IP和元数据,确定所述第一服务器;
向所述第一服务器发送所述第一应用访问请求;
其中,第一pod为无状态应用对应的pod。
4.根据权利要求1所述的边缘服务发现方法,其特征在于,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定所述第一服务器对应的第一虚拟IP;
根据所述第一服务器对应的第一虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,第一pod为有状态应用对应的pod。
5.根据权利要求1所述的边缘服务发现方法,其特征在于,在所述目标信息为所述第一服务器的服务域名的情况下,所述基于目标信息向第一服务器发送第一应用访问请求,包括:
根据元数据,将无头类型的服务器的服务域名绑定对应的虚拟IP;
根据所述第一服务器的服务域名,确定第一pod;
在根据元数据确定所述第一pod处于运行状态的情况下,从所述第一服务器的服务域名对应的第一虚拟IP中为所述第一服务器的服务域名分配第一目标虚拟IP;
根据所述第一目标虚拟IP,将所述第一应用访问请求拦截至服务发现进程内;
在所述服务发现进程内向所述第一服务器发送所述第一应用访问请求;
其中,所述第一pod为有状态应用对应的pod。
6.根据权利要求1所述的边缘服务发现方法,其特征在于,所述接收云端发送的元数据之后,所述方法还包括:
对所述元数据进行本地持久化处理和资源生命周期管理处理。
7.一种边缘服务发现装置,其特征在于,应用于第一节点,所述装置包括:
第一接收模块,用于接收云端发送的元数据,所述元数据包括以下至少一项:所述云端上的服务器的相关信息;所述云端上的服务端点的相关信息;所述云端上的容器组pod的相关信息;服务器与pod之间的关联关系;pod与容器组网际互连协议pod IP之间的关联关系;
第一处理模块,用于根据所述元数据,生成第一信息,所述第一信息用于指示服务器的服务IP与服务器的服务域名之间的关联关系;
第一发送模块,用于基于目标信息向第一服务器发送第一应用访问请求,所述目标信息为所述第一服务器的服务网际互连协议IP或所述第一服务器的服务域名;所述第一服务器用于根据所述第一应用访问请求和预先设定的负载均衡策略将所述第一应用访问请求的流量转发到第一容器组pod;
其中,所述装置还包括:
第二发送模块,用于在所述第一节点部署了容器网络接口CNI网络插件的情况下,向所述第一服务器发送第二应用访问请求;所述第二应用访问请求包括目标pod IP;所述第一服务器用于根据所述目标pod IP将所述第二应用访问请求的流量转发到第二pod;
其中,所述装置还包括:
第三发送模块,用于根据所述元数据,将所述第一应用访问请求的流量转发到第一pod。
8.一种节点设备,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求1至6中任一项所述的边缘服务发现方法中的步骤。
9.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至6中任一项所述的边缘服务发现方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311023465.4A CN116743845B (zh) | 2023-08-15 | 2023-08-15 | 边缘服务发现方法、装置、节点设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311023465.4A CN116743845B (zh) | 2023-08-15 | 2023-08-15 | 边缘服务发现方法、装置、节点设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116743845A CN116743845A (zh) | 2023-09-12 |
CN116743845B true CN116743845B (zh) | 2023-11-03 |
Family
ID=87911907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311023465.4A Active CN116743845B (zh) | 2023-08-15 | 2023-08-15 | 边缘服务发现方法、装置、节点设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743845B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112333017A (zh) * | 2020-10-30 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种服务配置方法、装置、设备及存储介质 |
CN112532668A (zh) * | 2019-09-19 | 2021-03-19 | 贵州白山云科技股份有限公司 | 一种网络边缘计算方法、装置及介质 |
CN113037891A (zh) * | 2021-03-26 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 边缘计算系统中有状态应用的访问方法、装置及电子设备 |
CN114143258A (zh) * | 2021-11-22 | 2022-03-04 | 苏州博纳讯动软件有限公司 | 一种在Kubernetes环境下基于Open vSwitch的服务代理方法 |
CN114390060A (zh) * | 2021-12-13 | 2022-04-22 | 杭州网鼎科技有限公司 | 一种边缘计算网络分发的方法及存储介质 |
CN114979246A (zh) * | 2022-05-18 | 2022-08-30 | 京东方科技集团股份有限公司 | 业务管理方法、系统、配置服务器及边缘计算设备 |
CN115766729A (zh) * | 2022-11-18 | 2023-03-07 | 中国科学技术大学 | 一种四层负载均衡的数据处理方法及相关装置 |
CN115801894A (zh) * | 2022-11-15 | 2023-03-14 | 阿里巴巴(中国)有限公司 | 通信服务系统、通信服务的实现方法、设备及存储介质 |
CN116319272A (zh) * | 2022-12-02 | 2023-06-23 | 浪潮云信息技术股份公司 | 一种云边协同系统在智慧农业的应用方法及装置 |
-
2023
- 2023-08-15 CN CN202311023465.4A patent/CN116743845B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532668A (zh) * | 2019-09-19 | 2021-03-19 | 贵州白山云科技股份有限公司 | 一种网络边缘计算方法、装置及介质 |
CN112333017A (zh) * | 2020-10-30 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种服务配置方法、装置、设备及存储介质 |
CN113037891A (zh) * | 2021-03-26 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 边缘计算系统中有状态应用的访问方法、装置及电子设备 |
CN114143258A (zh) * | 2021-11-22 | 2022-03-04 | 苏州博纳讯动软件有限公司 | 一种在Kubernetes环境下基于Open vSwitch的服务代理方法 |
CN114390060A (zh) * | 2021-12-13 | 2022-04-22 | 杭州网鼎科技有限公司 | 一种边缘计算网络分发的方法及存储介质 |
CN114979246A (zh) * | 2022-05-18 | 2022-08-30 | 京东方科技集团股份有限公司 | 业务管理方法、系统、配置服务器及边缘计算设备 |
CN115801894A (zh) * | 2022-11-15 | 2023-03-14 | 阿里巴巴(中国)有限公司 | 通信服务系统、通信服务的实现方法、设备及存储介质 |
CN115766729A (zh) * | 2022-11-18 | 2023-03-07 | 中国科学技术大学 | 一种四层负载均衡的数据处理方法及相关装置 |
CN116319272A (zh) * | 2022-12-02 | 2023-06-23 | 浪潮云信息技术股份公司 | 一种云边协同系统在智慧农业的应用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116743845A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11277471B2 (en) | Managing replication of computing nodes for provided computer networks | |
US11895154B2 (en) | Method and system for virtual machine aware policy management | |
US10516590B2 (en) | External health checking of virtual private cloud network environments | |
US11088944B2 (en) | Serverless packet processing service with isolated virtual network integration | |
US10887276B1 (en) | DNS-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks | |
US8819211B2 (en) | Distributed policy service | |
WO2017036288A1 (zh) | 一种网元升级方法及设备 | |
US11095534B1 (en) | API-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks | |
CN110572439B (zh) | 一种基于元数据服务和虚拟转发网桥的云监控方法 | |
EP3664420B1 (en) | Managing address spaces across network elements | |
US20120297384A1 (en) | Virtual Managed Network | |
Liu et al. | SDN-based live VM migration across datacenters | |
CN113572831B (zh) | Kubernetes集群间的通信方法、计算机设备及介质 | |
CN111327668B (zh) | 网络管理方法、装置、设备和存储介质 | |
CN112042170B (zh) | 用于虚拟机的节点上dhcp实现 | |
CN113364741A (zh) | 一种应用访问方法及代理服务器 | |
CN104506654A (zh) | 云计算系统及动态主机配置协议服务器备份方法 | |
US9985840B2 (en) | Container tracer | |
US11743325B1 (en) | Centralized load balancing of resources in cloud edge locations embedded in telecommunications networks | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
CN116743845B (zh) | 边缘服务发现方法、装置、节点设备和可读存储介质 | |
US11296981B2 (en) | Serverless packet processing service with configurable exception paths | |
CN110809047B (zh) | 一种外网单域名连接内网kafka集群的实现方法及系统 | |
US20230205505A1 (en) | Computer system, container management method, and apparatus | |
US10848418B1 (en) | Packet processing service extensions at remote premises |
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 |