容器服务的访问方法、装置、设备及存储介质与流程
未命名
10-21
阅读:65
评论:0
1.本技术涉及计算机技术领域,尤其涉及一种容器服务的访问方法、装置、设备及存储介质。
背景技术:
2.kubernetes(简称k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。在k8s集群中,一般通过负载均衡器将流量分发到多个后端容器的网络设备或服务,以进行网络访问。
3.目前,由于k8s集群中的网络插件calico使用网络为虚拟网络,该网络可以和node路由互通,因此,现有的容器服务的访问方法一般是通过负载均衡器挂vpc地址,然后通过vpc地址找到node路由,最后通过node路由转发进入容器。
4.然而,现有的容器服务的访问方法存在转发效率不好的问题。
技术实现要素:
5.本技术提供一种容器服务的访问方法、装置、设备及存储介质,用以解决现有的容器服务的访问方法存在转发效率不好的问题。
6.第一方面,本技术提供一种容器服务的访问方法,包括:
7.在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;
8.根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;
9.根据目标calico路由,确定目标vpc、以及目标vpc的网口;
10.根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。
11.在本技术中,在负载均衡器接收外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的端口,包括:
12.在负载均衡器接收外部流量的访问请求后,根据访问请求,确定负载均衡器的虚拟ip地址和虚拟端口;
13.根据预设的负载均衡软件,确定负载均衡器中被访问的目标后端地址、以及与目标后端地址对应的端口。
14.在本技术中,在根据目标后端地址、以及与目标后端地址对应的端口,确定目标calico路由之前,方法还包括:
15.创建目标容器;
16.当calico ip池发生变动时,k8s集群将目标calico路由分别写入etcd和ovn路由表,其中,目标calico路由与目标容器对应;
17.根据etcd,将目标calico路由写入至负载均衡器,并将目标容器的容器地址和容
器端口写入负载均衡器,其中,目标calico路由指向目标vpc的网口。
18.在本技术中,当calico ip池发生变动时,k8s集群将目标calico路由分别写入etcd和ovn路由表,包括:
19.k8s集群调用ccm组件监控calico ip池的变动状态;
20.当calico ip池的变动状态为发生变动时,k8s集群将目标calico路由的信息写入etcd,并将目标calico路由的信息写入至ovn路由表。
21.在本技术中,根据etcd,将目标calico路由写入至负载均衡器,并将目标容器的容器地址和容器端口写入负载均衡器,包括:
22.调用k8s集群监控etcd;
23.若etcd发送变动,则将目标calico路由写入至负载均衡器的载体中,并调用k8s集群的ccm组件将目标容器的容器地址和容器端口写入负载均衡器的后端地址中。
24.在本技术中,方法还包括:
25.当目标容器访问外部流量时,根据目标容器,确定node路由;
26.将目标容器的流量通过node路由导入至目标vpc内,以使目标vpc将外部地址转发至nat网关,并使nat网关根据预设的snat规则,进行snat处理后,进行目标容器对外部流量的访问。
27.在本技术中,在将目标容器的流量通过node路由导入至目标vpc内,以使目标vpc将外部地址转发至nat网关,并在nat网关上进行snat处理,使得回向流量通过nat网关导入至目标容器之前,方法还包括:
28.创建目标容器;
29.当calico ip池发生变动时,k8s集群根据目标calico路由的信息,对网关配置snat规则,以使目标vpc将外部地址转发至nat网关后,nat网关根据预设的snat规则,进行snat处理,其中,目标calico路由与目标容器对应。
30.第二方面,本技术提供一种容器服务的访问装置,装置包括:
31.第一确定模块,用于在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;
32.第二确定模块,用于根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;
33.第三确定模块,用于根据目标calico路由,确定目标vpc、以及目标vpc的网口;
34.访问模块,用于根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。
35.第三方面,本技术提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
36.存储器存储计算机执行指令;
37.处理器执行存储器存储的计算机执行指令,以实现本技术的方法。
38.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本技术的方法。
39.本技术提供的容器服务的访问方法、装置、设备及存储介质,通过在负载均衡器接
收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;根据目标calico路由,确定目标vpc、以及目标vpc的网口;根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由的手段,可以通过访问请求确定目标后端地址和容器端口,并通过目标后端地址和容器端口确定了对应的目标calico路由,在根据目标calico路由,将外部流量到入到目标vpc后,再根据预设的ovn路由表,确定对应的目标容器,由此,外部流量访问负载均衡器后,仅需匹配两次路由表就可以将流量甩进目标容器,实现了提高转发效率的效果。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
41.图1为本技术实施例提供的容器服务的访问方法的流程示意图;
42.图2为本技术实施例提供的另一种容器服务的访问方法;
43.图3为本技术实施例提供的另一种容器服务的访问方法;
44.图4为本技术实施例提供的另一种容器服务的访问方法;
45.图5为本技术实施例提供的容器服务的访问装置的结构示意图;
46.图6为本技术实施例提供的电子设备的结构示意图。
47.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
48.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
49.现有技术中,k8s集群中的网络插件calico所使用网络为虚拟网络,此网络可以和node互通,通过外部负载均衡器访问时,负载均衡器一般都会与vpc网络互通,但不会直接与calico网络互通,因此,在一般情况下,负载均衡器后端都会挂vpc地址,先通过vpc地址找到node,然后再通过node进入pod,由此使得流量接入时需要匹配三次路由表才能将流量甩入pod内,效率较低。
50.为了解决上述问题,本技术实施例提供一种容器服务的访问方法,通过访问请求确定目标后端地址和容器端口,并通过目标后端地址和容器端口确定了对应的目标calico路由,在根据目标calico路由,将外部流量到入到目标vpc后,再根据预设的ovn路由表,确定对应的目标容器,由此,外部流量访问负载均衡器后,仅需匹配两次路由表就可以将流量甩进目标容器,实现了提高转发效率的效果。
51.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述
技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
52.本技术实施例提供的项目创建方法的执行主体可以是服务器。其中,服务器可以为手机、平板、电脑等设备。本实施例对执行主体的实现方式不做特别限制,只要该执行主体能够在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;根据目标calico路由,确定目标vpc、以及目标vpc的网口;根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由即可。
53.其中,容器(pod)可以指k8s集群中最小的可部署对象,它是一个或多个容器的集合,这些容器共享网络和存储资源,并在同一节点上运行。
54.负载均衡器(load balancer)可以指一种网络设备或软件,用于将网络流量分配到多个服务器或计算机上,以实现高可用性、可扩展性和性能优化。负载均衡器可以根据不同的算法(如轮询、加权轮询、最小连接数等)将流量分配到不同的服务器上,从而避免单个服务器过载或故障导致的服务中断。
55.k8s(kubernetes)集群可以指一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。k8s集群可以在多个主机上运行容器,并提供自动化的容器部署、扩展和管理功能,从而使应用程序更加可靠和可伸缩。
56.图1为本技术实施例提供的容器服务的访问方法的流程示意图。该方法的执行主体可以为服务器或其它服务器,本实施例此处不做特别限制,如图1所示,该方法可以包括:
57.s101、在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口。
58.其中,外部流量可以指从k8s集群外部发起的网络请求,比如、来自互联网的http(hyper text transfer protocol,超文本传输协议)请求或者来自其他云服务的api(application programming interface,应用程序编程接口)请求。在k8s集群中,可以通过service对象来暴露一个应用程序的服务,从而允许外部流量访问该服务。外部流量可以通过负载均衡器、ingress等方式进行访问。
59.访问请求可以指外部流量从k8s集群外部发起的网络请求,该访问请求可以包括被访问的目标容器、以及目标容器的信息。其中,目标容器的信息可以包括目标后端地址和容器端口,后端地址可以指负载均衡器将访问请求转发到的目标服务器的地址,该目标服务器的地址可以指目标容器的地址,负载均衡器会根据负载均衡算法将请求转发到后端地址,以实现负载均衡和高可用性。容器端口可以指负载均衡器将访问请求转发到的后端服务的端口。在负载均衡器的配置中,需要指定后端服务的ip地址和端口号,以便将请求转发到正确的后端服务。其中,后端服务可以是一个或多个容器、虚拟机或物理机,负载均衡器会将请求均衡地分配到这些后端服务上,以实现高可用和高性能的服务访问。
60.其中,在本技术实施例中,在负载均衡器接收外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的端口,包括:
61.在负载均衡器接收外部流量的访问请求后,根据访问请求,确定负载均衡器的虚
拟ip地址和虚拟端口;
62.根据预设的负载均衡软件,确定负载均衡器中被访问的目标后端地址、以及与目标后端地址对应的端口。
63.其中,负载均衡器的虚拟ip地址和虚拟端口可以指在负载均衡器上配置的用于接收客户端发送的访问请求的ip地址和端口。通过虚拟ip地址和端口可以使负载均衡器进行转发和分发请求到后端的服务器上,从而实现负载均衡的功能。
64.负载均衡软件可以包括lvs(linux virtual server)或nginx(engine x)。其中,lvs可以将多个服务器组成一个高可用的服务器集群,通过负载均衡算法将客户端请求分发到不同的服务器上,从而提高系统的可用性和性能。nginx可以是一个高性能的http和反向代理web服务器。
65.s102、根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由。
66.其中,目标calico路由可以指k8s集群中的一种网络插件。其中,calico是一种开源的网络和安全解决方案,用于容器、虚拟机和裸机环境。calico路由是指在calico网络中,通过bgp协议将容器的ip地址和路由信息发布到网络中,实现容器网络和网络策略,以提高转发效率。
67.在本技术实施例中,可以先将目标calico路由写入到负载均衡器中,以在得到目标后端地址、以及与目标后端地址对应的容器端口后,确定目标calico路由。
68.其中,在本技术实施例中,在根据目标后端地址、以及与目标后端地址对应的端口,确定目标calico路由之前,方法还包括:
69.创建目标容器;
70.当calico ip池发生变动时,k8s集群将目标calico路由分别写入etcd和ovn路由表,其中,目标calico路由与目标容器对应;
71.根据etcd,将目标calico路由写入至负载均衡器,并将目标容器的容器地址和容器端口写入负载均衡器,其中,目标calico路由指向目标vpc的网口。
72.其中,calico ip池可以指在calico网络中,为容器分配ip地址的ip地址池。在本技术实施例中,当容器创建时,就会占用calico ip池,calico ip池用完后会申请新的网段,并写入k8s集群的etcd中。
73.calico ip池的变动状态可以指用于表征是否创建了新的容器。
74.k8s集群的etcd中可以为一个键值存储系统,用于存储k8s集群中的所有配置数据,包括节点、容器、服务、卷、命名空间等。etcd是k8s集群的核心组件之一,用于负责存储和同步所有的集群状态信息,确保集群中的所有节点都能够访问到最新的配置信息。
75.在本技术实施例中,通过检测calico ip池的变动状态,可以确定是否新建了容器,并通过将与目标容器对应的calico路由分别写入etcd和ovn路由表,使得外部流量访问负载均衡后,仅需匹配两次路由表就可以将流量甩进pod,转发效率高。
76.其中,在本技术实施例中,当calico ip池发生变动时,k8s集群将目标calico路由分别写入etcd和ovn路由表,包括:
77.k8s集群调用ccm组件监控calico ip池的变动状态;
78.当calico ip池的变动状态为发生变动时,k8s集群将目标calico路由的信息写入
etcd,并将目标calico路由的信息写入至ovn路由表。
79.其中,在本技术实施例中,根据etcd,将目标calico路由写入至负载均衡器,并将目标容器的容器地址和容器端口写入负载均衡器,包括:
80.调用k8s集群监控etcd;
81.若etcd发送变动,则将目标calico路由写入至负载均衡器的载体中,并调用k8s集群的ccm组件将目标容器的容器地址和容器端口写入负载均衡器的后端地址中。
82.其中,可以调用k8s集群的外部自研组件监控etcd,外部自研组件可以指用于扩展k8s集群功能的插件。在本技术实施例中,该外部自研组件可以接收并处理来自k8s集群中ccm组件的calico路由信息、并将路由信息写入etcd,以便其他组件可以读取并使用这些信息的组件,在本技术实施例中,该外部自研组件可以使用python、go、java等语言编写一个http服务,或者使用开源软件,如consul、zookeeper等进行编写。
83.ccm组件(cloud controller manager)是k8s集群中的组件,ccm组件可以通过k8s集群中api server上的watch机制监听calico ip池的变化事件。当calico ip池中的ip地址发生变化时,ccm组件会收到通知,并将变化的信息转换为云服务提供商的api请求,以便更新云服务提供商中的路由表。
84.s103、根据目标calico路由,确定目标vpc、以及目标vpc的网口。
85.其中,目标vpc(virtual private cloud,虚拟私有云)可以指虚拟化的网络环境,可以在云计算平台上创建一个隔离的、私有的网络环境,用户可以在这个环境中启动虚拟机、存储、数据库等云资源,并且可以自定义ip地址范围、子网、路由表和网关等网络配置。
86.目标vpc的网口可以指在vpc中创建的虚拟网络接口,可以用于连接不同的子网、路由表、安全组等网络资源,实现网络通信和数据传输。
87.在本技术实施例中,可以通过查看路由表的方式,确定目标calico路由的目标vpc、以及目标vpc的网口。
88.s104、根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。
89.其中,ovn路由表可以指ovn(open virtual network,开源的虚拟网络解决方案)中用于管理路由的数据结构,ovn路由表包含了网络拓扑信息、路由规则、nat规则等,在本技术实施例何总,可以预先在ovn路由表中记录目标容器的信息,以根据目标calico路由,确定目标容器。
90.目标容器可以指用于外部流量访问的容器。
91.其中,在本技术实施例中,方法还包括:
92.当目标容器访问外部流量时,根据目标容器,确定node路由;
93.将目标容器的流量通过node路由导入至目标vpc内,以使目标vpc将外部地址转发至nat网关,并使nat网关根据预设的snat规则,进行snat处理后,进行目标容器对外部流量的访问。
94.其中,node路由可以指一种将http请求映射到相应的处理程序或控制器的技术。它可以帮助我们构建restful api和web应用程序。node路由可以使用第三方库如express.js来实现。
95.在本技术实施例中,在使用容器部署node.js应用程序时,可以使用容器的网络功能来确定node.js应用程序的路由。
96.nat(network address translation,网络地址转换)网关是一种网络设备,用于将私有网络中的ip地址转换为公共网络中的ip地址,以便在公共网络上进行通信。
97.snat(source network address translation)是一种网络地址转换技术,用于将源ip地址转换为另一个ip地址。snat规则是一组规则,用于指定哪些ip地址需要进行snat转换,以及转换后的ip地址为什么的规则。snat处理就是根据snat规则处理后,进行的ip地址的转换,由此,实现目标容器对外部流量的访问。
98.其中,在本技术实施例中,在将目标容器的流量通过node路由导入至目标vpc内,以使目标vpc将外部地址转发至nat网关,并在nat网关上进行snat处理,使得回向流量通过nat网关导入至目标容器之前,方法还包括:
99.创建目标容器;
100.当calico ip池发生变动时,k8s集群根据目标calico路由的信息,对网关配置snat规则,以使目标vpc将外部地址转发至nat网关后,nat网关根据预设的snat规则,进行snat处理,其中,目标calico路由与目标容器对应。
101.本技术实施例提供的容器服务的访问方法,可以改善负载均衡后端无法挂pod ip地址,必须挂node ip地址的方案,且外部流量入向访问时转发过程中需要经过三次匹配路由表,转发性能明显降低。同时也改善了容器服务访问外部服务时回向流量也需要多次匹配路由表,转发性能也会降低的问题。
102.图2为本技术实施例提供的另一种容器服务的访问方法,如图2所示,该方法包括:
103.s201、创建pod。
104.其中,当pod创建时,就会占用calico ip池,当calico ip池用完就会申请新的网段,并写入k8s集群中的etcd。
105.s202、k8s集群调用ccm组件监听calico ip池;
106.s203、当监听到calico ip池变动,调用k8s集群把calico路由信息写入外部自研组件使用的etcd、写入ovn路由表、以及针对nat网关接入snat规则。
107.其中,k8s集群内的ccm组件监听到calico ip池变动后,可以调用k8s集群的外部自研组件,把calico路由信息写入自研组件使用的etcd,同时写入ovn路由表,及针对nat网关接入snat规则。
108.其中,写入ovn路由表的格式可以为:
109.ovn-nbctl lr-route-add vpc_727730898569_796774c999 172.246.135.128/26192.168.4.3。
110.针对nat网关接入snat规则的格式可以为:
111.ovn-nbctl lr-nat-add vpc_727730898569_796774c999 snat 10.125.142.69172.246.0.0/16。
112.监听key可以包括:
113./calico/ipam/v2/host和/calico/resources/v3/projectcalico.org/nodes。
114.s204、k8s集群内监听etcd变动,将calico路由写入外服负载均衡器的载体中,其中,calico路由指向vpc网口;
115.s205、将外部负载均衡器的后端地址通过ccm将pod地址和容器端口写入。
116.图3为本技术实施例提供的另一种容器服务的访问方法,如图3所示,该方法包括:
117.s301、外部流量访问负载均衡vip:vport,负载均衡会基于lvs规则或nginx规则,确定后端地址、以及与后端地址对应的端口;
118.s302、在负载均衡载体内匹配calico路由,并将流量打入vpc内部;
119.s303、vpc内匹配ovn路由表找到目标pod所在node及pod;
120.s304、将流量从vpc内直接打进pod内,且回向流量原路返回。
121.图4为本技术实施例提供的另一种容器服务的访问方法,如图3所示,该方法包括:
122.s401、pod内流量匹配node路由进入vpc内;
123.s402、vpc内针对外部地址将流量导入nat网关,并根据snat规则,在nat网关将流量导入到外部;
124.s403、回向流量通过nat进来。
125.由此,本技术实施例提供的另一种容器服务的访问方法,可以在外部流量访问负载均衡后,仅需匹配两次路由表就可以将流量甩进pod,转发效率高。同时,pod服务访问外部服务时回向流量仅需要一次匹配路由表,转发性能也会提升。此外,pod网络依然采用目前最稳定的calico网络,改造量很小即可明显提升用户体验。
126.图5为本技术实施例提供的容器服务的访问装置的结构示意图。如图5所示,该容器服务的访问装置50包括:第一确定模块501、第二确定模块502、第三确定模块503、以及访问模块504。其中:
127.第一确定模块501,用于在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;
128.第二确定模块502,用于根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;
129.第三确定模块503,用于根据目标calico路由,确定目标vpc、以及目标vpc的网口;
130.访问模块504,用于根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。
131.在本技术实施例中,第一确定模块501还可以具体用于:
132.在负载均衡器接收外部流量的访问请求后,根据访问请求,确定负载均衡器的虚拟ip地址和虚拟端口;
133.根据预设的负载均衡软件,确定负载均衡器中被访问的目标后端地址、以及与目标后端地址对应的端口。
134.在本技术实施例中,第二确定模块502还可以具体用于:
135.创建目标容器;
136.当calico ip池发生变动时,k8s集群将目标calico路由分别写入etcd和ovn路由表,其中,目标calico路由与目标容器对应;
137.根据etcd,将目标calico路由写入至负载均衡器,并将目标容器的容器地址和容器端口写入负载均衡器,其中,目标calico路由指向目标vpc的网口。
138.在本技术实施例中,第二确定模块502还可以具体用于:
139.k8s集群调用ccm组件监控calico ip池的变动状态;
140.当calico ip池的变动状态为发生变动时,k8s集群将目标calico路由的信息写入etcd,并将目标calico路由的信息写入至ovn路由表。
141.在本技术实施例中,第二确定模块502还可以具体用于:
142.调用k8s集群监控etcd;
143.若etcd发送变动,则将目标calico路由写入至负载均衡器的载体中,并调用k8s集群的ccm组件将目标容器的容器地址和容器端口写入负载均衡器的后端地址中。
144.在本技术实施例中,访问模块504还可以具体用于:
145.当目标容器访问外部流量时,根据目标容器,确定node路由;
146.将目标容器的流量通过node路由导入至目标vpc内,以使目标vpc将外部地址转发至nat网关,并使nat网关根据预设的snat规则,进行snat处理后,进行目标容器对外部流量的访问。
147.在本技术实施例中,访问模块504还可以具体用于:
148.创建目标容器;
149.当calico ip池发生变动时,k8s集群根据目标calico路由的信息,对网关配置snat规则,以使目标vpc将外部地址转发至nat网关后,nat网关根据预设的snat规则,进行snat处理,其中,目标calico路由与目标容器对应。
150.本技术提供的容器服务的访问装置50,由第一确定模块501,用于在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;由第二确定模块502,用于根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;由第三确定模块503,用于根据目标calico路由,确定目标vpc、以及目标vpc的网口;由访问模块504,用于根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。由此,实现了提高转发效率的效果。
151.图6为本技术实施例提供的电子设备的结构示意图。如图6所示,该电子设备60包括:
152.该电子设备60可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、通信部件603等部件。其中,处理器601、存储器602以及通信部件603通过总线604连接。
153.在具体实现过程中,至少一个处理器601执行存储器602存储的计算机执行指令,使得至少一个处理器601执行如上的容器服务的访问方法。
154.处理器601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
155.在上述的图6所示的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完
成,或者用处理器中的硬件及软件模块组合执行完成。
156.存储器可能包含高速存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。
157.总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
158.在一些实施例中,还提出一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述任一种容器服务的访问方法中的步骤。
159.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
160.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
161.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种容器服务的访问方法中的步骤。
162.其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
163.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。
164.由于该存储介质中所存储的指令,可以执行本技术实施例所提供的任一种容器服务的访问方法中的步骤,因此,可以实现本技术实施例所提供的任一种容器服务的访问方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
165.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
166.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
技术特征:
1.一种容器服务的访问方法,其特征在于,所述方法包括:在负载均衡器接收到外部流量的访问请求后,根据所述访问请求,确定被访问的目标后端地址、以及与所述目标后端地址对应的容器端口;根据所述目标后端地址、以及与所述目标后端地址对应的容器端口,确定目标calico路由;根据所述目标calico路由,确定目标vpc、以及所述目标vpc的网口;根据所述目标vpc的网口,将所述外部流量导入至所述目标vpc,以使所述目标vpc根据所述目标calico路由,从预设的ovn路由表中确定目标容器,并使所述外部流量访问所述目标容器,其中,所述目标vpc与所述目标calico路由。2.根据权利要求1所述的方法,其特征在于,所述在负载均衡器接收外部流量的访问请求后,根据所述访问请求,确定被访问的目标后端地址、以及与所述目标后端地址对应的端口,包括:在负载均衡器接收外部流量的访问请求后,根据所述访问请求,确定所述负载均衡器的虚拟ip地址和虚拟端口;根据预设的负载均衡软件,确定所述负载均衡器中被访问的目标后端地址、以及与所述目标后端地址对应的端口。3.根据权利要求1所述的方法,其特征在于,在根据所述目标后端地址、以及与所述目标后端地址对应的端口,确定目标calico路由之前,所述方法还包括:创建所述目标容器;当所述calicoip池发生变动时,k8s集群将所述目标calico路由分别写入etcd和ovn路由表,其中,所述目标calico路由与所述目标容器对应;根据所述etcd,将所述目标calico路由写入至所述负载均衡器,并将所述目标容器的容器地址和容器端口写入所述负载均衡器,其中,所述目标calico路由指向所述目标vpc的网口。4.根据权利要求3所述的方法,其特征在于,所述当所述calicoip池发生变动时,所述k8s集群将所述目标calico路由分别写入etcd和ovn路由表,包括:所述k8s集群调用ccm组件监控所述calico ip池的变动状态;当所述calico ip池的变动状态为发生变动时,所述k8s集群将所述目标calico路由的信息写入etcd,并将所述目标calico路由的信息写入至ovn路由表。5.根据权利要求3所述的方法,其特征在于,所述根据所述etcd,将所述目标calico路由写入至所述负载均衡器,并将所述目标容器的容器地址和容器端口写入所述负载均衡器,包括:调用所述k8s集群监控所述etcd;若所述etcd发送变动,则将所述目标calico路由写入至所述负载均衡器的载体中,并调用所述k8s集群的ccm组件将所述目标容器的容器地址和容器端口写入所述负载均衡器的后端地址中。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述目标容器访问所述外部流量时,根据所述目标容器,确定node路由;将所述目标容器的流量通过所述node路由导入至所述目标vpc内,以使所述目标vpc将
外部地址转发至nat网关,并使所述nat网关根据预设的snat规则,进行snat处理后,进行所述目标容器对所述外部流量的访问。7.根据权利要求6所述的方法,其特征在于,在将所述目标容器的流量通过所述node路由导入至所述目标vpc内,以使所述目标vpc将外部地址转发至nat网关,并在所述nat网关上进行snat处理,使得回向流量通过所述nat网关导入至所述目标容器之前,所述方法还包括:创建所述目标容器;当所述calico ip池发生变动时,k8s集群根据所述目标calico路由的信息,对所述网关配置所述snat规则,以使所述目标vpc将外部地址转发至nat网关后,所述nat网关根据预设的snat规则,进行snat处理,其中,所述目标calico路由与所述目标容器对应。8.一种容器服务的访问装置,其特征在于,所述装置包括:第一确定模块,用于在负载均衡器接收到外部流量的访问请求后,根据所述访问请求,确定被访问的目标后端地址、以及与所述目标后端地址对应的容器端口;第二确定模块,用于根据所述目标后端地址、以及与所述目标后端地址对应的容器端口,确定目标calico路由;第三确定模块,用于根据所述目标calico路由,确定目标vpc、以及所述目标vpc的网口;访问模块,用于根据所述目标vpc的网口,将所述外部流量导入至所述目标vpc,以使所述目标vpc根据所述目标calico路由,从预设的ovn路由表中确定目标容器,并使所述外部流量访问所述目标容器,其中,所述目标vpc与所述目标calico路由。9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的方法。
技术总结
本申请提供一种容器服务的访问方法、装置、设备及存储介质。该方法包括:在负载均衡器接收到外部流量的访问请求后,根据访问请求,确定被访问的目标后端地址、以及与目标后端地址对应的容器端口;根据目标后端地址、以及与目标后端地址对应的容器端口,确定目标calico路由;根据目标calico路由,确定目标vpc、以及目标vpc的网口;根据目标vpc的网口,将外部流量导入至目标vpc,以使目标vpc根据目标calico路由,从预设的ovn路由表中确定目标容器,并使外部流量访问目标容器,其中,目标vpc与目标calico路由。本申请的方法,提高了转发效率的效果。效果。效果。
技术研发人员:张民
受保护的技术使用者:联通数字科技有限公司 联通云数据有限公司
技术研发日:2023.07.27
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种基于文本综合算法的对比方法与流程 下一篇:一种防碰撞的挂钩的制作方法