CN111614738A - 基于Kubernetes集群的服务访问方法、装置、设备及存储介质 - Google Patents

基于Kubernetes集群的服务访问方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111614738A
CN111614738A CN202010378254.2A CN202010378254A CN111614738A CN 111614738 A CN111614738 A CN 111614738A CN 202010378254 A CN202010378254 A CN 202010378254A CN 111614738 A CN111614738 A CN 111614738A
Authority
CN
China
Prior art keywords
service
domain name
access
cluster
name information
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.)
Granted
Application number
CN202010378254.2A
Other languages
English (en)
Other versions
CN111614738B (zh
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010378254.2A priority Critical patent/CN111614738B/zh
Publication of CN111614738A publication Critical patent/CN111614738A/zh
Application granted granted Critical
Publication of CN111614738B publication Critical patent/CN111614738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于Kubernetes集群的服务访问方法、装置、设备及存储介质,涉及云计算领域,该方法包括:接收第一服务发送的携带有第二服务的域名信息和第一服务的源地址的服务访问请求,其中,第二服务位于Kubernetes集群内;根据服务访问请求中的第一服务的源地址,确定第一服务与Kubernetes集群的位置关系;在确定第一服务是Kubernetes集群内的服务或者是Kubernetes集群外的服务之后,按照预设访问方式通过第二服务的域名信息访问第二服务。通过上述方法,实现了Kubernetes集群内外的服务共享,Kubernetes集群内外的服务均能够通过同一域名访问同一Kubernetes集群内的服务,且减少Kubernetes集群内外的服务共享的资源配置成本。

Description

基于Kubernetes集群的服务访问方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种基于Kubernetes集群的服务访问方法、一种基于Kubernetes集群的服务访问装置、一种基于Kubernetes集群的服务访问设备以及一种计算机存储介质。
背景技术
随着计算机技术的不断发展,为了降低服务与运行环境之间的依赖关系,服务器容器化成为了一种大趋势,如,Kubernetes容器化。
目前,企业在应用Kubernetes容器化时,通常将服务部署在Kubernetes集群内,并为服务分配集群内的互联网协议地址,后续,通过配置在Kubernetes集群内的域名服务器来访问服务。
但是,由于基于Kubernetes集群的特性,部署在Kubernetes集群内的服务使用的是集群内的互联网协议地址,因此,只有集群内的服务之间能够相互访问,集群外的服务无法访问集群内的服务。
发明内容
本发明的一个目的是提供一种用于基于Kubernetes集群的服务访问的新技术方案。
根据本发明的第一方面,提供了一种基于Kubernetes集群的服务访问方法,包括:
接收第一服务发送的服务访问请求,其中,所述服务访问请求包括第二服务的域名信息和所述第一服务的源地址,所述第二服务位于Kubernetes集群内;
根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务;
在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
可选的,其中,所述按照预设访问方式通过所述第二服务的域名信息访问所述第二服务,包括:
当确定所述第一服务是所述Kubernetes集群外的服务时,在预先创建的第一域名服务器内,查找所述第二服务的域名信息对应的第一互联网协议地址;
根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,其中,所述第一域名服务器位于所述Kubernetes集群外。
可选的,其中,所述根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,包括:
根据所述第一互联网协议地址访问预先创建的负载均衡器,所述负载均衡器中包括预先设置的用于访问所述第二服务的访问路径;
通过所述负载均衡器中的所述第二服务的访问路径,所述访问路径与所述第二服务的域名信息对应;
根据所述访问路径连接至所述第二服务的域名信息以访问第二服务;
其中,所述负载均衡器位于所述Kubernetes集群外。
可选的,其中,所述按照预设访问方式通过所述第二服务的域名信息访问所述第二服务,包括:
当确定所述第一服务是所述Kubernetes集群外的服务时,在预先创建的第二域名服务器内,查找所述域名对应的第二互联网协议地址,所述第二互联网协议地址与所述第二服务的域名信息对应;
根据所述第二互联网协议地址连接至所述第二服务的域名信息以访问第二服务,其中,所述第二域名服务器位于所述Kubernetes集群内。
可选的,其中,在接收第一服务发送的服务访问请求之前,所述方法还包括:
创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第二互联网协议地址;
将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内。
可选的,其中,在接收第一服务发送的服务访问请求之前,所述方法还包括:
创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第一互联网协议地址;
将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内。
可选的,其中,所述第二服务的域名信息包括域名后缀标识。
根据本发明的第二方面,提供了一种基于Kubernetes集群的服务访问装置,包括:
接收模块,用于接收第一服务发送的服务访问请求,其中,所述服务访问请求包括第二服务的域名信息和所述第一服务的源地址,所述第二服务位于Kubernetes集群内;
位置确定模块,用于根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务;
访问模块,用于在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
根据本发明的第三方面,提供了一种基于Kubernetes集群的服务访问设备,包括处理器和存储器;
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据第一方面中任一项所述的方法。
根据本发明的第四方面,提供了一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如第一方面任一项所述的方法。
在本实施例中,无论第一服务相对Kubernetes集群的位置关系如何,都可以通过第二服务的域名访问位于Kubernetes集群内的第二服务,也就是说,第一服务无论在集群内还是集群外,只需要输入同一个域名即可访问第二服务,不仅实现了集群外的第一服务能够访问第二服务,还统一了Kubernetes集群内外第一服务访问同一个第二服务时所输入的域名。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明实施例提供的一种基于Kubernetes集群的服务访问设备的硬件配置的框图;
图2是本发明实施例提供的一种基于Kubernetes集群的服务访问方法的流程图;
图3是本发明实施例提供的一种基于Kubernetes集群的服务访问结构的示意图;
图4是本发明实施例提供的一种基于Kubernetes集群的服务访问装置的结构示意图;
图5是本发明实施例提供的另一种基于Kubernetes集群的服务访问设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是本发明实施例提供的一种基于Kubernetes集群的服务访问设备的硬件配置的框图。
基于Kubernetes集群的服务访问设备1000可以为虚拟机或物理机。基于Kubernetes集群的服务访问设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800,等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
应用于本实施例中,存储器1200用于存储计算机程序指令,该指令用于控制处理器1100进行操作以执行根据本发明任意实施例的存储方法。技术人员可以根据本发明所公开方案设计该指令。该指令如何控制处理器1100进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中对基于Kubernetes集群的服务访问设备1000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,基于Kubernetes集群的服务访问设备1000只涉及存储器1200和处理器1100。
在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例>
本发明实施例提供一种基于Kubernetes集群的服务访问方法,如图2所示,包括如下:
S201:接收第一服务发送的服务访问请求。
在实际应用中,企业将服务部署在Kubernetes集群内后,集群内外的其他服务可访问该企业在集群内部署的服务。
在此需要说明的是,Kubernetes是一个开源的容器集群管理系统,用于管理云平台中多个主机上的容器化的应用,使得部署容器化的应用简单并且高效,并且,Kubernetes提供了资源调度、部署管理、服务发现、扩容缩容、监控,维护等一整套功能,成为跨主机集群的自动部署、扩展以及运行应用程序容器的平台。
为了更好的区分企业部署在Kubernetes集群内的服务,和访问该企业部署的服务的服务,因此,在本说明书实施例中,将企业部署在Kubernetes集群内的服务定义为第二服务,将访问该企业部署的服务的服务定义为第一服务。
进一步的,本说明书实施例在第一服务访问在Kubernetes集群内第二服务的过程中,首先需要接收第一服务发送的服务访问请求。
在此需要说明的是,由于位于Kubernetes集群内的服务均采用域名进行服务发现,因此,在本说明书实施例中,服务访问请求中携带有第二服务的域名信息,并且第二服务位于Kubernetes集群内。
S202:根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务。
在本发明实施例中,由于本发明可以根据第一服务相对集群的位置关系来确定采用哪种服务访问的实施方式,因此,可以先通过确定第一服务相对所述Kubernetes集群的位置关系,也就是说,第一服务可能是所述Kubernetes集群外的服务,也可能是所述Kubernetes集群内的服务。示例性地,将部署在Kubernetes集群的第一服务确定为Kubernetes集群内的服务,将部署在Kubernetes集群以外的第一服务确定为Kubernetes集群外的服务。
进一步的,第一服务相对所述Kubernetes集群的位置关系可以通过第一服务的源地址来确定,示例性地,步骤S201中所接收的第一服务发送的服务访问请求还可以携带有第一服务的源地址,通过识别第一服务的发送端的源地址来确定第一服务部署于Kubernetes集群内或Kubernetes集群外。
后续,根据服务访问请求中的所述第一服务的源地址,可以确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务。
S203:在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
进一步的,本说明书实施例在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,可按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
通过上述方法,无论第一服务相对Kubernetes集群的位置关系如何,都可以通过第二服务的域名访问位于Kubernetes集群内的第二服务,也就是说,第一服务无论在集群内还是集群外,均可以使用同一个域名即可访问第二服务,实现了Kubernetes集群内外的服务共享(例如,kafka服务共享),且无需像相关技术中那样修改源代码或部署复杂的网络,降低了Kubernetes集群内外的服务共享的部署难度,提高Kubernetes高可用和有效利用资源。
在一个实施例中,由于本说明书实施例根据第一服务相对集群的位置关系,采用不同的预设访问方式通过所述第二服务的域名信息访问所述第二服务,因此,以下针对不同的位置关系,确定了相应的预设访问方式来访问第二服务。下面将针对不同的实现方式进行描述:
在一个实施例中,示例性地,第一种位置关系:针对第一服务是Kubernetes集群外的服务的情况,可以通过如下方式实现对第二服务的访问:
当确定所述第一服务是所述Kubernetes集群外的服务时,在预先创建的第一域名服务器内,查找所述第二服务的域名信息对应的第一互联网协议地址;根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务。
在此需要说明的是,所述第一域名服务器位于所述Kubernetes集群外,内部存储了第二服务的域名信息对应的第一互联网协议地址,该第一互联网协议地址用以访问第二服务。
上述实施方式,即使第一服务是所述Kubernetes集群外的服务,也可以通过在第一域名服务器内查找到的,第二服务的域名信息对应的第一互联网协议地址,访问到第二服务。
负载均衡器能够有效地将Kubernetes集群外的服务的访问请求转发到Kubernetes集群内的服务,为Kubernetes集群外的服务提供访问接口,因此,本说明书实施例可以基于负载均衡器实现根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,具体如下:
根据所述第一互联网协议地址访问预先创建的负载均衡器,所述负载均衡器中包括预先设置的用于访问所述第二服务的访问路径;通过所述负载均衡器中的所述第二服务的访问路径,所述访问路径与所述第二服务的域名信息对应;根据所述访问路径连接至所述第二服务的域名信息以访问第二服务;其中,所述负载均衡器位于所述Kubernetes集群外。
在此需要说明的是,在第一域名服务器内查找到的第一互联网协议地址实际上是负载均衡器的源地址,根据该第一互联网协议地址能够连接到负载均衡器上。该负载均衡器用于接收Kubernetes集群外的第一服务的服务访问请求,并将该服务访问请求转发给Kubernetes集群内的第二服务,以实现Kubernetes集群外的服务能够访问到Kubernetes集群内的服务。
另外,负载均衡器中包括的访问路径与第二服务的域名信息对应指的是,通过该第二服务的域名信息与该第二服务对应的访问路径,能够在负载均衡器中找到该第二服务对应的访问路径,进而访问到第二服务。
上述实施方式,本说明书实施例具体提出了实现根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务的实施方式,通过负载均衡器能够快速有效的访问第二服务,并且提高访问第二服务的访问能力。
在另一个实施例中,第二种位置关系:针对第一服务是所述Kubernetes集群内的服务,具体如下:
当确定所述第一服务是所述Kubernetes集群内的服务时,在预先创建的第二域名服务器内,查找所述域名对应的第二互联网协议地址,所述第二互联网协议地址与所述第二服务的域名信息对应;根据所述第二互联网协议地址连接至所述第二服务的域名信息以访问第二服务。
在此需要说明的是,第二域名服务器位于Kubernetes集群内,内部存储有第二服务的域名与第二互联网协议地址之间的一一对应关系,通过该第二服务的域名信息与该第二服务对应的第二互联网协议地址,能够访问到第二服务,从中也可以看出,第二互联网协议地址实际上是第二服务的源地址。
上述实施方式,位于所述Kubernetes集群内的第一服务,可以直接通过在第二域名服务器内查找到的,第二服务的域名信息对应的第一互联网协议地址,访问到第二服务,实现了所述Kubernetes集群内的第一服务访问第二服务。
在一个实施例中,由于在第二种位置关系的实施方式中,当确定所述第一服务是所述Kubernetes集群内的服务时,需要在预先创建的第二域名服务器内,查找所述域名对应的第二互联网协议地址,因此,在本说明书实施例中,在接收第一服务发送的服务访问请求之前,创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第二互联网协议地址;将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内。
上述实施方式,能够为位于所述Kubernetes集群内的服务提供连接至第二服务的第二互联网协议地址。
同理,在另一个实施例中,由于在第一种位置关系的实施方式中,当确定所述第一服务是所述Kubernetes集群外的服务时,需要在预先创建的第一域名服务器内,查找所述域名对应的第一互联网协议地址,因此,在本说明书实施例中,在接收第一服务发送的服务访问请求之前,创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第一互联网协议地址;将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内。
上述实施方式,能够为位于所述Kubernetes集群外的服务提供连接至第二服务的第一互联网协议地址。
一个实施例中,为了便于识别第二服务,采用域名服务发现机制,例如第二服务使用固定的域名,或者所述第二服务的域名信息包括域名后缀标识,在实际应用中,通常情况下Kubernetes集群部署第二服务时会使用Cluster-domain作为第二服务域名的域名信息的后缀,例如,kafka-broker-0.kafka.xxx.svc.<cluster-domain>。
上述实施方式,提供了一种域名信息的构成方式,能够为第二服务创建出符合Kubernetes集群要求的域名信息。
进一步的,本说明书实施例还提供了基于Kubernetes集群的服务访问的架构,用以实现上述各实施方式,如图3所示,创建第二服务、第一域名服务器、第二域名服务器、集群管理器和负载均衡器,该第一域名服务器位于所述Kubernetes集群外,是由本说明书实施例开发的如图3所示的集群管理器创建的bind域名服务器,并通过集群管理器注册第二服务的域名和第一互联网协议地址,以供第一服务查询第二服务的域名对应的互联网协议地址;该第二域名服务器被创建在所述Kubernetes集群内,通过第二服务注册第二服务的域名和第二互联网协议地址,以供第一服务查询第二服务的域名对应的互联网协议地址;该负载均衡器被创建在Kubernetes集群外,用于接收位于Kubernetes集群外的第一服务的服务访问请求,并将该服务访问请求转发给Kubernetes集群内的第二服务;该集群管理器用于创建bind域名服务器,并将第二服务的域名和第一互联网协议地址注册到第一域名服务器内。
进一步的,由于第一域名服务器用于注册第二服务的域名和第一互联网协议地址,并且该第二域名服务器用于注册第二服务的域名和第二互联网协议地址,因此,在本说明书实施例中,在创建如图3所示的基于Kubernetes集群的服务访问装置后,还需要创建所述第二服务的域名、第一互联网协议地址和第二互联网协议地址,先将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内,再将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内。
在此需要说明的是,将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内是通过如图3所示的第二服务完成的,将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内是通过如图3所示的集群管理器完成的。
另外,第二服务的域名首先通过第二服务注册到第二域名服务器内,再将第二域名服务器内注册的第二服务的域名通过如图3所示的集群管理器注册到第一域名服务器内,从而保持第一域名服务器和第二域名服务器中注册的域名是一致的,也就是说,位于集群内部的第一服务和位于集群外部的第一服务均以相同的域名访问第二服务,例如,假设第二服务的域名是kafka-broker-0.kafka.xxx.svc.<cluster-domain>,在第一域名服务器和第二域名服务器内均注册域名kafka-broker-0.kafka.xxx.svc.<cluster-domain>,后续,位于Kubernetes集群外的第一服务可通过第一域名服务器内的域名访问第二服务,位于Kubernetes集群内的第一服务可通过第二域名服务器内的域名访问第二服务。
进一步的,由于该负载均衡器和第二服务分布在不同的设备上,因此,在本说明书实施例中,虽然无论第一服务位于Kubernetes集群内还是外所使用的域名是相同的,但是第一互联网协议地址和第二互联网协议地址不相同。第一互联网协议地址是通过创建Kubernetes集群对外的SVC标准端口,调用基础设施即服务的负载均衡接口创建的外部可访问的互联网协议地址,以供位于Kubernetes集群外部的第一服务访问第二服务使用;第二互联网协议地址是通过创建Kubernetes集群内创建的内部可访问的互联网协议地址,以供位于Kubernetes集群内部的第一服务访问第二服务使用。
在此需要说明的是,虽然第一互联网协议地址和第二互联网协议地址不相同,但是,由于在本发明中不管集群内还是集群外均使用同一个域名访问第二服务,因此,在本说明书实施例中,第一互联网协议地址和所述第二互联网协议地址均使用相同的域名。
在本说明书实施例中,第二服务可以是卡夫卡(kafka)服务。
<装置实施例>
如图4所示,本实施例还提供了一种基于Kubernetes集群的服务访问装置40,该装置包括:
接收模块401,用于接收第一服务发送的服务访问请求,其中,所述服务访问请求包括第二服务的域名信息和所述第一服务的源地址,所述第二服务位于Kubernetes集群内;
位置确定模块402,用于根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务;
访问模块403,用于在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
所述访问模块403具体用于,当确定所述第一服务是所述Kubernetes集群外的服务时,在预先创建的第一域名服务器内,查找所述第二服务的域名信息对应的第一互联网协议地址;根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,其中,所述第一域名服务器位于所述Kubernetes集群外。
所述访问模块403还用于,根据所述第一互联网协议地址访问预先创建的负载均衡器,所述负载均衡器中包括预先设置的用于访问所述第二服务的访问路径;通过所述负载均衡器中的所述第二服务的访问路径,所述访问路径与所述第二服务的域名信息对应;根据所述访问路径连接至所述第二服务的域名信息以访问第二服务;其中,所述负载均衡器位于所述Kubernetes集群外。
所述访问模块403具体用于,当确定所述第一服务是所述Kubernetes集群内的服务时,在预先创建的第二域名服务器内,查找所述域名对应的第二互联网协议地址,所述第二互联网协议地址与所述第二服务的域名信息对应;根据所述第二互联网协议地址连接至所述第二服务的域名信息以访问第二服务,其中,所述第二域名服务器位于所述Kubernetes集群内。
所述装置还包括:
创建模块404,用于在所述接收模块401接收第一服务发送的服务访问请求之前,创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第二互联网协议地址;将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内。
所述创建模块404具体用于,在所述接收模块401接收第一服务发送的服务访问请求之前,创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第一互联网协议地址;将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内。
所述第二服务的域名信息包括域名后缀标识。
<设备实施例>
本发明实施例还提供了一种基于Kubernetes集群的服务访问设备,如图5所示,该基于Kubernetes集群的服务访问设备包括上述装置实施例中的基于Kubernetes集群的服务访问装置40。
或者,该基于Kubernetes集群的服务访问设备包括存储器和处理器。其中,存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据上述方法实施例中任一项所述的方法。
<计算机存储介质>
本发明还提供一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如上述方法实施例中任一项所述的方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种基于Kubernetes集群的服务访问方法,其特征在于,包括:
接收第一服务发送的服务访问请求,其中,所述服务访问请求包括第二服务的域名信息和所述第一服务的源地址,所述第二服务位于Kubernetes集群内;
根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务;
在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
2.根据权利要求1所述的方法,其特征在于,所述按照预设访问方式通过所述第二服务的域名信息访问所述第二服务,包括:
当确定所述第一服务是所述Kubernetes集群外的服务时,在预先创建的第一域名服务器内,查找所述第二服务的域名信息对应的第一互联网协议地址;
根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,其中,所述第一域名服务器位于所述Kubernetes集群外。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一互联网协议地址,连接所述第二服务的域名信息以访问第二服务,包括:
根据所述第一互联网协议地址访问预先创建的负载均衡器,所述负载均衡器中包括预先设置的用于访问所述第二服务的访问路径;
通过所述负载均衡器中的所述第二服务的访问路径,所述访问路径与所述第二服务的域名信息对应;
根据所述访问路径连接至所述第二服务的域名信息以访问第二服务;
其中,所述负载均衡器位于所述Kubernetes集群外。
4.根据权利要求1所述的方法,其特征在于,所述按照预设访问方式通过所述第二服务的域名信息访问所述第二服务,包括:
当确定所述第一服务是所述Kubernetes集群内的服务时,在预先创建的第二域名服务器内,查找所述域名对应的第二互联网协议地址,所述第二互联网协议地址与所述第二服务的域名信息对应;
根据所述第二互联网协议地址连接至所述第二服务的域名信息以访问第二服务,其中,所述第二域名服务器位于所述Kubernetes集群内。
5.根据权利要求4所述的方法,其特征在于,在接收第一服务发送的服务访问请求之前,所述方法还包括:
创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第二互联网协议地址;
将所述第二服务的域名信息和所述第二互联网协议地址的关联关系注册到所述第二域名服务器内。
6.根据权利要求2或3所述的方法,其特征在于,在接收第一服务发送的服务访问请求之前,所述方法还包括:
创建所述第二服务的域名信息和与所述第二服务的域名信息对应的第一互联网协议地址;
将所述第二服务的域名信息和所述第一互联网协议地址的关联关系注册到所述第一域名服务器内。
7.根据权利要求1-5任一所述的方法,其特征在于,所述第二服务的域名信息包括域名后缀标识。
8.一种基于Kubernetes集群的服务访问装置,其特征在于,包括:
接收模块,用于接收第一服务发送的服务访问请求,其中,所述服务访问请求包括第二服务的域名信息和所述第一服务的源地址,所述第二服务位于Kubernetes集群内;
位置确定模块,用于根据所述服务访问请求中的所述第一服务的源地址,确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务;
访问模块,用于在确定所述第一服务是所述Kubernetes集群内的服务或者是所述Kubernetes集群外的服务之后,按照预设访问方式通过所述第二服务的域名信息访问所述第二服务。
9.一种基于Kubernetes集群的服务访问设备,包括:处理器和存储器;
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种计算机存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如权利要求1-7任一项所述的方法。
CN202010378254.2A 2020-05-07 2020-05-07 基于Kubernetes集群的服务访问方法、装置、设备及存储介质 Active CN111614738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010378254.2A CN111614738B (zh) 2020-05-07 2020-05-07 基于Kubernetes集群的服务访问方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010378254.2A CN111614738B (zh) 2020-05-07 2020-05-07 基于Kubernetes集群的服务访问方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111614738A true CN111614738A (zh) 2020-09-01
CN111614738B CN111614738B (zh) 2022-05-10

Family

ID=72196682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010378254.2A Active CN111614738B (zh) 2020-05-07 2020-05-07 基于Kubernetes集群的服务访问方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111614738B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112153143A (zh) * 2020-09-24 2020-12-29 新浪网技术(中国)有限公司 Kubernetes集群的流量调度方法、装置及电子设备
CN112565225A (zh) * 2020-11-27 2021-03-26 北京百度网讯科技有限公司 用于数据发送的方法、装置、电子设备及可读存储介质
CN112965784A (zh) * 2021-03-01 2021-06-15 上海微盟企业发展有限公司 一种服务访问方法、装置、设备及计算机可读存储介质
CN113220484A (zh) * 2021-05-11 2021-08-06 上海安畅网络科技股份有限公司 一种微服务调用方法、装置、电子设备及存储介质
CN113608865A (zh) * 2021-07-13 2021-11-05 北京奇艺世纪科技有限公司 一种流量控制方法、装置、系统、电子设备及存储介质
CN113992759A (zh) * 2021-10-22 2022-01-28 杭州博盾习言科技有限公司 应用于局域网的联合解析装置、方法及电子设备
CN114205342A (zh) * 2021-12-10 2022-03-18 易保网络技术(上海)有限公司 服务调试的路由方法、电子设备、介质及程序产品
CN114760292A (zh) * 2020-12-25 2022-07-15 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN114938394A (zh) * 2022-04-13 2022-08-23 京东科技信息技术有限公司 跨集群网络控制方法、装置、设备及存储介质
CN115086321A (zh) * 2022-06-14 2022-09-20 京东科技信息技术有限公司 多集群流量转发方法及装置、电子设备
CN115225645A (zh) * 2022-07-29 2022-10-21 天翼云科技有限公司 一种服务更新方法、装置、系统和存储介质
US11481243B1 (en) 2021-08-25 2022-10-25 International Business Machines Corporation Service access across Kubernetes clusters
CN115225645B (zh) * 2022-07-29 2024-06-07 天翼云科技有限公司 一种服务更新方法、装置、系统和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107295008A (zh) * 2017-08-01 2017-10-24 广东云下汇金科技有限公司 一种企业混合云计算环境下的连接建立方法
US20190342260A1 (en) * 2009-04-23 2019-11-07 Cisco Technology, Inc. Robust domain name resolution
CN110913010A (zh) * 2019-12-05 2020-03-24 杭州东信北邮信息技术有限公司 一种sip业务集群系统及实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190342260A1 (en) * 2009-04-23 2019-11-07 Cisco Technology, Inc. Robust domain name resolution
CN107295008A (zh) * 2017-08-01 2017-10-24 广东云下汇金科技有限公司 一种企业混合云计算环境下的连接建立方法
CN110913010A (zh) * 2019-12-05 2020-03-24 杭州东信北邮信息技术有限公司 一种sip业务集群系统及实现方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112153143A (zh) * 2020-09-24 2020-12-29 新浪网技术(中国)有限公司 Kubernetes集群的流量调度方法、装置及电子设备
CN112153143B (zh) * 2020-09-24 2023-04-28 新浪技术(中国)有限公司 Kubernetes集群的流量调度方法、装置及电子设备
CN112565225B (zh) * 2020-11-27 2022-08-12 北京百度网讯科技有限公司 用于数据发送的方法、装置、电子设备及可读存储介质
CN112565225A (zh) * 2020-11-27 2021-03-26 北京百度网讯科技有限公司 用于数据发送的方法、装置、电子设备及可读存储介质
CN114760292B (zh) * 2020-12-25 2023-07-21 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN114760292A (zh) * 2020-12-25 2022-07-15 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN112965784A (zh) * 2021-03-01 2021-06-15 上海微盟企业发展有限公司 一种服务访问方法、装置、设备及计算机可读存储介质
CN113220484A (zh) * 2021-05-11 2021-08-06 上海安畅网络科技股份有限公司 一种微服务调用方法、装置、电子设备及存储介质
CN113608865A (zh) * 2021-07-13 2021-11-05 北京奇艺世纪科技有限公司 一种流量控制方法、装置、系统、电子设备及存储介质
US11481243B1 (en) 2021-08-25 2022-10-25 International Business Machines Corporation Service access across Kubernetes clusters
CN113992759A (zh) * 2021-10-22 2022-01-28 杭州博盾习言科技有限公司 应用于局域网的联合解析装置、方法及电子设备
CN113992759B (zh) * 2021-10-22 2023-12-15 杭州博盾习言科技有限公司 应用于局域网的联合解析装置、方法及电子设备
CN114205342A (zh) * 2021-12-10 2022-03-18 易保网络技术(上海)有限公司 服务调试的路由方法、电子设备、介质及程序产品
CN114938394A (zh) * 2022-04-13 2022-08-23 京东科技信息技术有限公司 跨集群网络控制方法、装置、设备及存储介质
CN114938394B (zh) * 2022-04-13 2024-05-17 京东科技信息技术有限公司 跨集群网络控制方法、装置、设备及存储介质
CN115086321A (zh) * 2022-06-14 2022-09-20 京东科技信息技术有限公司 多集群流量转发方法及装置、电子设备
CN115086321B (zh) * 2022-06-14 2024-04-05 京东科技信息技术有限公司 多集群流量转发方法及装置、电子设备
CN115225645A (zh) * 2022-07-29 2022-10-21 天翼云科技有限公司 一种服务更新方法、装置、系统和存储介质
CN115225645B (zh) * 2022-07-29 2024-06-07 天翼云科技有限公司 一种服务更新方法、装置、系统和存储介质

Also Published As

Publication number Publication date
CN111614738B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN111614738B (zh) 基于Kubernetes集群的服务访问方法、装置、设备及存储介质
US11095711B2 (en) DNS Resolution of internal tenant-specific domain addresses in a multi-tenant computing environment
US10320674B2 (en) Independent network interfaces for virtual network environments
CN107615716B (zh) 用于云联网的多租户感知动态主机配置协议(dhcp)机制
US11063815B2 (en) Building and fixing a dynamic application topology in a cloud based environment leveraging log file data
US9244817B2 (en) Remote debugging in a cloud computing environment
US10038665B2 (en) Reducing broadcast flooding in a software defined network of a cloud
US20140254603A1 (en) Interoperability for distributed overlay virtual environments
CN113783922A (zh) 负载均衡的方法、系统和装置
US9100399B2 (en) Portable virtual systems for composite solutions
US10461772B1 (en) Code conversion
US11627169B2 (en) Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control
CN111124299A (zh) 数据存储管理方法、装置、设备、系统及存储介质
US10931581B2 (en) MAC learning in a multiple virtual switch environment
US10528482B2 (en) Cache management
US10129204B2 (en) Network client ID from external management host via management network
US9559910B2 (en) Locating virtual machine(s) within virtual networks
CN112152988B (zh) 用于异步nbmp请求处理的方法、系统以及计算机设备和介质
CN113612643A (zh) 云手机的网络配置方法、装置、设备以及存储介质
US20190069121A1 (en) Direct update of mobile applications based on features used
US11910412B2 (en) Media sink capabilities description
US11765236B2 (en) Efficient and extensive function groups with multi-instance function support for cloud based processing
US20230409628A1 (en) Static and dynamic nbmp function image retrieval and scale ranking
US11016874B2 (en) Updating taint tags based on runtime behavior profiles

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