CN116319392A - 一种服务访问方法及设备 - Google Patents

一种服务访问方法及设备 Download PDF

Info

Publication number
CN116319392A
CN116319392A CN202310193040.1A CN202310193040A CN116319392A CN 116319392 A CN116319392 A CN 116319392A CN 202310193040 A CN202310193040 A CN 202310193040A CN 116319392 A CN116319392 A CN 116319392A
Authority
CN
China
Prior art keywords
server
target
bgp
peer device
bgp peer
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.)
Pending
Application number
CN202310193040.1A
Other languages
English (en)
Inventor
胡晓峰
张纪宽
刘先攀
刘云冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juhaokan Technology Co Ltd
Original Assignee
Juhaokan Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juhaokan Technology Co Ltd filed Critical Juhaokan Technology Co Ltd
Priority to CN202310193040.1A priority Critical patent/CN116319392A/zh
Publication of CN116319392A publication Critical patent/CN116319392A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/17Shortcut routing, e.g. using next hop resolution protocol [NHRP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种服务访问方法及设备,应用于容器云集群领域,该方法包括:通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,服务访问消息用于指示第二服务器访问目标容器云集群中的第一资源IP,目标设备中存储有多个路由规则,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为一个容器云集群中至少一个服务器的BGP Peer装置;通过第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。

Description

一种服务访问方法及设备
技术领域
本申请实施例涉及容器云集群技术领域。更具体地讲,涉及一种服务访问方法及设备。
背景技术
在基于Kubernetes的容器云集群下,Kubernetes集群内应用的基本运行单位是Pod,Kubernetes为每个Pod提供自己的IP地址,在Kubernetes集群内可以通过Pod IP访问单个Pod。同时Kubernets可以创建Service资源,Service负载均衡到一组据有相同功能的Pod,Kubernetes为每个Service也分配了自己的IP,在集群内访问Service IP,便可访问后面多个Pod应用,实现负载均衡。
但是无论Pod IP,还是Service IP,都是Kubernetes分配的内部IP,从Kubernetes集群内可以直接访问,从Kubernetes集群外无法直接访问。目前从Kubernetes集群外访问,无论是NodePort方式还是Ingress方式,中间都需要加一层代理,通过代理转发到ServiceIP或Pod IP。
然而,通过代理转发的方式可能会造成比较大的访问延时,因此,相关技术中从容器云集群外访问容器云集群内资源的方式存在访问效率较低的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种服务访问方法及设备,可以提高从容器云集群外访问容器云集群内资源的访问效率。
第一方面,本申请实施例提供了一种服务访问方法,应用于目标容器云集群中的第一服务器,第一服务器包括第一BGP Peer装置,包括:通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个PodIP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一BGP Peer装置,第二服务器不属于该目标容器云集群;通过第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。
第二方面,本申请实施例提供了一种服务访问方法,应用于目标设备,该方法包括:从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,第一路由规则对应该目标容器云集群的第一服务器的第一BGP Peer装置;基于第一路由规则,向第一BGP Peer装置发送服务访问消息,以使第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群的第一资源IP,第一资源IP为第一Pod IP或第一Service IP;
第三方面,本申请实施例提供了一种服务访问方法,应用于第二服务器,该方法包括:
在第二服务器包括第二BGP Peer装置,且第一服务器和第二服务器未接入同一路由设备的情况下,通过第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息,第二服务器属于与目标容器云集群不同的容器云集群;
或者,
在第二服务器不属于任意容器云集群的情况下,向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息;该目标BGP RR装置为第二服务器通往该目标容器云集群内IP网段的路由网关;
其中,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标BGP RR装置中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGPPeer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一服务器中的第一BGP Peer装置。
第四方面,本申请实施例提供了一种服务器,属于目标容器云集群,该服务器包括第一BGP Peer装置,包括:接收模块,用于通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGPPeer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一BGP Peer装置,第二服务器不属于该目标容器云集群;发送模块,用于通过第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。
第五方面,本申请实施例提供了一种目标设备,包括:控制模块,用于从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,第一路由规则对应该目标容器云集群的第一服务器的第一BGPPeer装置;发送模块,用于基于第一路由规则,向第一BGP Peer装置发送服务访问消息,以使第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群的第一资源IP,第一资源IP为第一Pod IP或第一Service IP;。
第六方面,本申请实施例提供了一种服务器,该服务器为第二服务器,包括:
发送模块,用于在第二服务器包括第二BGP Peer装置,且第一服务器和第二服务器未接入同一路由设备的情况下,通过第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息,第二服务器属于与目标容器云集群不同的容器云集群;或者,发送模块,用于在第二服务器不属于任意容器云集群的情况下,向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息;该目标BGPRR装置为第二服务器通往该目标容器云集群内IP网段的路由网关;其中,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标BGP RR装置中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一服务器中的第一BGP Peer装置。
第七方面,本申请实施例提供了一种服务设备,包括:包括:处理器,存储器及存储在存储器上并可在该处理器上运行的程序或指令,该程序或指令被处理器执行时实现如第一方面至第三方面任一所示的服务访问方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第一方面至第三方面任一所示的服务访问方法。
第九方面,本申请实施例提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第一方面至第三方面任一所示的服务访问方法。
本申请实施例提供的技术方案与现有技术相比具有如下优点:本申请实施例中,第一服务器通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个ServiceIP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一BGP Peer装置,第二服务器不属于该目标容器云集群;第一服务器通过第一BGPPeer装置向第一资源IP对应的目标Pod IP发送服务访问消息。本方案中,通过在目标容器云集群中的每个服务器上设置BGP Peer装置,并设置BGP Peer装置作为容器云集群外访问该容器云集群内的第一资源IP(Pod IP或Service IP)的下一跳,生成对应的路由规则,并保存在目标设备中,然后当容器云集群外访问该容器云集群内的第一资源IP时,集群内服务器通过BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,并通过BGPPeer装置向第一资源IP对应的目标Pod IP发送服务访问消息,以实现容器云集群外访问该容器云集群内的第一资源IP。如此,通过服务器内设置的BGP Peer装置可以实现容器云集群外直接访问该容器云集群内的第一资源IP,相对于通过代理进行访问的方式,大大降低了访问延时,可以提高访问效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例中的通过Ingress的代理方式的整体网络拓扑图;
图2示出了根据一些实施例的服务访问方法的流程示意图之一;
图3示出了根据一些实施例的服务访问方法的流程示意图之二;
图4示出了根据一些实施例的服务访问方法的流程示意图之三;
图5示出了根据一些实施例的服务访问方法的流程示意图之四;
图6示出了根据一些实施例的服务访问方法的流程示意图之五;
图7示出了根据一些实施例的服务访问方法的流程示意图之六;
图8示出了根据一些实施例的服务访问方法的一种可能的整体网络拓扑图;
图9示出了根据一些实施例的服务器的框架示意图之一;
图10示出了根据一些实施例的目标设备的框架示意图;
图11示出了根据一些实施例的服务器的框架示意图之二;
图12示出了根据一些实施例的服务设备硬件示意图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
接下来,对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
Kubernetes,通常称为k8s是开源容器集群管理系统,用于自动部署、扩展和管理容器化(containerized)应用程序。该系统基于容器运行时接口(Container RuntimeInterface,CRI)(如开源的应用容器引擎(Docker)、容器存储接口(Container StorageInterface,CSI)等)构建一个容器的调度服务。Kubernetes可以自动在一个容器集群中选择一个工作容器供使用。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具,包括Docker、CRI-O等。
服务器:也称为一个节点(node),一个node代表一个主机设备(物理机)。
Pod,是Kubernetes中能够创建和部署的最小单元(基本调度单元),是Kubernetes集群中的一个应用实例,用于提供服务。在Kubernetes集群中,Pod是所有业务类型的基础,也是Kubernetes管理的最小单位级,它由一个或多个容器的组合,每个容器对应的运行一个应用,Kubernetes直接管理Pod,而不是容器。例如,在原生的Kubernetes设计中,一组功能类似的容器组成一个Pod,即每个Pod中运行有多个容器。或者,可以将每个Pod自定义为与容器一一对应,即每个Pod中只运行有一个容器。Pod比较重要的两个特点,网络:每一个Pod都会被指派一个唯一的IP地址,在Pod中的每一个容器共享网络命名空间,包括IP地址和网络端口,在同一个Pod中的容器可以同本地主机进行互相通信,当Pod中的容器需要与Pod外的实体进行通信时,则需要通过端口等共享的网络资源。存储:Pod能够被指定共享存储卷的集合,在Pod中所有的容器能够访问共享存储卷。
同时Kubernets可以创建Service资源,Kubernetes为每个Service也分配了自己的IP,Service基于负载均衡原则路由到Kubernets内的一个服务器上,或者Service IP路由到Kubernets内包括Pod的各个服务器上,在集群内访问Service IP,便可访问后面多个Pod应用。
其中,一个Pod IP对应容器云集群中的一个服务器上,一个service IP对应容器云集群中的多个服务器。
BGP:Border Gateway Protocol,边界网关协议,是一种协议,通过在边缘路由器之间交换路由和可达性信息来管理数据包如何通过互联网路由。
BGP RR:BGP路由反射器(Route Reflector,RR)。可以是软件部署在单独的服务器上,也可以是支持BGP协议的网络硬件设备,负责与其他BGP Peer交换路由规则。
BGP Peer:BGP对等体。部署在容器云集群内的每台服务器上,负责监听自己所在服务器上的Pod信息,生成路由规则将自己作为通往该Pod IP下一跳,并将该路由规则通过BGP协议同步给BGP RR。另一方面,收集BGP RR下发的各个集群内其他服务器同步的路由规则,并添加到自己服务器的路由规则中。
目前业内私有Kubernetes集群基本使用NodePort或者Ingress的代理方式实现访问集群内的服务,业内Kubernetes当前也主要用来部署无状态应用(如web类应用),无状态应用不要求每次访问特定的Pod,负载均衡即可满足,对延迟也不敏感,因此上述代理的方式得到广泛应用。但是如果Kubernetes用来部署有状态服务,如各种数据库、缓存等,此类有状态应用需要访问特定Pod,同时数据库与缓存作为底层基础组件,对延迟要求更高。随着Kubernetes更多的用于有状态应用的管理,后续行业也会渐渐意识到代理的方案的缺陷。
如图1所示为一种通过Ingress的代理方式的整体网络拓扑图,采用Ingress的方案,流量先通过接入交换机进入部署Ingress的节点,再由Ingress节点将流量转发到集群内其他节点,该种方式会导致所有流量压力都集中在部署有Ingress的节点上,容易出现性能损耗及性能瓶颈,而且在集群内通过部署有Ingress的节点进行流量的转发容易造成访问延时。
另外,在一些通过Ingress的代理方式,需要在Ingress节点上额外安装IngressController Service组件,该组件多为软件层代理(如openresty、nginx等),会导致增加调用链路的网络延迟;而且Ingress Controller Server上层需要对接F5等硬件LB(负载均衡)设备,在增加延迟的同时也增加了设备成本。
相关技术中还有基于openresty的方案:主要优化了Ingress的配置功能,缺点同上述Ingress方案,存在性能损耗与性能瓶颈,不能直接访问Service IP或Pod IP。相关技术中还有基于iptables规则的方案,配置与管理复杂,需要开发配套系统;访问端口被改变;不能直接访问Service IP或Pod IP。相关技术中还有基于DNS+LB方案:配置与管理负杂;要访问单个Pod时需要给每个Pod分配IP,但对于需要访问Pod IP的软件依然不满足。
综上,现有从容器云集群外访问容器云集群内资源的方式存在以下问题:容易造成性能损耗及性能瓶颈,容易造成较大网络延时(不能及时访问资源),配置与管理复杂,需要开发配套系统,需增加设备成本,不能直接访问Service IP或Pod IP。所以,亟需一种可以降低访问延时的从容器云集群外直接访问容器云集群内资源的方法。
为了解决上述技术问题,本申请实施例提供了一种服务访问方法,通过在目标容器云集群中的每个服务器上设置BGP Peer装置,并设置BGP Peer装置作为容器云集群外访问该容器云集群内的第一资源IP(Pod IP或Service IP)的下一跳,生成对应的路由规则,并保存在目标设备中,然后当容器云集群外访问该容器云集群内的第一资源IP时,集群内服务器通过BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,并通过BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息,以实现容器云集群外访问该容器云集群内的第一资源IP。如此,通过服务器内设置的BGP Peer装置可以实现容器云集群外直接访问该容器云集群内的第一资源IP,相对于通过代理进行访问的方式,大大降低了访问延时,可以提高访问效率。
图2为根据本申请一个或多个实施例实现服务访问方法的步骤流程图,该服务访问方法可以包括下述的S201至S204。
S201、目标设备从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则。
其中,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,第一路由规则对应该目标容器云集群的第一服务器的第一BGP Peer装置。
S202、目标设备基于第一路由规则,向第一BGP Peer装置发送服务访问消息。
目标设备基于第一路由规则,向第一BGP Peer装置发送服务访问消息,以使第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。
S203、第一服务器通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息。
其中,第一服务器属于目标容器云集群,第一服务器包括第一BGP Peer装置。
其中,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一BGP Peer装置,第二服务器不属于该目标容器云集群。
其中,服务访问消息可以为超文本传输协议(Hyper Text Transfer Protocol,HTTP)消息,也可以为传输控制协议(TCP,Transmission Control Protocol),在服务访问消息为TCP消息时,服务访问消息具体可以为数据库访问消息,数据库访问消息具体可以为redis消息,或者为MySQL消息。
其中,目标设备中保存有多个路由规则,因此,当需要传输服务访问消息时,可以从保存的多个路由规则中确定与服务访问消息对应的路由规则,然后基于确定的路由规则传输服务访问消息。
第一路由规则为目标设备从多个路由规则中,确定的与服务访问消息对应的路由规则。在第一资源IP为第一Pod IP时,第一路由规则对应第一Pod IP,第一路由规则用于指示访问第一服务器的Pod IP的下一跳为第一BGP Peer装置;在第一资源IP为第一ServiceIP时,第一路由规则对应第一Service IP,第一路由规则用于指示访问目标容器云集群的Service IP的下一跳为目标容器云集群中的至少一个服务器的BGP Peer装置,该至少一个服务器包括第一服务器,该至少一个服务器的BGP Peer装置包括第一服务器的BGP Peer装置。
本申请一些实施例中,在第一Service IP的访问类型为负载均衡类型的情况下,该至少一个服务器为目标容器云集群中的全部服务器,根据负载均衡原则从第一路由规则对应的该至少一个服务器中确定第一服务器;在第一Service IP的访问类型为包括Pod IP的类型的情况下,该至少一个服务器均为包括Pod IP的服务器,该至少一个服务器包括第一服务器。
本申请一些实施例中,目标设备为目标BDP RR装置,无论第一服务器与第二服务器是否接入同一个路由设备,无论第二服务器是否属于容器云集群,第二服务器要访问第一服务器,均需要将服务访问消息通过目标BGP RR装置转发给第一服务器。对应地,此种情况下,在BGP RR存储多个路由规则,可以在各个BGP Peer装置中保存多个路由规则,也可以不在各个BGP Peer装置中保存多个路由规则。
本申请一些实施例中,在第二服务器属于容器云集群,第一服务器与第二服务器接入目标路由设备的情况下,目标设备为第二服务器的第二BGP Peer装置;在第二服务器属于容器云集群,第一服务器与第二服务器未接入同一路由设备的情况下,目标设备为目标BGP RR装置;在第二服务器不属于容器云集群的情况下,目标设备为目标BGP RR装置。此种情况下,在BGP RR存储多个路由规则,且在各个BGP Peer装置中保存多个路由规则。
S204、第一服务器通过第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。
本申请一些实施例中,在第一资源IP为第一Pod IP的情况下,目标Pod IP为第一Pod IP,目标Pod IP属于第一服务器。
本申请一些实施例中,在第一资源IP为第一Service IP,第一Service IP的访问类型为负载均衡类型的情况下,目标Pod IP可以属于第一服务器,目标Pod IP也可以不属于第一服务器。目标Pod IP不属于第一服务器具体为第一服务器不包括Pod IP,因此,第一BGP Peer装置接收到服务访问消息时,第一BGP Peer装置将服务访问消息转发给目标容器云集群内包括目标Pod IP的其他服务器。
本申请实施例中,通过在目标容器云集群中的每个服务器上设置BGP Peer装置,并设置BGP Peer装置作为容器云集群外访问该容器云集群内的第一资源IP(Pod IP或Service IP)的下一跳,生成对应的路由规则,并保存在目标设备中,然后当容器云集群外访问该容器云集群内的第一资源IP时,集群内服务器通过BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,并通过BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息,以实现容器云集群外访问该容器云集群内的第一资源IP。如此,通过服务器内设置的BGP Peer装置可以实现容器云集群外直接访问该容器云集群内的第一资源IP,相对于通过代理进行访问的方式,大大降低了访问延时,可以提高访问效率。
本申请一些实施例中,第二服务器属于与该目标容器云集群不同的容器云集群;在第一服务器和第二服务器未接入同一路由设备的情况下,该目标设备为目标BGP RR装置;结合图2,如图3所示,在上述S201之前,本申请实施例提供的服务访问方法还可以包括下述S205和S206,上述S201具体可以通过下述S201a实现,上述S202具体可以通过下述S202a实现,上述S203具体可以通过下述S203a实现。
S205、在第二服务器包括第二BGP Peer装置,且第一服务器和第二服务器未接入同一路由设备的情况下,第二服务器通过第二BGP Peer装置向目标BGP RR装置发送服务访问消息。
在第二服务器包括第二BGP Peer装置,且第一服务器和第二服务器未接入同一路由设备的情况下,第二服务器通过第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息。
其中,第二服务器属于与目标容器云集群不同的容器云集群。
S206、目标BGP RR装置从第二BGP Peer装置接收服务访问消息。
S201a、目标BGP RR装置从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则。
S202a、目标BGP RR装置基于第一路由规则,向第一BGP Peer装置发送服务访问消息。
S203a、第一服务器通过第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息。
第二BGP Peer装置可以直接将服务访问消息发送给目标BGP RR,不经过其他路由设备转发;第二BGP Peer装置可以通过其他路由设备将服务访问消息转发给目标BGP RR,此处不做限定。
本申请实施例中,在第一服务器和第二服务器未接入同一路由设备的情况下,第二BGP RR装置通过目标BGP RR装置向第一BGP Peer装置,可以实现容器云集群外部对容器云集群内资源的直接访问,可以提高访问效率。
本申请一些实施例中,第二服务器包括第二BGP Peer装置,第二服务器属于与该目标容器云集群不同的容器云集群;在第一服务器和第二服务器接入目标路由设备的情况下,该目标设备为第二BGP Peer装置,结合图2,如图4所示,上述S201具体可以通过下述步骤S201b实现,上述S202具体可以通过下述步骤S202b实现,上述S203具体可以通过下述步骤S203b实现。
S201b、第二服务器通过第二BGP Peer装置从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则。
S202b、第二服务器通过第二BGP Peer装置基于第一路由规则,向第一BGP Peer装置发送服务访问消息。
S203b、第一服务器通过第一BGP Peer装置接收第二BGP Peer装置基于第一路由规则,通过该目标路由设备发送的服务访问消息。
具体地,第二服务器通过第二BGP Peer装置基于第一路由规则,向目标路由设备发送的服务访问消息,目标路由设备向第一服务器的第一BGP Peer装置发送服务访问消息。
本申请实施例中,第二BGP Peer装置从多个路由规则中确定第一路由规则,第二BGP Peer装置通过目标路由设备向第一BGP Peer装置发送服务访问消息。如此,无需通过BGP RR装置转发服务访问消息,可以降低访问延时,提高访问效率。
本申请一些实施例中,第二服务器不属于任意容器云集群,该目标设备为目标BGPRR装置,结合图2,如图5所示,在上述S201之前,本申请实施例提供的服务访问方法还可以包括下述S207和S208,上述S201具体可以通过下述步骤S202c实现。
S207、在目标BGP RR装置为第二服务器通往目标容器云集群内IP网段的路由网关的情况下,第二服务器向目标BGP RR装置发送服务访问消息。
在第二服务器不属于任意容器云集群的情况下,向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息。
S208、目标BGP RR装置从第二服务器接收服务访问消息。
S201c、目标BGP RR装置从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则。
S202c、目标BGP RR装置基于第一路由规则,向第一BGP Peer装置发送服务访问消息。
S203c、第一服务器通过第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息。
其中,服务访问消息为该目标BGP RR装置从第二服务器接收的,该目标BGP RR装置为第二服务器通往目标容器云集群内IP网段的路由网关。
其中,不同容器云集群内IP网段不同,例如容器云集群1对应IP网段1,容器云集群2对应IP网段2。非容器云集群内的服务器访问不同容器云集群对应的网关路由可以相同,也可以不相同。例如,非容器云集群内的服务器访问容器云集群1内IP网段1的路由网关可以为BGP RR装置0,非容器云集群内的服务器访问容器云集群2内IP网段2的路由网关可以为BGP RR装置0,也可以为除BGP RR装置0以外的其他BGP RR装置。
本申请实施例中,在第二服务器为非容器云集群服务器的情况下,设置目标BGPRR装置为第二服务器通往目标容器云集群内IP网段的路由网关,因此,当第二服务器需要访问目标容器云集群中第一资源IP时,第二服务器可以通过目标BGP RR装置访问目标容器云集群中第一资源IP,如此,实现容器云集群外的非容器云集群服务器对容器云内的资源的直接访问,可以提高访问效率。
本申请一些实施例中,在上述图2至图5的基础上,如图6所示,本申请实施例提供的服务访问方法还可以包括下述的S601和S607。
S601、在第一服务器新增第二资源IP的情况下,第一服务器通过第一BGP Peer装置生成第二路由规则。
其中,第二路由规则对应第一BGP Peer装置。第一服务器也可以保存第二路由规则。
S602、第一服务器通过第一BGP Peer装置向该目标BGP RR装置发送第二路由规则。
通过第一BGP Peer装置向该目标BGP RR装置发送第二路由规则,以使该目标BGPRR装置保存第二路由规则,且以使该目标BGP RR装置通过向多个第三BGP Peer装置发送第二路由规则,控制该每个第三BGP Peer装置保存第二路由规则;每个第三BGP Peer装置与一个容器云集群的一个服务器对应。
S603、目标BGP RR装置从第一BGP Peer装置接收第二路由规则。
S604、目标BGP RR装置保存第二路由规则。
S605、目标BGP RR装置向多个第三BGP Peer装置发送第二路由规则。
多个第三BGP Peer装置包括第二BGP Peer装置。
S606、每个第三BGP Peer装置从目标BGP RR装置接收第二路由规则。
S607、每个第三BGP Peer装置保存第二路由规则。
示例性地,容器云集群内服务器A上新增Pod IP 0,服务器A上的BGP Peer装置生成访问Pod IP 0对应的路由规则并同步到BGP RR装置,告诉BGP RR装置,要想访问Pod IP1,下一跳转向服务器A上的BGP Peer装置。BGP RR装置收到服务器A同步的路由规则后,加载到自身路由规则中(要想访问Pod IP 1,下一跳转向服务器A上的BGP Peer装置)。BGP RR装置将服务器A的BGP Peer装置上报的路由规则,通过BGP协议,通知其他服务器(包括非本容器云集群内的服务器),所有服务器都在本地添加该路由规则(要想访问Pod IP 1,下一跳转向服务器A上的BGP Peer装置)。
本申请实施例中,在一个容器云集群中内的服务器上增加第二资源IP时,服务器的BGP Peer装置可以生成第二路由规则,并将第二路由规则发送给BGP RR装置,以使BGPRR装置保存第二路由规则,以及向其他BGP Peer装置发送第二路由规则。如此,当目标容器云集群外访问目标容器云集群内的第二资源IP时,可以基于第二路由规则来实现,以降低访问延时。
本申请一些实施例中,在上述图2至图6的基础上,如图7所示,本申请实施例提供的服务访问方法还可以包括下述的S701和S706。
S701、在第一服务器上销毁第三资源IP的情况下,第一服务器通过第一BGP Peer装置向该目标BGP RR装置发送删除消息。
在第一服务器上销毁第三资源IP的情况下,通过第一BGP Peer装置向该目标BGPRR装置发送删除消息,该删除消息用于指示该目标BGP RR装置删除第三路由规则,并指示该目标BGP RR装置通过向多个第三BGP Peer装置转发该删除消息,控制每个BGP Peer装置删除第三路由规则。
其中,第三路由规则对应第一BGP Peer装置;每个第三BGP Peer装置与一个容器云集群的一个服务器对应。第一服务器也删除第三路由规则。
S702、目标BGP RR装置从第一BGP Peer装置接收删除消息。
S703、目标BGP RR装置从保存的多个路由规则中删除第三路由规则。
S704、目标BGP RR装置向多个第三BGP Peer装置发送删除消息。
其中,多个第三BGP Peer装置包括第二BGP Peer装置。
S705、每个第三BGP Peer装置从目标BGP RR装置接收删除消息。
S706、每个第三BGP Peer装置从保存的多个路由规则中删除第三路由规则。
本申请实施例中,在一个容器云集群中内的服务器上销毁第三资源IP时,服务器的BGP Peer装置可以向BGP RR装置发送删除消息,以使BGP RR装置基于删除消息删除第三路由规则,以及向其他BGP Peer装置发送删除消息(以使其他BGP Peer装置基于删除消息删除第三路由规则)。如此,当目标容器云集群内的第三资源IP销毁时,及时删除BGP RR装置和各个BGP Peer装置中保存的第三路由规则,以及时处理无效的路由规则,节约存储空间。
本申请一些实施例中,在第一资源IP为第一Service IP,且第一Service IP对应的访问类型为负载均衡类型的情况下,第一BGP Peer装置为第一路由规则对应的该至少一个服务器的BGP Peer装置中,满足负载均衡原则的BGP Peer装置。
可以理解,负载均衡类型的Service IP对应容器云集群中的各个服务器,因此负载均衡类型的Service IP对应的路由规则对应容器云集群中的各个服务器。因此,在第一资源IP为负载均衡类型的Service IP时,第一路由规则对应目标容器云集群中的各个服务器的BGP Peer装置,第一服务器的第一BGP Peer装置为根据负载均衡原则,从目标容器云集群中的各个服务器的BGP Peer装置中确定的。第一服务器的第一BGP Peer装置为目标容器云集群外的第二服务器访问目标容器云中的第一Service IP的下一跳。
可以理解,访问目标容器云集群内的Service IP,最终要落到访问目标容器云集群内的Pod IP,因此,若第一服务器中包括目标Pod IP(第一服务器中还可以包括其他PodIP,目标Pod IP为第一服务器中的任意一个Pod IP),则第一BGP Peer装置向目标Pod IP发送服务访问消息,以实现目标容器云集群外的第二服务器访问目标容器云集群内的第一Service IP;若第一服务器中不包括Pod IP,则第一BGP Peer装置确定目标容器云集群中包括Pod IP的服务器(记为第四服务器,第四服务器包括第四BGP Peer装置,第四服务器中包括至少一个Pod IP,目标Pod IP为至少一个Pod IP中的任意一个),第一BGP Peer装置向第四BGP Peer装置发送服务访问消息,第四BGP Peer装置向目标Pod IP发送服务访问消息,以实现目标容器云集群外的第二服务器访问目标容器云集群内的第一Service IP。
本申请一些实施例中,在第一资源IP为第一Service IP,且第一Service IP对应的访问类型为包括Pod IP的服务器的情况下,第一路由规则对应的该至少一个服务器的BGP Peer装置均为包括Pod IP的服务器的BGP Peer装置,该至少一个服务器的BGP Peer装置包括第一的BGP Peer装置。
可以理解,在第一资源IP(第一Service IP)为的访问类型为访问容器云集群中包括Pod IP的服务器的情况下,第一路由规则对应目标容器云集群内各个包括Pod IP的服务器的BGP Peer装置(包括第一服务器的第一BGP Peer装置),目标容器云集群内各个包括Pod IP的服务器的BGP Peer装置为访问目标容器云集群内的第一Service IP的下一跳,则目标设备基于第一路由规则向目标容器云集群内各个包括Pod IP的服务器的BGP Peer装置发送服务访问消息(包括目标设备基于第一路由规则向第一服务器的第一BGP Peer装置发送服务访问消息),以实现目标容器云集群外的第二服务器访问目标容器云集群内的第一Service IP。
本申请一些实施例中,在第一资源IP为第一Pod IP的情况下,第一Pod IP为第一服务器中的一个Pod IP,第一Pod IP即为目标Pod IP,第一路由规则用于指示目标容器云集群外访问目标容器云集群中的第一Pod IP的下一跳为第一BGP Peer装置,因此目标设备向第一BGP Peer装置发送服务访问消息,第一BGP Peer装置向第一Pod IP发送服务访问消息,以实现目标容器云集群外的第二服务器访问目标容器云集群内的第一Pod IP。
本申请实施例中,可以根据第一资源IP的类型,从多个路由规则中确定第一路由规则,进而实现容器云集群外直接访问容器云集群内资源IP,可以降低访问延时。
示例性地,如图8所示,为本申请实施例提供的服务访问方法的一种可能的整体网络拓扑图。其中,标记“21”用于指示BGP RR装置1,标记“22”用于指示BGP RR装置2,BGP RR装置1和BGP RR装置2中均保存有多个路由规则,且BGP RR装置1和BGP RR装置2做高可用,即BGP RR装置1和BGP RR装置2之间可以互相交换已获取的路由规则,在BGP RR装置1作为主用设备发生故障时,BGP RR装置2作为备用设备可以替代BGP RR装置1实现本申请实施例提供的服务访问方法,反之在BGP RR装置2作为主用设备发生故障时,BGP RR装置1作为备用设备可以替代BGP RR装置2实现本申请实施例提供的服务访问方法。或者BGP RR装置1和BGP RR装置2可以是等同的,在需要BGP RR装置转发服务访问消息时,可以根据需求选择BGP RR装置1或BGP RR装置2,此处不做限定。
其中,Kubernetes集群1中包括多个服务器,每个服务器包括一个BGP Peer装置,标记“23”和标记“24”分别用于指示Kubernetes集群1中的一个BGP Peer装置,其中,标记“23”用于指示Kubernetes集群1中的服务器1的BGP Peer装置1,标记“24”用于指示Kubernetes集群1中的服务器2的BGP Peer装置2;Kubernetes集群2中包括多个服务器,每个服务器包括一个BGP Peer装置,标记“25”用于指示Kubernetes集群2中的服务器3的BGPPeer装置3。标记“26”用于指示非Kubernetes集群中的服务器4,服务器4不包括BGP Peer装置。标记“27”用于指示服务器3与服务器2共同接入的路由设备1。BGP RR装置1为非Kubernetes集群外服务器4访问Kubernetes集群1内IP网段的网关路由,BGP RR装置2为非Kubernetes集群外服务器4访问Kubernetes集群2内IP网段的网关路由。
其中,Kubernetes集群1包括Service IP 1和Service IP 2,其中,Service IP 1的访问类型为负载均衡类型,Service IP 2的访问类型为访问包括Pod IP的服务器类型。Kubernetes集群1中的服务器1包括Pod IP,服务器2包括Pod IP,其他服务器不包括PodIP。
结合图8,若Kubernetes集群2中的服务器3需访问Kubernetes集群1中的服务器1中的Pod IP 1,则服务器3的BGP Peer装置3向BGP RR装置1发送服务访问消息,BGP RR装置1接收到服务访问消息之后,从多个路由规则中确定Pod IP 1对应的路由规则1,然后BGPRR装置1基于路由规则1,向服务器1的BGP Peer装置1发送服务访问消息,BGP Peer装置1接收到服务访问消息之后,向Pod IP 1发送服务访问消息。
结合图8,若Kubernetes集群2中的服务器3需访问Kubernetes集群1中的服务器2中的Pod IP 2(服务器3和服务器2共同接入路由设备1),则服务器3的BGP Peer装置3从多个路由规则中确定Pod IP 2对应的路由规则2,然后BGP Peer装置3基于路由规则2,通过路由设备1向服务器2的BGP Peer装置2发送服务访问消息,BGP Peer装置2接收到服务访问消息之后,向Pod IP 2发送服务访问消息。
结合图8,若非Kubernetes集群内的服务器4需访问Kubernetes集群1中的服务器1中的Pod IP 1(服务器4不包括BGP Peer装置),则服务器4向BGP RR装置1(BGP RR装置1为服务器4访问Kubernetes集群1内IP网段的网关路由)发送服务访问消息,BGP RR装置1接收到服务访问消息之后,从多个路由规则中确定Pod IP 1对应的路由规则1,然后BGP RR装置1基于路由规则1,向服务器1的BGP Peer装置1发送服务访问消息,BGP Peer装置1接收到服务访问消息之后,向Pod IP 1发送服务访问消息。
结合图8,若Kubernetes集群2中的服务器3需访问Kubernetes集群1中的ServiceIP 1,则服务器3的BGP Peer装置3向BGP RR装置1发送服务访问消息,BGP RR装置1接收到服务访问消息之后,从多个路由规则中确定Service IP 1对应的路由规则3,然后BGP RR装置1基于负载均衡原则,从Kubernetes集群1中的各个服务器的BGP Peer装置中确定BGPPeer装置1,BGP RR装置1基于路由规则1,向服务器1的BGP Peer装置1发送服务访问消息,BGP Peer装置1接收到服务访问消息之后,向第一服务器中的任一个Pod IP发送服务访问消息。
结合图8,若Kubernetes集群2中的服务器3需访问Kubernetes集群1中的ServiceIP 2,则服务器3的BGP Peer装置3从多个路由规则中确定Service IP 2对应的路由规则4,然后BGP Peer装置3确定Kubernetes集群1中包括Pod IP的服务器为服务器1和服务器2,BGP Peer装置3基于路由规则4,向服务器1的BGP Peer装置1发送服务访问消息,并向服务器2的BGP Peer装置2发送服务访问消息,BGP Peer装置1接收到服务访问消息之后,向第一服务器中的任一个Pod IP发送服务访问消息,BGP Peer装置2接收到服务访问消息之后,向第二服务器中的任一个Pod IP发送服务访问消息。
本申请实施例提供一种容器云集群外直接访问容器云集群内的Service IP或者Pod IP的方案,适配各种网络场景,可以减少代理损耗,降低访问延时,适配复杂网络场景。
图9为本公开实施例示出的服务器的结构框图,该服务器为第一服务器,属于目标容器云集群,该服务器包括第一BGP Peer装置,如图9所示,该服务器包括:
接收模块901,用于通过第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一BGP Peer装置,第二服务器不属于该目标容器云集群;发送模块902,用于通过第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息。
本申请一些实施例中,第二服务器包括第二BGP Peer装置,第二服务器属于与该目标容器云集群不同的容器云集群;在第一服务器和第二服务器接入目标路由设备的情况下,该目标设备为第二BGP Peer装置,接收模块901,具体用于通过第一BGP Peer装置接收第二BGP Peer装置基于第一路由规则,通过该目标路由设备发送的服务访问消息;在第一服务器和第二服务器未接入同一路由设备的情况下,该目标设备为目标BGP RR装置,接收模块901,具体用于通过第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息,该服务访问消息为该目标BGP RR装置从第二BGP Peer装置接收的。
本申请一些实施例中,第二服务器不属于任意容器云集群,该目标设备为目标BGPRR装置,该接收模块901,具体用于通过第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息,该服务访问消息为该目标BGP RR装置从第二服务器接收的;该目标BGP RR装置为第二服务器通往目标容器云集群内IP网段的路由网关。
本申请一些实施例中,该装置还包括:生成模块,用于在第一服务器新增第二资源IP的情况下,通过第一BGP Peer装置生成第二路由规则,第二路由规则对应第一BGP Peer装置;发送模块902,还用于通过第一BGP Peer装置向该目标BGP RR装置发送第二路由规则,以使该目标BGP RR装置保存第二路由规则,且以使该目标BGP RR装置通过向多个第三BGP Peer装置发送第二路由规则,控制该每个第三BGP Peer装置保存第二路由规则;或者,该发送模块902,还用于在第一服务器上销毁第三资源IP的情况下,通过第一BGP Peer装置向该目标BGP RR装置发送删除消息,该删除消息用于指示该目标BGP RR装置删除第三路由规则,并指示该目标BGP RR装置通过向多个第三BGP Peer装置转发该删除消息,控制每个BGP Peer装置删除第三路由规则,第三路由规则对应第一BGP Peer装置;其中,每个第三BGP Peer装置与一个容器云集群的一个服务器对应。
本申请实施例中,该服务器的各模块可以实现上述方法实施例提供的服务访问方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
图10为本公开实施例示出的目标设备的结构框图,如图10所示,该目标设备包括:
控制模块1001,用于从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGPPeer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,第一路由规则对应该目标容器云集群的第一服务器的第一BGP Peer装置;发送模块1002,用于基于第一路由规则,向第一BGP Peer装置发送服务访问消息,以使第一BGP Peer装置向第一资源IP对应的目标Pod IP发送服务访问消息,服务访问消息用于指示第二服务器访问该目标容器云集群的第一资源IP,第一资源IP为第一Pod IP或第一Service IP。
本申请一些实施例中,在第一服务器和第二服务器接入目标路由设备的情况下,该目标设备为第二服务器的第二BGP Peer装置;在第一服务器和第二服务器未接入同一路由设备的情况下,该目标设备为目标BGP RR装置;该装置还包括:接收模块,用于在该从存储的多个路由规则中确定访问第一资源IP对应的第一路由规则之前,从第二BGP Peer装置接收服务访问消息。
本申请一些实施例中,在第一资源IP为第一Service IP,且第一Service IP对应的访问类型为负载均衡类型的情况下,第一BGP Peer装置为第一路由规则对应的该至少一个服务器的BGP Peer装置中,满足负载均衡原则的BGP Peer装置;在第一资源IP为第一Service IP,且第一Service IP对应的访问类型为包括Pod IP的服务器的情况下,第一路由规则对应的该至少一个服务器的BGP Peer装置均为包括Pod IP的服务器的BGP Peer装置,该至少一个服务器的BGP Peer装置包括第一的BGP Peer装置。
本申请实施例中,该服务器的各模块可以实现上述方法实施例提供的服务访问方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
图11为本公开实施例示出的服务器的结构框图,该服务器为第二服务器,如图11所示,该服务器包括:
发送模块1101,用于在第二服务器包括第二BGP Peer装置,且第一服务器和第二服务器未接入同一路由设备的情况下,通过第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息,第二服务器属于与目标容器云集群不同的容器云集群;
或者,
发送模块1102,用于在第二服务器不属于任意容器云集群的情况下,向目标BGPRR装置发送服务访问消息,以使该目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向第一资源IP对应的目标Pod IP发送服务访问消息;该目标BGP RR装置为第二服务器通往该目标容器云集群内IP网段的路由网关;
其中,服务访问消息用于指示第二服务器访问该目标容器云集群中的第一资源IP,第一资源IP为第一Pod IP或第一Service IP,该目标BGP RR装置中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为该一个服务器的BGPPeer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为该一个容器云集群中至少一个服务器的BGP Peer装置,该多个路由规则包括第一路由规则,第一路由规则对应第一服务器中的第一BGP Peer装置。
本申请实施例中,该服务器的各模块可以实现上述方法实施例提供的服务访问方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
如图12所示,本申请实施例还提供了一种服务设备1200,该服务设备1200可以为上述电子设备或服务器。该服务设备1200包括:处理器1201、存储器1202及存储在该存储器1202上并可在该处理器1201上运行的计算机程序,该计算机程序被该处理器1201执行时实现如上述服务访问方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例提供还提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述服务访问方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,该计算机可读存储介质可以为只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请提供一种计算机程序产品,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述的服务访问方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

Claims (10)

1.一种服务访问方法,其特征在于,应用于目标容器云集群中的第一服务器,所述第一服务器包括第一BGP Peer装置;所述方法包括:
通过所述第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,所述服务访问消息用于指示第二服务器访问所述目标容器云集群中的第一资源IP,所述第一资源IP为第一Pod IP或第一Service IP,所述目标设备中存储有多个路由规则,每个路由规则对应一个PodIP或对应一个ServiceIP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的ServiceIP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述多个路由规则包括所述第一路由规则,所述第一路由规则对应所述第一BGP Peer装置,所述第二服务器不属于所述目标容器云集群;
通过所述第一BGP Peer装置向所述第一资源IP对应的目标Pod IP发送所述服务访问消息。
2.根据权利要求1所述的方法,其特征在于,所述第二服务器包括第二BGP Peer装置,所述第二服务器属于与所述目标容器云集群不同的容器云集群;
在所述第一服务器和所述第二服务器接入目标路由设备的情况下,所述目标设备为所述第二BGP Peer装置,所述通过所述第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,包括:
通过所述第一BGP Peer装置接收所述第二BGP Peer装置基于第一路由规则,通过所述目标路由设备发送的服务访问消息;
在所述第一服务器和所述第二服务器未接入同一路由设备的情况下,所述目标设备为目标BGP RR装置,所述通过所述第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,包括:
通过所述第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息,所述服务访问消息为所述目标BGP RR装置从所述第二BGP Peer装置接收的。
3.根据权利要求1所述的方法,其特征在于,所述第二服务器不属于任意容器云集群,所述目标设备为目标BGP RR装置,所述通过所述第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,包括:
通过所述第一BGP Peer装置接收目标BGP RR装置基于第一路由规则发送的服务访问消息,所述服务访问消息为所述目标BGP RR装置从所述第二服务器接收的;
所述目标BGP RR装置为所述第二服务器通往目标容器云集群内IP网段的路由网关。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一服务器新增第二资源IP的情况下,通过所述第一BGP Peer装置生成第二路由规则,所述第二路由规则对应所述第一BGP Peer装置;
通过所述第一BGP Peer装置向所述目标BGP RR装置发送所述第二路由规则,以使所述目标BGP RR装置保存所述第二路由规则,且以使所述目标BGP RR装置通过向多个第三BGPPeer装置发送所述第二路由规则,控制所述每个第三BGP Peer装置保存所述第二路由规则;
或者,
在所述第一服务器上销毁第三资源IP的情况下,通过所述第一BGP Peer装置向所述目标BGP RR装置发送删除消息,所述删除消息用于指示所述目标BGP RR装置删除第三路由规则,并指示所述目标BGP RR装置通过向多个第三BGP Peer装置转发所述删除消息,控制每个BGP Peer装置删除所述第三路由规则,所述第三路由规则对应所述第一BGP Peer装置;
其中,每个第三BGP Peer装置与一个容器云集群的一个服务器对应。
5.一种服务访问方法,其特征在于,应用于目标设备,所述方法包括:
从存储的多个路由规则中确定访问所述第一资源IP对应的第一路由规则,每个路由规则对应一个PodIP或对应一个ServiceIP,对应一个PodIP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的ServiceIP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述第一路由规则对应所述目标容器云集群的第一服务器的第一BGP Peer装置;
基于所述第一路由规则,向所述第一BGP Peer装置发送服务访问消息,以使所述第一BGP Peer装置向所述第一资源IP对应的目标PodIP发送所述服务访问消息,所述服务访问消息用于指示第二服务器访问所述目标容器云集群的第一资源IP,所述第一资源IP为第一PodIP或第一Service IP。
6.根据权利要求5所述的方法,其特征在于,
在所述第一资源IP为第一Service IP,且所述第一Service IP对应的访问类型为负载均衡类型的情况下,所述第一BGP Peer装置为所述第一路由规则对应的所述至少一个服务器的BGP Peer装置中,满足负载均衡原则的BGP Peer装置;
在所述第一资源IP为第一Service IP,且所述第一Service IP对应的访问类型为包括Pod IP的服务器的情况下,所述第一路由规则对应的所述至少一个服务器的BGP Peer装置均为包括Pod IP的服务器的BGP Peer装置,所述至少一个服务器的BGP Peer装置包括所述第一的BGP Peer装置。
7.一种服务访问方法,其特征在于,应用于第二服务器,所述方法包括:
在所述第二服务器包括第二BGP Peer装置,且第一服务器和所述第二服务器未接入同一路由设备的情况下,通过所述第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使所述目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向所述第一资源IP对应的目标Pod IP发送所述服务访问消息,所述第二服务器属于与目标容器云集群不同的容器云集群;
或者,
在所述第二服务器不属于任意容器云集群的情况下,向目标BGP RR装置发送服务访问消息,以使所述目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向所述第一资源IP对应的目标Pod IP发送所述服务访问消息;所述目标BGP RR装置为所述第二服务器通往所述目标容器云集群内IP网段的路由网关;
其中,所述服务访问消息用于指示所述第二服务器访问所述目标容器云集群中的第一资源IP,所述第一资源IP为第一PodIP或第一Service IP,所述目标BGP RR装置中存储有多个路由规则,每个路由规则对应一个PodIP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的ServiceIP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述多个路由规则包括所述第一路由规则,所述第一路由规则对应所述第一服务器中的所述第一BGP Peer装置。
8.一种服务器,其特征在于,属于目标容器云集群,所述服务器包括第一BGP Peer装置,包括:
接收模块,用于通过所述第一BGP Peer装置接收目标设备基于第一路由规则发送的服务访问消息,所述服务访问消息用于指示第二服务器访问所述目标容器云集群中的第一资源IP,所述第一资源IP为第一Pod IP或第一Service IP,所述目标设备中存储有多个路由规则,每个路由规则对应一个Pod IP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGPPeer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述多个路由规则包括所述第一路由规则,所述第一路由规则对应所述第一BGP Peer装置,所述第二服务器不属于所述目标容器云集群;
发送模块,用于通过所述第一BGP Peer装置向所述第一资源IP对应的目标PodIP发送所述服务访问消息。
9.一种目标设备,其特征在于,包括:
控制模块,用于从存储的多个路由规则中确定访问所述第一资源IP对应的第一路由规则,每个路由规则对应一个PodIP或对应一个ServiceIP,对应一个PodIP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的Service IP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述第一路由规则对应所述目标容器云集群的第一服务器的第一BGP Peer装置;
发送模块,用于基于所述第一路由规则,向所述第一BGP Peer装置发送服务访问消息,以使所述第一BGP Peer装置向所述第一资源IP对应的目标Pod IP发送所述服务访问消息,所述服务访问消息用于指示第二服务器访问所述目标容器云集群的第一资源IP,所述第一资源IP为第一PodIP或第一ServiceIP。
10.一种服务器,其特征在于,所述服务器为第二服务器,包括:
发送模块,用于在所述第二服务器包括第二BGP Peer装置,且第一服务器和所述第二服务器未接入同一路由设备的情况下,通过所述第二BGP Peer装置向目标BGP RR装置发送服务访问消息,以使所述目标BGP RR装置基于第一路由规则通过第一服务器的第一BGPPeer装置,向所述第一资源IP对应的目标Pod IP发送所述服务访问消息,所述第二服务器属于与目标容器云集群不同的容器云集群;
或者,
发送模块,用于在所述第二服务器不属于任意容器云集群的情况下,向目标BGP RR装置发送服务访问消息,以使所述目标BGP RR装置基于第一路由规则通过第一服务器的第一BGP Peer装置,向所述第一资源IP对应的目标Pod IP发送所述服务访问消息;所述目标BGPRR装置为所述第二服务器通往所述目标容器云集群内IP网段的路由网关;
其中,所述服务访问消息用于指示所述第二服务器访问所述目标容器云集群中的第一资源IP,所述第一资源IP为第一PodIP或第一Service IP,所述目标BGP RR装置中存储有多个路由规则,每个路由规则对应一个PodIP或对应一个Service IP,对应一个Pod IP的路由规则用于指示访问一个容器云集群中的一个服务器的Pod IP的下一跳为所述一个服务器的BGP Peer装置,对应一个Service IP的路由规则用于指示访问一个容器云集群的ServiceIP的下一跳为所述一个容器云集群中至少一个服务器的BGP Peer装置,所述多个路由规则包括所述第一路由规则,所述第一路由规则对应所述第一服务器中的所述第一BGP Peer装置。
CN202310193040.1A 2023-03-02 2023-03-02 一种服务访问方法及设备 Pending CN116319392A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310193040.1A CN116319392A (zh) 2023-03-02 2023-03-02 一种服务访问方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310193040.1A CN116319392A (zh) 2023-03-02 2023-03-02 一种服务访问方法及设备

Publications (1)

Publication Number Publication Date
CN116319392A true CN116319392A (zh) 2023-06-23

Family

ID=86829917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310193040.1A Pending CN116319392A (zh) 2023-03-02 2023-03-02 一种服务访问方法及设备

Country Status (1)

Country Link
CN (1) CN116319392A (zh)

Similar Documents

Publication Publication Date Title
US20210258254A1 (en) Route advertisement by managed gateways
US8510372B2 (en) Gateway system and control method
US9130954B2 (en) Distributed health check for global server load balancing
JP5944537B2 (ja) 通信経路の管理方法
CN106464731B (zh) 利用分层边缘服务器的负载平衡
US9225597B2 (en) Managed gateways peering with external router to attract ingress packets
CN107181688B (zh) 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法
JP5607252B2 (ja) 処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード
US9052955B2 (en) System and method for seamless application hosting and migration in a network environment
US10819659B2 (en) Direct replying actions in SDN switches
CN111478852A (zh) 受管理网关的路由通告
CN103618801B (zh) 一种p2p资源共享的方法、设备及系统
CN104618243A (zh) 路由方法、装置及系统、网关调度方法及装置
CN110474802A (zh) 设备切换方法及装置、服务系统
CN114024971B (zh) 业务数据处理方法、Kubernetes集群及介质
CN103139076A (zh) 分布式哈希表互通网络系统、域间节点及实现方法
CN116319392A (zh) 一种服务访问方法及设备
KR102376404B1 (ko) Sfc 네트워크에서 토폴로지 정보를 동기화하기 위한 방법, 및 라우팅 네트워크 엘리먼트
JP2006174399A (ja) グループ内通信方法、システム及び記録媒体
EP3026851B1 (en) Apparatus, network gateway, method and computer program for providing information related to a specific route to a service in a network
WO2015034435A1 (en) A method for managing a data center network
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이
JP7315077B1 (ja) 制御装置、制御方法、及びプログラム
KR102481623B1 (ko) Lisp 기반 분산 컨테이너 가상화 환경에서의 어플리케이션에 대한 주소 관리 방법 및 시스템
CN101425956B (zh) 跨自治系统发现路径计算单元的方法、设备和系统

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