CN113572838B - 基于Kubernetes的网络访问方法、装置、设备及介质 - Google Patents
基于Kubernetes的网络访问方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113572838B CN113572838B CN202110833133.7A CN202110833133A CN113572838B CN 113572838 B CN113572838 B CN 113572838B CN 202110833133 A CN202110833133 A CN 202110833133A CN 113572838 B CN113572838 B CN 113572838B
- Authority
- CN
- China
- Prior art keywords
- node
- information
- kubernets
- target node
- container group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例涉及一种基于Kubernetes的网络访问方法、装置、设备及介质,其中该方法应用于云平台,包括:接收外部访问请求;通过预先创建的负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点;负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个;通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。本公开实现了Kubernetes的容器组网络的外部访问,不需要开发容器网络接口,降低了成本。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于Kubernetes的网络访问方法、装置、设备及介质。
背景技术
Kubernetes,简称K8s,是一个用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。
在云平台的数据网络和管理网络不隔离的情况下,Kubernetes通过云平台的负载均衡器可以将外部访问路由到后端的容器组(pod)中,但是在数据网络和管理网络隔离的情况下,上述方式不能实现。相关技术中可以通过开发容器网络接口(Container NetworkInterface,CNI)调用云平台的负载均衡器来实现上述外部访问,但是过程复杂,成本较高,并且网络性能较差。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于Kubernetes的网络访问方法、装置、设备及介质。
本公开实施例提供了一种基于Kubernetes的网络访问方法,所述方法应用于云平台,包括:
接收外部访问请求;
通过预先创建的负载均衡器确定所述外部访问请求对应的目标节点的节点信息,并基于所述目标节点的节点信息将所述外部访问请求转发至所述目标节点;其中,所述负载均衡器对应多个Kubernetes节点,所述目标节点为所述多个Kubernetes节点中的一个;
通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,并基于所述容器组信息将所述外部访问请求转发至容器组。
本公开实施例还提供了一种基于Kubernetes的网络访问装置,所述装置配置于云平台,包括:
请求接收模块,用于接收外部访问请求;
转发模块,用于通过预先创建的负载均衡器确定所述外部访问请求对应的目标节点的节点信息,并基于所述目标节点的节点信息将所述外部访问请求转发至所述目标节点;其中,所述负载均衡器对应多个Kubernetes节点,所述目标节点为所述多个Kubernetes节点中的一个;
访问模块,用于通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,并基于所述容器组信息将所述外部访问请求转发至容器组。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的基于Kubernetes的网络访问方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的基于Kubernetes的网络访问方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的基于Kubernetes的网络访问方案,云平台可以接收外部访问请求;通过负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点;其中,负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个;通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。采用上述技术方案,由于云平台可以在需要时创建负载均衡器,不仅能够在云平台的数据网络和管理网络隔离的情况下实现Kubernetes的容器组网络的外部访问,并且不需要进行容器网络接口的开发,没有增加额外的网络服务,降低了实现成本,网络性能更加高效。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种基于Kubernetes的网络访问方法的流程示意图;
图2为本公开实施例提供的另一种基于Kubernetes的网络访问方法的流程示意图;
图3为本公开实施例提供的一种云平台的访问示意图;
图4为本公开实施例提供的一种Kubernetes节点的示意图;
图5为本公开实施例提供的一种基于Kubernetes的网络访问装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
相关技术中,Kubernetes可以使用LoadBalancer类型的Servcie提供一种外网访问pod的方法,该方法可以使用Kubernetes的网络插件kuryr-kubernetes调用云平台的接口(Application Programming Interface,API)创建负载均衡器,将流量路由到Kubernetes的Service上,使外部访问通过云平台的负载均衡器,将流量重定向到后端pod网络上。
但是上述方式中,Kubernetes的网络插件kuryr-kubernetes依赖于对云平台的接口的访问权限和连通交互性,在K8s生产网络环境下,云平台的数据网络和管理网络通常是隔离的,网络插件kuryr-kubernetes部署于云平台的虚拟机里,访问云平台的接口的管理网络是不通的,因此在数据网络和管理网络隔离的情况下,上述方式不能实现外部访问K8s中的pod网络。相关技术中可以通过开发容器网络接口(Container Network Interface,CNI)调用云平台的负载均衡器来实现上述外部访问,但是上述方式过程复杂,成本较高,并且网络性能较差。
为了解决上述问题,本公开实施例提供了一种基于Kubernetes的网络访问方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种基于Kubernetes的网络访问方法的流程示意图,该方法可以由基于Kubernetes的网络访问装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。
如图1所示,该方法应用于云平台,包括:
步骤101、接收外部访问请求。
本实施例中的云平台可以是云服务提供方提供的一种云计算管理平台,具体可以根据实际情况确定,本方案中以云平台为OpenStack为例进行说明,OpenStack可以为私有云和公有云提供可扩展的弹性的云计算服务。
其中,外部访问请求可以是用户发送的对Kubernetes中的pod网络进行访问的请求。
Kubernetes,简称K8s,是一个用于管理云平台中多个主机上的容器化的应用。pod是k8s中的最小部署单元,不是一个程序/进程,而是一个环境,可以包括容器、存储、网络资源、容器配置等,其中可以运行1个或多个容器,例如Docker容器container或其他容器,在一个pod内部的container共享所有资源,包括共享pod的网络资源和磁盘等。
步骤102、通过预先创建的负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点。
其中,负载均衡器可以是用于实现负载均衡功能的器件,负载均衡是一种服务器或网络设备的集群技术,可以将特定的业务分担给多个服务器或网络设备,从而提高业务能力,保证业务的高可用性。
本实施例中,云平台可以预先创建负载均衡器,也可以在需要的时候基于用户发送的负载均衡器的创建请求创建负载均衡器,负载均衡器的数量可以为一个或多个,具体不限。上述在云平台的数据网络和管理网络隔离的情况下也能创建负载均衡器,避免了因网络隔离造成的Kubernetes的网络插件kuryr-kubernetes调用云平台的接口进行负载均衡器的创建失败。
其中,负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个。
本实施例中,Kubernetes节点包括部署有Kubernetes网络的虚拟机,且在各Kubernetes节点中配置有NodePort类型的Service和容器组。也即在步骤102之前,基于Kubernetes的网络访问方法还可以包括:创建虚拟机,并在虚拟机中部署Kubernetes网络,将部署Kubernetes网络的虚拟机确定为Kubernetes节点,得到多个Kubernetes节点;在各Kubernetes节点中创建NodePort类型的Service和容器组。
其中,Service可以为Kubernetes的一种资源对象并为Kubernetes提供外部网络和pod网络访问,Service可以理解为一种抽象,它定义了一个pod的逻辑集合和一个用于访问它们的策略,Service可以提供一种桥梁,为外部访问提供一个固定的访问IP地址,用于在访问时重定向到相应的后端pod网络。Kubernetes Service类型可以包括ClusterIP、NodePort、LoadBalancer和ExternalName,其中,ClusterIP可以是一个集群内部的IP地址,是一种默认值,服务只能在集群内部访问;NodePort可以在集群的每一个节点的端口上开放这个服务,关联集群内部IP地址,可以在任意<NodeIP>:NodePort地址上访问到这个服务;LoadBalancer可以在使用一个集群内部IP地址和在NodePort上开放一个服务之外,向云平台申请一个负载均衡器,会让流量转发到这个在每个节点上以<外部IP>:NodePort的形式开放的服务上;ExternalName可以将服务通过DNS CNAME记录方式转发到指定的域名。
云平台可以创建虚拟机,虚拟机的数量可以为多个,并在虚拟机中部署Kubernetes网络,将部署了Kubernetes网络的虚拟机确定为Kubernetes节点,进而可以得到多个Kubernetes节点;之后可以在各Kubernetes节点中创建NodePort类型的Service和pod,每个NodePort类型的Service可以分配对应的端口信息。
本实施例中,多个Kubernetes节点作为成员被加入至负载均衡器中,且各Kubernetes节点的节点信息被存储至负载均衡器。也即在上述创建负载均衡器之后,还可以包括:将多个Kubernetes节点作为成员加入负载均衡器中,并将各Kubernetes节点的节点信息存储至负载均衡器。
其中,节点信息可以包括节点IP地址(NodeIP)和第二端口信息,节点IP地址为Kubernetes节点的虚拟机的IP地址,虚拟机的IP地址可以是云平台中虚拟网络(Neutron)的子网分配的IP地址;第二端口信息可以为Kubernetes节点的NodePort类型的Service的端口信息(NodePort)。也即,本方案中将多个Kubernetes节点作为成员加入负载均衡器之后,可以占用Kubernetes节点的虚拟机的IP地址作为成员的IP地址,配置Kubernetes节点的NodePort类型的Service的端口信息作为成员的端口信息,为后续负载均衡流量的转发做好准备。
本实施例中,通过负载均衡器确定外部访问请求对应的目标节点的节点信息,可以包括:通过负载均衡器按照预设的分配策略为外部访问请求分配对应的目标节点,并确定目标节点的节点信息。其中,预设的分配策略可以根据实际情况设置,例如可以为随机分配或轮流分配等。
云平台接收到外部访问请求之后,可以根据外部访问请求中的外部IP地址确定对应的负载均衡器,之后可以通过负载均衡器,按照预设的分配策略从多个Kubernetes节点中为外部访问请求分配一个Kubernetes节点作为目标节点,并获取目标节点的节点信息,根据目标节点的节点信息将外部访问请求转发至目标节点。
步骤103、通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。
其中,容器组信息可以包括容器组IP地址(podIP)和容器端口信息(containePort)。
本实施例中,通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,可以包括:通过目标节点中创建的NodePort类型的Service中的目的地址转换模块,将目标节点的节点信息转换为容器组信息。其中,目标节点的节点信息由目的地址转换模块先转换为集群信息再转换为容器组信息,集群信息包括集群内部IP地址(ClusterIP)和第一端口信息(ServicePort),第一端口信息为ClusterIP类型的Service的端口信息。
目的地址转换(Destination Network Address Translation,DANT)模块可以是NodePort类型的Service中用于实现路由转发功能的模块,例如可以为userspace、iptables、ipvs、kernelspace等路由转发模式下的转发功能模块,具体可以根据实际情况设置。
外部访问请求通过云平台的负载均衡器的反向代理转发至目标节点之后,由于目标节点中创建的NodePort类型的Service具有负载均衡功能,云平台可以通过目标节点中创建的NodePort类型的Service中的目的地址转换模块将节点信息先转换为集群信息,再将集群信息转换为容器组信息。也即通过目的地址转换模块可以先将节点信息“NodeIP:NodePort”转换为集群信息“ClusterIP:ServicePort”,之后再将集群信息“ClusterIP:ServicePort”转换为容器组信息“podIP:containePort”,上述“NodeIP”表示节点IP地址,“NodePort”表示节点信息中的第二端口信息,“ClusterIP”表示集群内部IP地址“ServicePort”表示第一端口信息,“podIP”表示容器组IP地址“containePort”表示容器端口信息。之后可以基于容器组信息将外部访问请求转发至对应的容器组,实现了流量由外部向pod网络的转发。
本方案中提供了一种利用云平台的负载均衡器向外部暴露Kubernetes容器网络服务的方法,该方法基于用户的创建请求创建负载均衡器,在云平台管理网络和数据网络隔离的情况下,既能使用云平台的负载均衡器功能实现Kubernetes的容器组网络向外部暴露服务,同时避免了Kubernetes网络的网络插件无法调用云平台接口创建负载均衡的功能而导致无法使用云平台的负载均衡器的痛点,并且避免了对Kubernetes网络CNI的依赖,具有很强的实用性,丰富了Kubernetes网络的使用场景。
本公开实施例提供的基于Kubernetes的网络访问方案,云平台可以接收外部访问请求;通过预先创建的负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点;其中,负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个;通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。采用上述技术方案,由于云平台可以在需要时创建负载均衡器,不仅能够在云平台的数据网络和管理网络隔离的情况下实现Kubernetes的容器组网络的外部访问,并且不需要进行容器网络接口的开发,没有增加额外的网络服务,降低了实现成本,网络性能更加高效。
图2为本公开实施例提供的另一种基于Kubernetes的网络访问方法的流程示意图,本实施例在上述实施例的基础上,进一步对上述基于Kubernetes的网络访问方法进行具体说明。如图2所示,该方法应用于云平台,包括:
步骤201、创建虚拟机,并在虚拟机中部署Kubernetes网络,将部署Kubernetes网络的虚拟机确定为Kubernetes节点,得到多个Kubernetes节点。
也即Kubernetes节点包括部署有Kubernetes网络的虚拟机,且在各Kubernetes节点中配置有NodePort类型的Service和容器组。
步骤202、在各Kubernetes节点中创建NodePort类型的Service和容器组。
步骤203、响应于负载均衡器的创建请求,创建负载均衡器。
步骤203为可选步骤,图2中仅为示例。
步骤204、将多个Kubernetes节点作为成员加入负载均衡器中,并将各Kubernetes节点的节点信息存储至负载均衡器。
其中,节点信息包括节点IP地址和第二端口信息,节点IP地址为Kubernetes节点的虚拟机的IP地址,第二端口信息为Kubernetes节点的NodePort类型的Service的端口信息。
也即多个Kubernetes节点作为成员被加入至负载均衡器中,且各Kubernetes节点的节点信息被存储至负载均衡器。
步骤205、接收外部访问请求。
步骤206、通过预先创建的负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点。
其中,负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个。
可选的,通过负载均衡器确定外部访问请求对应的目标节点的节点信息,包括:通过负载均衡器按照预设的分配策略为外部访问请求分配对应的目标节点,并确定目标节点的节点信息。
步骤207、通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。
可选的,通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,可以包括:通过目标节点中创建的NodePort类型的Service中的目的地址转换模块,将目标节点的节点信息转换为容器组信息,其中,容器组信息包括容器组IP地址和容器端口信息。其中,目标节点的节点信息由目的地址转换模块先转换为集群信息再转换为容器组信息,集群信息包括集群内部IP地址和第一端口信息,第一端口信息为ClusterIP类型的Service的端口信息。
示例性的,图3为本公开实施例提供的一种云平台的访问示意图,如图3所示,展示了云平台接收到外部访问请求之后的转发过程,云平台以OpenStack为例,具体过程可以包括:OpenStack接收到外部访问请求之后,可以根据外部访问请求中的外部IP地址确定对应的负载均衡器,将外部访问请求发送至负载均衡器;负载均衡器接收到外部访问请求之后,其中的一个端口监听模块(listener)可以监听到该外部访问请求,并将该外部访问请求转发至资源池下的一个成员中,也即负载均衡器将外部访问请求转发至一个Kubernetes节点中。资源池中可以包括该负载均衡器对应的多个虚拟机,也即多个成员,每个成员为一个Kubernetes节点。端口监听模块可以是OpenStack的负载均衡器中用于监听服务暴露端口的功能模块。
如图3所示,负载均衡器还可以通过监控器监听资源池中的多个虚拟机的状态等,如果一个虚拟机出现故障,则不会调度到该虚拟机中。OpenStack可以允许同一个虚拟机加入多个负载均衡器中,以使用不同的接口连通不同的Service和pod。OpenStack的负载均衡器可以占用从虚拟网络(Neutron)的子网分配的IP地址作为成员的IP地址,并指定NodePort类型的Service的端口作为成员的端口,为负载均衡器对应的虚拟机的流量负载提供服务。
示例性的,图4为本公开实施例提供的一种Kubernetes节点的示意图,如图4所示,Kubernetes节点中可以包括NodePort类型的Service和多个pod。
参见图3和图4,通过OpenStack的负载均衡器的反向代理,将外部访问请求转发到一个Kubernetes节点之后,可以由Kubernetes节点中的NodePort类型的Service采用iptables将节点信息转为集群信息,然后再将集群信息转换为pod信息,之后基于pod信息将外部访问请求路由到pod里完成流量由外网向pod的转发,具体的转换过程为:先将节点信息“NodeIP:NodePort”转换为集群信息“ClusterIP:ServicePort”,之后再将集群信息“ClusterIP:ServicePort”转换为容器组信息“podIP:containePort”,上述“NodeIP”表示节点IP地址,“NodePort”表示节点信息中的第二端口信息,“ClusterIP”表示集群内部IP地址“ServicePort”表示第一端口信息,“podIP”表示容器组IP地址“containePort”表示容器端口信息。
相关技术中,在数据网络和管理网络不隔离的情况下,使用Kubernetes的网络插件调用云平台的接口创建负载均衡器,将流量路由到Kubernetes的Service上,进而将流量重定向到后端pod网络上。由于负载均衡器通常新建一个IP地址作为成员的IP地址,pod网络通过云平台端口会受到限制,需要利用云平台的TrunkPort功能允许新建的IP地址通过,增加了网络的复杂性。而本方案中负载均衡器可以占用虚拟机的IP地址作为成员的IP地址,节省了资源,避免了使用云平台的TrunkPort功能,降低了虚拟机下的pod网络的复杂性。
本方案提供的基于Kubernetes的网络访问方法,不仅能够实现Kubernetes的pod网络使用云平台的负载均衡器向外部暴露服务的功能,而且没有增加额外的网络服务,网络性能高效,使用场景广泛,实现过程也比较简单。本方案云平台基于用户的创建请求创建负载均衡器,并且充分利用了Kubernetes的NodePort类型的Serviced具有负载均衡功能的特性,避免了需要调用云平台接口创建负载均衡器,也实现了利用云平台的负载均衡器向外部暴露服务的功能,该方案使用场景通用广泛,网络过程也更高效。
本公开实施例提供的基于Kubernetes的网络访问方案,云平台可以接收外部访问请求;通过预先创建负载均衡器确定外部访问请求对应的目标节点的节点信息,并基于目标节点的节点信息将外部访问请求转发至目标节点;其中,负载均衡器对应多个Kubernetes节点,目标节点为多个Kubernetes节点中的一个;通过目标节点中创建的NodePort类型的Service,根据节点信息确定容器组信息,并基于容器组信息将外部访问请求转发至容器组。采用上述技术方案,由于云平台可以在需要时创建负载均衡器,不仅能够在云平台的数据网络和管理网络隔离的情况下实现Kubernetes的容器组网络的外部访问,并且不需要进行容器网络接口的开发,没有增加额外的网络服务,降低了实现成本,网络性能更加高效。
图5为本公开实施例提供的一种基于Kubernetes的网络访问装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图5所示,该装置配置于云平台,包括:
请求接收模块301,用于接收外部访问请求;
转发模块302,用于通过预先创建的负载均衡器确定所述外部访问请求对应的目标节点的节点信息,并基于所述目标节点的节点信息将所述外部访问请求转发至所述目标节点;其中,所述负载均衡器对应多个Kubernetes节点,所述目标节点为所述多个Kubernetes节点中的一个;
访问模块303,用于通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,并基于所述容器组信息将所述外部访问请求转发至容器组。
可选的,所述转发模块302具体用于:
通过所述负载均衡器按照预设的分配策略为所述外部访问请求分配对应的目标节点,并确定所述目标节点的节点信息。
可选的,所述访问模块303具体用于:
通过所述目标节点中创建的NodePort类型的Service中的目的地址转换模块,将所述目标节点的节点信息转换为所述容器组信息,其中,所述容器组信息包括容器组IP地址和容器端口信息。
可选的,所述目标节点的节点信息由所述目的地址转换模块先转换为集群信息再转换为所述容器组信息,所述集群信息包括集群内部IP地址和第一端口信息,所述第一端口信息为ClusterIP类型的Service的端口信息。
可选的,所述Kubernetes节点包括部署有Kubernetes网络的虚拟机,且在各所述Kubernetes节点中配置有NodePort类型的Service和容器组。
可选的,所述多个Kubernetes节点作为成员被加入至所述负载均衡器中,且各所述Kubernetes节点的节点信息被存储至所述负载均衡器。
可选的,所述节点信息包括节点IP地址和第二端口信息,所述节点IP地址为Kubernetes节点的虚拟机的IP地址,所述第二端口信息为Kubernetes节点的所述NodePort类型的Service的端口信息。
本公开实施例所提供的基于Kubernetes的网络访问装置可执行本公开任意实施例所提供的基于Kubernetes的网络访问方法,具备执行方法相应的功能模块和有益效果。
图6为本公开实施例提供的一种电子设备的结构示意图。如图6所示,电子设备400包括一个或多个处理器401和存储器402。
处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所述的本公开的实施例的基于Kubernetes的网络访问方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置403还可以包括例如键盘、鼠标等等。
该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的基于Kubernetes的网络访问方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的基于Kubernetes的网络访问方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于Kubernetes的网络访问方法,其特征在于,应用于云平台,包括:
接收外部访问请求;
通过预先创建的负载均衡器确定所述外部访问请求对应的目标节点的节点信息,并基于所述目标节点的节点信息将所述外部访问请求转发至所述目标节点;其中,所述负载均衡器对应多个Kubernetes节点,所述目标节点为所述多个Kubernetes节点中的一个,所述节点信息包括节点IP地址,所述节点IP地址为Kubernetes节点的虚拟机的IP地址;
通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,并基于所述容器组信息将所述外部访问请求转发至容器组。
2.根据权利要求1所述的方法,其特征在于,通过所述负载均衡器确定所述外部访问请求对应的目标节点的节点信息,包括:
通过所述负载均衡器按照预设的分配策略为所述外部访问请求分配对应的目标节点,并确定所述目标节点的节点信息。
3.根据权利要求1所述的方法,其特征在于,通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,包括:
通过所述目标节点中创建的NodePort类型的Service中的目的地址转换模块,将所述目标节点的节点信息转换为所述容器组信息,其中,所述容器组信息包括容器组IP地址和容器端口信息。
4.根据权利要求3所述的方法,其特征在于,所述目标节点的节点信息由所述目的地址转换模块先转换为集群信息再转换为所述容器组信息,所述集群信息包括集群内部IP地址和第一端口信息,所述第一端口信息为ClusterIP类型的Service的端口信息。
5.根据权利要求1所述的方法,其特征在于,所述Kubernetes节点包括部署有Kubernetes网络的虚拟机,且在各所述Kubernetes节点中配置有NodePort类型的Service和容器组。
6.根据权利要求5所述的方法,其特征在于,所述多个Kubernetes节点作为成员被加入至所述负载均衡器中,且各所述Kubernetes节点的节点信息被存储至所述负载均衡器。
7.根据权利要求6所述的方法,其特征在于,所述节点信息还包括第二端口信息,所述第二端口信息为Kubernetes节点的所述NodePort类型的Service的端口信息。
8.一种基于Kubernetes的网络访问装置,其特征在于,配置于云平台,包括:
请求接收模块,用于接收外部访问请求;
转发模块,用于通过预先创建的负载均衡器确定所述外部访问请求对应的目标节点的节点信息,并基于所述目标节点的节点信息将所述外部访问请求转发至所述目标节点;其中,所述负载均衡器对应多个Kubernetes节点,所述目标节点为所述多个Kubernetes节点中的一个,所述节点信息包括节点IP地址,所述节点IP地址为Kubernetes节点的虚拟机的IP地址;
访问模块,用于通过所述目标节点中创建的NodePort类型的Service,根据所述节点信息确定容器组信息,并基于所述容器组信息将所述外部访问请求转发至容器组。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7中任一所述的基于Kubernetes的网络访问方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的基于Kubernetes的网络访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833133.7A CN113572838B (zh) | 2021-07-22 | 2021-07-22 | 基于Kubernetes的网络访问方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833133.7A CN113572838B (zh) | 2021-07-22 | 2021-07-22 | 基于Kubernetes的网络访问方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572838A CN113572838A (zh) | 2021-10-29 |
CN113572838B true CN113572838B (zh) | 2023-04-07 |
Family
ID=78166469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833133.7A Active CN113572838B (zh) | 2021-07-22 | 2021-07-22 | 基于Kubernetes的网络访问方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572838B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143258B (zh) * | 2021-11-22 | 2022-08-02 | 江苏博云科技股份有限公司 | 一种在Kubernetes环境下基于Open vSwitch的服务代理方法 |
CN114070637B (zh) * | 2021-11-23 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 基于属性标签的访问控制方法、系统、电子设备及存储介质 |
CN114143315A (zh) * | 2021-11-30 | 2022-03-04 | 阿里巴巴(中国)有限公司 | 边缘云系统、主机访问方法及设备 |
CN114172802B (zh) * | 2021-12-01 | 2024-04-26 | 百果园技术(新加坡)有限公司 | 容器网络配置方法、装置、计算节点、主节点及存储介质 |
CN114338832B (zh) * | 2021-12-17 | 2023-08-18 | 上海道客网络科技有限公司 | 一种容器云平台的网络协议转换方法及系统 |
CN114338820A (zh) * | 2021-12-31 | 2022-04-12 | 中国电信股份有限公司 | 网络访问方法、装置、电子设备及存储介质 |
CN114553823A (zh) * | 2022-02-28 | 2022-05-27 | 联想(北京)有限公司 | 访问控制方法和电子设备 |
CN114938394B (zh) * | 2022-04-13 | 2024-05-17 | 京东科技信息技术有限公司 | 跨集群网络控制方法、装置、设备及存储介质 |
CN115242882B (zh) * | 2022-09-20 | 2023-01-10 | 之江实验室 | 一种基于传输层路由访问k8s容器环境的方法及装置 |
CN115333993B (zh) * | 2022-10-11 | 2022-12-09 | 江苏博云科技股份有限公司 | 容器环境下自定义容器组路由的方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343963A (zh) * | 2018-10-30 | 2019-02-15 | 杭州数梦工场科技有限公司 | 一种容器集群的应用访问方法、装置及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212366B2 (en) * | 2018-12-11 | 2021-12-28 | Sap Se | Kubernetes as a distributed operating system for multitenancy/multiuser |
CN110868465A (zh) * | 2019-11-13 | 2020-03-06 | 北京浪潮数据技术有限公司 | 一种容器云的负载均衡系统及方法 |
CN111427625B (zh) * | 2020-03-23 | 2023-03-24 | 中国—东盟信息港股份有限公司 | 一种基于动态路由构建Kubernetes容器云外部负载均衡器的方法 |
CN111651523B (zh) * | 2020-05-29 | 2022-09-16 | 烽火通信科技股份有限公司 | 一种Kubernetes容器平台的MySQL数据同步方法及系统 |
-
2021
- 2021-07-22 CN CN202110833133.7A patent/CN113572838B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343963A (zh) * | 2018-10-30 | 2019-02-15 | 杭州数梦工场科技有限公司 | 一种容器集群的应用访问方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113572838A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113572838B (zh) | 基于Kubernetes的网络访问方法、装置、设备及介质 | |
CN111385369B (zh) | 一种域名服务器的分配方法和装置 | |
US10469314B2 (en) | API gateway for network policy and configuration management with public cloud | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
CN113596110B (zh) | 一种面向异构云的云原生微服务平台 | |
US9887959B2 (en) | Methods and system for allocating an IP address for an instance in a network function virtualization (NFV) system | |
JP2020129800A (ja) | 仮想ネットワークインタフェースオブジェクト | |
US10397132B2 (en) | System and method for granting virtualized network function life cycle management | |
US20240176672A1 (en) | Systems and methods providing serverless dns integration | |
JP6920472B2 (ja) | Cgnの転送・制御分離 | |
CN111212134A (zh) | 一种请求报文处理方法、装置、边缘计算系统和电子设备 | |
CN113676564B (zh) | 数据传输方法、装置及存储介质 | |
CN114172905B (zh) | 一种集群网络组网的方法、装置、计算机设备及存储介质 | |
US11489814B1 (en) | Customized domain name resolution for virtual private clouds | |
US9697173B2 (en) | DNS proxy service for multi-core platforms | |
CN111510310A (zh) | 公有云架构下的网络模式实现方法和装置 | |
CN112104640A (zh) | 网关的数据处理方法、装置、设备及可读存储介质 | |
US10785056B1 (en) | Sharing a subnet of a logically isolated network between client accounts of a provider network | |
US20170353608A1 (en) | Voice service routing system for accessibility | |
US20130254425A1 (en) | Dns forwarder for multi-core platforms | |
US20130086140A1 (en) | Cloud management system and method | |
US10904082B1 (en) | Velocity prediction for network devices | |
CN116582516B (zh) | 数据传输方法、设备、系统、介质及程序产品 | |
CN116886701A (zh) | 容器服务的访问方法、装置、设备及存储介质 | |
CN115842825A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |