CN111510515B - 一种区分混合应用环境的容器的方法及装置 - Google Patents
一种区分混合应用环境的容器的方法及装置 Download PDFInfo
- Publication number
- CN111510515B CN111510515B CN202010266073.0A CN202010266073A CN111510515B CN 111510515 B CN111510515 B CN 111510515B CN 202010266073 A CN202010266073 A CN 202010266073A CN 111510515 B CN111510515 B CN 111510515B
- Authority
- CN
- China
- Prior art keywords
- address translation
- network address
- cluster
- container
- central network
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2532—Clique of NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种区分混合应用环境的容器的方法及装置,方法包括:从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器;将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点;利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。本申请提供的方法至少解决了现有技术中由于K8S集群内多个容器共用一个IP而导致K8S集群外部很难通过单一的IP来明确发自集群内的访问流量到底来自哪个容器的问题。
Description
技术领域
本申请属于容器网络技术领域,具体地讲,涉及一种区分混合应用环境的容器的方法及装置。
背景技术
Kubernetes(以下简称K8S)使用Container Network Interface(以下简称容器网络接口)作为容器网络的事实标准。容器网络接口作为标准,对于所有Kubernetes容器网络插件的实现,提出了三个基本的核心约束,即包括:容器它们看自己的IP和外界看它们的IP一致,容器与容器之间的网络通信不需要借助网络地址转换(即NAT)技术,容器与容器所在集群节点间的网络通信不需要借助NAT技术。这三条规则更多的是在描述K8S集群内的容器网络通信的场景并对Kubernetes容器网络插件加以约束,无论是K8S集群内的容器,还是集群内的节点,其IP都是在K8S集群范围内。
而对于与集群外的通信,则需要借助NAT技术(NAT是常用方案,因为就常规数据中心而言,或者就一般公有云环境而言,IP是受管控的;因此像容器这样弹性的资源,其对IP的需求也是弹性的,这种弹性对IP管控带来了挑战。因此,一般也无法使用路由的方式来打通)。因为通常而言,K8S集群的容器会被从私有的虚拟网络中分配IP,而这种IP在K8S集群外是无法直接访问到的,因此一样要在K8S集群的节点上做NAT。对于K8S集群内的容器主动访问集群外节点的场景,一般而言,容器会在宿主节点上通过NAT技术,借助集群的计算节点IP对外发起通信。而对于K8S集群外部访问K8S集群内部容器的情况,K8S提供了hostNetwork以及NodePort等方式来对四层访问提供支持,而对于七层访问则提供了Ingress来提供支持。无论是NodePort还是Ingress的方式,都包含了NAT技术在其中;hostNetwork则因为是的容器可以直接宿主节点的端口,而不需要NAT技术,但相应的也引入了端口局限性。
对于容器集群与集群外部的四层网络通信而言,无论是容器访问集群外部,还是集群外部通过NodePort方式访问集群内部,所借助的NAT技术必然会引入一个问题,即K8S集群是在使用少量的高度重复利用的IP来为来自不同namespace的容器做地址转换。这就意味着,集群外部很难通过单一的IP来明确发起自集群内的流量到底来自哪个namespace,来自哪个租户,这就为网络安全性提出了挑战。因此,对于容器集群内的容器与容器集群外部是通过四层进行网络通信,在安全要求较高的场景下(例如集群外部对于访问其的IP有类似黑白名单的限制时)K8S集群或容器网络接口需要提供一种机制使得容器的IP能够被区别,以区分来自不同namespace的容器流量。
发明内容
本申请提供了一种区分混合应用环境的容器的方法及装置,以至少解决现有技术中由于K8S集群内多个容器共用一个IP而导致K8S集群外部很难通过单一的IP来明确发自集群内的访问流量到底来自哪个容器的问题。
根据本申请的一个方面,提供了一种区分混合应用环境的容器的方法,包括:
从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP;
将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点;
利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
在一实施例中,区分混合应用环境的容器的方法还包括:
当中央网络地址转换节点的eIP发生漂移时,通过keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息通过更新service的annotation使Kubernetes集群中各节点上的组件通过watch的方式获得。
在一实施例中,将集群内部的容器发出的用于主动访问集群外部的请求流量汇流到中央网络地址转换节点,包括:
当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将请求流量重新定向到中央网络地址转换节点上的OpenvSwitch网桥端口;
将请求流量的目的以太网地址修改为OpenvSwitch网桥端口的以太网地址。
在一实施例中,将集群内部的容器发出的用于主动访问集群外部的请求流量汇流到中央网络地址转换节点,还包括:
当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为中央网络地址转换节点。
根据本申请的另一个方面,还提供了一种区分混合应用环境的容器的装置,包括:
选择部署单元,用于从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP;
汇流单元,用于将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点;
对外访问单元,用于利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
在一实施例中,区分混合应用环境的容器的装置还包括:
漂移处理单元,用于当中央网络地址转换节点的eIP发生漂移时,通过keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息通过更新service的annotation使Kubernetes集群中各节点上的组件通过watch的方式获得。
在一实施例中,汇流单元包括:
第一修改模块,用于当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将请求流量重新定向到中央网络地址转换节点上的OpenvSwitch网桥端口;
以太网地址修改模块,用于将请求流量的目的以太网地址修改为OpenvSwitch网桥端口的以太网地址。
在一实施例中,汇流单元包括:
策略路由配置模块,用于当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为中央网络地址转换节点。
本申请提供的方法使得在K8S集群中的容器与集群外部是以网络四层进行通信时,管理员可以为不同的service来分配集群外部可识别可访问的IP做为service的externalIPs(eIP)。借由这些eIP,无论K8S集群的容器是被集群外部访问还是主动访问集群外部,集群外部都可以借助eIP来甄别不同的service后面的容器,以达到相应的安全的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种区分混合应用环境的容器的方法流程图。
图2为本申请实施例中将请求流量汇流到中央网络地址转换节点的方法流程图。
图3为本申请提供的一种区分混合应用环境的容器的装置的结构框图。
图4为本申请实施例中一种汇流单元的结构框图。
图5为本申请实施例中另一种汇流单元的结构框图。
图6为本申请实施例中提供的一种电子设备的具体实施方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于背景技术中提及的现有技术所存在的问题,本申请提供了一种区分混合应用环境的容器的方法,如图1所示,包括:
S101:从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP。
K8S的service(服务)本身具有了externalIPs这一属性,用于将访问到集群节点上的以externalIPs中罗列的IP(以下简称eIP)为目的IP的流量通过NAT技术处理为以service的流量,并且eIP一般是集群外部可以识别的并且可以直接访问的IP。这个属性可以用于解决集群外部通过不同的IP来区分集群内不同的service,但是eIP需要管理员通过手动添加将IP配置到集群的节点上,并且考虑IP的高可用性也变成了管理员的责任。
在一具体实施例中,可以通过以daemonSets(守护集)的方式配合labelSelectors(标签选择器)来选择一组K8S集群的计算节点来部署一组keepalived容器,其只负责对eIP进行管理,而对于eIP到service后的Pod的NAT及负载均衡转发功能,则继续由K8S本身提供。一组keepalived容器将导致eIP只会在keepalived容器所部署的K8S节点上被绑定以及切换,换句话说eIP将只能被这些计算节点提供,可以称这些节点为Centralized NAT(即CNAT,中央网络地址转换)节点。多个CNAT节点在同一个时间将只有一个处于工作状态(即在对外提供eIP),因此来自集群外部的请求流量将只能在这个处于工作状态的节点借由eIP经NAT处理进入集群(即service后面的Pod收到的请求源IP为CNAT节点上的某个IP)。
S102:将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点。
在一具体实施例中,为了便于追踪来自集群内部的向外访问请求流量具体来自哪个容器,当K8S集群内部的服务在主动访问集群外部时,也应当将对外访问的请求流量先转发到CNAT节点上,再借助eIP经NAT处理离开集群。
S103:利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
在一实施例中,区分混合应用环境的容器的方法还包括:
当中央网络地址转换节点的eIP发生漂移时,通过keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息向Kubernetes集群中各节点进行广播。
在一具体实施例中,考虑到keepalived容器提供了eIP的高可用性,这就意味着eIP会发生漂移,处于工作状态的CNAT节点也会发生轮换,那么对应的,重定向到CNAT节点的过程就会受到影响。因为CNAT节点并不是一个固定的节点,当发生切换时,所有关于CNAT节点的配置信息,无论是OVS(OpenvSwitch)流表中OVS端口的以太网地址,还是Calico中策略路由中默认路由的下一跳都会发生变化,因此需要机制来进行属性。对此keepalived容器需要做一些额外的操作,当eIP发生漂移时,处于Master状态的keepavlied容器需要获取相应的当前CNAT节点的信息,并且通过K8S API将这些信息更新到挂在eIP的service的annotations中。而各个节点上的kube-proxy将负责根据service的annotations的变化来更新对应的OVS流表或者策略路由。
在实际操作中,需要为K8S替换实现了前述技术的CNI插件。管理员需要将若干计算节点分组作为CNAT节点,并且为这些CNAT节点分别部署不同组的keepalived容器,由这些keepalived容器来负责eIP的挂载。之后由管理员或者K8S服务提供方,在eIP分配不存在冲突的情况下,将eIP分配给需要的租户使用,租户可以将eIP添加到需要的serviceexternalIPs属性下。
在一实施例中,将集群内部的容器发出的用于主动访问集群外部的请求流量汇流到中央网络地址转换节点,如图2所示,包括:
S201:当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将请求流量重新定向到中央网络地址转换节点上的OpenvSwitch网桥端口。
在一具体实施例中,当Kubernetes使用基于OpenvSwitch(OVS)实现的CNI时,可以通过修改OVS的流表规则,使得来自集群内容器的访问集群外部的请求流量被重定向到CNAT节点上的节点接入OVS网桥的端口。
S202:将请求流量的目的以太网地址修改为OpenvSwitch网桥端口的以太网地址。
在一具体实施例中,由于请求流量是被重定向的,因此数据包的目的以太网地址需要被修改为目标OVS网桥端口的以太网地址。
在一实施例中,将集群内部的容器发出的用于主动访问集群外部的请求流量汇流到中央网络地址转换节点,还包括:
当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为中央网络地址转换节点。
在一具体实施例中,对于以Calico为例基于路由实现的CNI,可以通过配置策略路由,修改配置eIP的service后面的容器的默认路由为CNAT节点,从而使得容器访问集群外部的请求流量被重定向到CNAT节点上。
基于同一发明构思,本申请实施例还提供了一种区分混合应用环境的容器的装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该区分混合应用环境的容器的装置解决问题的原理与区分混合应用环境的容器的方法相似,因此区分混合应用环境的容器的装置的实施可以参见区分混合应用环境的容器的方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的***较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图3所示,本申请提供了一种区分混合应用环境的容器的装置,包括:
选择部署单元301,用于从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP;
汇流单元302,用于将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点;
对外访问单元303,用于利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
在一实施例中,区分混合应用环境的容器的装置还包括:
漂移处理单元,用于当中央网络地址转换节点的eIP发生漂移时,通过keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息向Kubernetes集群中各节点进行广播。
在一实施例中,如图4所示,汇流单元302包括:
第一修改模块401,用于当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将请求流量重新定向到中央网络地址转换节点上的OpenvSwitch网桥端口;
以太网地址修改模块402,用于将请求流量的目的以太网地址修改为OpenvSwitch网桥端口的以太网地址。
在一实施例中,如图5所示,汇流单元302包括:
策略路由配置模块501,用于当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为中央网络地址转换节点。
通过本申请提供的方法及装置,在K8S集群中的容器与集群外部是以网络四层进行通信时,管理员可以为不同的service来分配集群外部可识别可访问的IP做为service的externalIPs。借由这些eIP,无论K8S集群的容器是被集群外部访问还是主动访问集群外部,集群外部都可以借助eIP来甄别不同的service后面的容器,以达到相应的安全的目的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图6,所述电子设备具体包括如下内容:
处理器(processor)601、内存602、通信接口(Communications Interface)603、总线604和非易失性存储器605;
其中,所述处理器601、内存602、通信接口603通过所述总线604完成相互间的通信;
所述处理器601用于调用所述内存602和非易失性存储器605中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP。
S102:将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点。
S103:利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:从Kubernetes集群中筛选中央网络地址转换节点,并在中央网络地址转换节点上部署keepalived容器,keepalived容器用于管理中央网络地址转换节点的eIP。
S102:将Kubernetes集群内部的容器发出的因主动访问集群外部产生的请求流量汇流到中央网络地址转换节点。
S103:利用中央网络地址转换节点的eIP及网络地址转换方法控制Kubernetes集群内部的容器经由中央网络地址转换节点对集群外部进行访问。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (8)
1.一种区分混合应用环境的容器的方法,其特征在于,包括:
从Kubernetes集群中筛选中央网络地址转换节点,并在所述中央网络地址转换节点上部署keepalived容器,所述keepalived容器用于管理所述中央网络地址转换节点的eIP;
将所述Kubernetes集群内部的容器发出的因主动访问所述集群外部产生的请求流量汇流到所述中央网络地址转换节点;
利用所述中央网络地址转换节点的eIP及网络地址转换方法控制所述Kubernetes集群内部的容器经由所述中央网络地址转换节点对所述集群外部进行访问;
所述的区分混合应用环境的容器的方法还包括:
当所述中央网络地址转换节点的eIP发生漂移时,通过所述keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息通过更新service的annotation使所述Kubernetes集群中各节点上的组件通过watch的方式获得。
2.根据权利要求1所述的区分混合应用环境的容器的方法,其特征在于,所述将所述Kubernetes集群内部的容器发出的因主动访问所述集群外部产生的请求流量汇流到所述中央网络地址转换节点,包括:
当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将所述请求流量重新定向到所述中央网络地址转换节点上的OpenvSwitch网桥端口;
将所述请求流量的目的以太网地址修改为所述OpenvSwitch网桥端口的以太网地址。
3.根据权利要求1所述的区分混合应用环境的容器的方法,其特征在于,所述将所述Kubernetes集群内部的容器发出的因主动访问所述集群外部产生的请求流量汇流到所述中央网络地址转换节点,还包括:
当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为所述中央网络地址转换节点。
4.一种区分混合应用环境的容器的装置,其特征在于,包括:
选择部署单元,用于从Kubernetes集群中筛选中央网络地址转换节点,并在所述中央网络地址转换节点上部署keepalived容器,所述keepalived容器用于管理所述中央网络地址转换节点的eIP;
汇流单元,用于将所述Kubernetes集群内部的容器发出的因主动访问所述集群外部产生的请求流量汇流到所述中央网络地址转换节点;
对外访问单元,用于利用所述中央网络地址转换节点的eIP及网络地址转换方法控制所述Kubernetes集群内部的容器经由所述中央网络地址转换节点对所述集群外部进行访问;
区分混合应用环境的容器的装置还包括:
漂移处理单元,用于当所述中央网络地址转换节点的eIP发生漂移时,通过所述keepalived容器获取当前中央网络地址转换节点的信息并将当前中央网络地址转换节点的信息通过更新service的annotation使所述Kubernetes集群中各节点上的组件通过watch的方式获得。
5.根据权利要求4所述的区分混合应用环境的容器的装置,其特征在于,所述汇流单元包括:
第一修改模块,用于当Kubernetes使用基于OpenvSwitch实现的容器网络接口标准时,通过修改OpenvSwitch的流表规则将所述请求流量重新定向到所述中央网络地址转换节点上的OpenvSwitch网桥端口;
以太网地址修改模块,用于将所述请求流量的目的以太网地址修改为所述OpenvSwitch网桥端口的以太网地址。
6.根据权利要求4所述的区分混合应用环境的容器的装置,其特征在于,所述汇流单元包括:
策略路由配置模块,用于当Kubernetes使用基于路由实现的容器网络接口标准时,通过配置策略路由将配置有eIP的服务所属的集群内部的容器路由修改为所述中央网络地址转换节点。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至3中任意一项所述区分混合应用环境的容器的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至3中任一项所述区分混合应用环境的容器的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266073.0A CN111510515B (zh) | 2020-04-07 | 2020-04-07 | 一种区分混合应用环境的容器的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266073.0A CN111510515B (zh) | 2020-04-07 | 2020-04-07 | 一种区分混合应用环境的容器的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510515A CN111510515A (zh) | 2020-08-07 |
CN111510515B true CN111510515B (zh) | 2022-09-09 |
Family
ID=71864062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010266073.0A Active CN111510515B (zh) | 2020-04-07 | 2020-04-07 | 一种区分混合应用环境的容器的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510515B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112738181B (zh) * | 2020-12-24 | 2022-07-19 | 新浪网技术(中国)有限公司 | 集群外部ip接入的方法、装置及服务器 |
CN112764886B (zh) * | 2021-01-29 | 2024-06-25 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN112637037B (zh) * | 2021-03-10 | 2021-06-18 | 北京瑞莱智慧科技有限公司 | 跨地域容器通讯***、方法、存储介质及计算机设备 |
CN113342468B (zh) * | 2021-06-23 | 2023-08-08 | 山石网科通信技术股份有限公司 | 容器数据处理方法及装置 |
CN113726859B (zh) * | 2021-08-13 | 2024-05-31 | 广东浪潮智慧计算技术有限公司 | 一种istio流量重定向方法、装置、设备及存储介质 |
CN114553823A (zh) * | 2022-02-28 | 2022-05-27 | 联想(北京)有限公司 | 访问控制方法和电子设备 |
CN114697290B (zh) * | 2022-03-16 | 2024-06-25 | 浪潮云信息技术股份公司 | 一种利用流表实现vip的浮动ip功能的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750332A (zh) * | 2019-10-23 | 2020-02-04 | 广西梯度科技有限公司 | 一种在Kubernetes中Pod设置静态IP的方法 |
KR20200027783A (ko) * | 2018-09-05 | 2020-03-13 | 주식회사 나눔기술 | 분산 지능모듈의 통합관리 시스템 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106067858B (zh) * | 2016-05-24 | 2019-02-15 | 中国联合网络通信集团有限公司 | 容器间的通信方法、装置及*** |
CN108737584A (zh) * | 2017-04-19 | 2018-11-02 | ***通信集团山西有限公司 | 容器服务的访问方法、网络地址的解析方法、装置和*** |
CN108810013B (zh) * | 2018-07-02 | 2021-12-24 | 上海浪潮云计算服务有限公司 | 一种基于容器的服务访问方法 |
CN109032760A (zh) * | 2018-08-01 | 2018-12-18 | 北京百度网讯科技有限公司 | 用于部署应用的方法和装置 |
US10728145B2 (en) * | 2018-08-30 | 2020-07-28 | Juniper Networks, Inc. | Multiple virtual network interface support for virtual execution elements |
-
2020
- 2020-04-07 CN CN202010266073.0A patent/CN111510515B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200027783A (ko) * | 2018-09-05 | 2020-03-13 | 주식회사 나눔기술 | 분산 지능모듈의 통합관리 시스템 |
CN110750332A (zh) * | 2019-10-23 | 2020-02-04 | 广西梯度科技有限公司 | 一种在Kubernetes中Pod设置静态IP的方法 |
Non-Patent Citations (2)
Title |
---|
Kubernetes高可用集群的部署实践;盛乐标等;《电脑知识与技术》;20180915(第26期);全文 * |
云环境下基于Kubernetes集群***的容器网络研究与优化;刘渊等;《信息网络安全》;20200310(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111510515A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510515B (zh) | 一种区分混合应用环境的容器的方法及装置 | |
US11658936B2 (en) | Resizing virtual private networks in provider network environments | |
US20220377045A1 (en) | Network virtualization of containers in computing systems | |
US10666609B2 (en) | Management of domain name systems in a large-scale processing environment | |
US9999030B2 (en) | Resource provisioning method | |
US9965317B2 (en) | Location-aware virtual service provisioning in a hybrid cloud environment | |
US10355940B2 (en) | Compiler for and method of software defined networking, storage and compute performing operations | |
US10411989B2 (en) | Compiler for and method of software defined networking, storage and compute determining physical and virtual resources | |
CN106464528B (zh) | 用于通信网络中的无接触编配的方法、介质、及装置 | |
US11153194B2 (en) | Control plane isolation for software defined network routing services | |
US10630508B2 (en) | Dynamic customer VLAN identifiers in a telecommunications network | |
US20180034714A1 (en) | Cross-domain orchestration of switch and service functions | |
US9344360B2 (en) | Technique for managing an allocation of a VLAN | |
CN111447146B (zh) | 物理路由信息的动态更新方法、装置、设备和存储介质 | |
US10122578B1 (en) | Configuration propagation deployment policy | |
CN112655185B (zh) | 软件定义网络中的服务分配的设备、方法和存储介质 | |
US20240179070A1 (en) | Implementing defined service policies in a third-party container cluster | |
Liffredo | Analysis and Benchmarking of Kubernetes Networking | |
US20240179071A1 (en) | Network controller as a service (ncaas) to define network policies for third-party container clusters | |
CN107769983B (zh) | 一种基于扩展vSDN的网络功能共享方法及*** | |
Cain et al. | Microsoft System Center Building a Virtualized Network Solution | |
WO2024148026A1 (en) | Router affinity in software defined wide area network(s) | |
CN114390101A (zh) | 一种基于BGP组网的Kubernetes负载均衡方法 | |
CN118118447A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220907 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Patentee after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Patentee before: CHINA CONSTRUCTION BANK Corp. Patentee before: Jianxin Financial Science and Technology Co.,Ltd. |