CN111796905B - 一种kubernetes容器云平台VLAN网络的实现方法及系统 - Google Patents

一种kubernetes容器云平台VLAN网络的实现方法及系统 Download PDF

Info

Publication number
CN111796905B
CN111796905B CN202010442449.9A CN202010442449A CN111796905B CN 111796905 B CN111796905 B CN 111796905B CN 202010442449 A CN202010442449 A CN 202010442449A CN 111796905 B CN111796905 B CN 111796905B
Authority
CN
China
Prior art keywords
pod
network
vlan
address
request
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
Application number
CN202010442449.9A
Other languages
English (en)
Other versions
CN111796905A (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.)
Yiqiyin Hangzhou Technology Co Ltd
China Zheshang Bank Co Ltd
Original Assignee
China Zheshang Bank 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 China Zheshang Bank Co Ltd filed Critical China Zheshang Bank Co Ltd
Priority to CN202010442449.9A priority Critical patent/CN111796905B/zh
Publication of CN111796905A publication Critical patent/CN111796905A/zh
Application granted granted Critical
Publication of CN111796905B publication Critical patent/CN111796905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明公开了一种kubernetes容器云平台VLAN网络的实现方法及系统,本发明的网络配置流程包括:kube‑apierver接收pod创建请求;kube‑scheduler为pod选择node节点;kubelet创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;multiVLAN配置共享网络空间;IP管理组件为pod分配IP地址,并返回IP地址、网关地址和子网掩码到multiVLAN;multiVLAN完成配置,启动pod网络接口,与外部建立连接。网络删除流程包括:kube‑apierver接收pod删除请求,通知pod所在node节点的kubelet删除pod;kubelet向multiVLAN发送网络删除请求;MultiVLAN收到网络删除请求后,根据pod IP向IP管理组件发送IP地址回收请求;IP管理组件释放pod IP;multiVLAN删除pod网络接口;kubelet结束pod,删除共享网络空间。本发明可在同一kubernetes集群建立多个VLAN,并可在创建pod前指定此pod所属VLAN。

Description

一种kubernetes容器云平台VLAN网络的实现方法及系统
技术领域
本发明涉及云计算技术领域,更具体地,涉及一种kubernetes容器云平台VLAN网络的实现方法及系统。
背景技术
kubernetes是一个基于容器技术的分布式架构领先方案,已成为云环境中大规模部署容器化应用程序的事实标准。pod是容器调度的最小单元,需要在各个节点之间能够相互访问。每一个pod都有一个独一无二的不会和别的节点上的pod相冲突的IP。
企业网络中广泛应用VLAN进行业务和部门划分,以实现业务隔离管理。在这样的网络基础环境中,应用kubernetes作为容器云平台,仍然需要pod能够按照VLAN网络划分,承载不同业务的pod处于不同的VLAN中。因此,要求在同一kubernetes容器云平台能够建立多个VLAN,并可在创建pod前规定此pod所处VLAN。而目前常用的calico,flannel,canal,weave等kubernetes网络方案无法在同一集群存在多个VLAN。
发明内容
本发明的目的是提供一种kubernetes容器云平台VLAN网络的实现方法及系统,以克服目前的网络方案不支持在同一kubernetes集群创建多个VLAN并为pod指定VLAN的问题。
为实现上述目的,本发明提供了如下技术方案:
一方面,本申请提出了一种kubernetes容器云平台VLAN网络系统,该系统包括至少一个master节点、至少一个node节点、etcd、IP管理组件和交换机;
所述master节点运行kube-apiserver和kube-scheduler;
所述node节点运行kubelet、multiVLAN网络插件、若干应用pod、若干VLAN子接口、若干Linux bridge、若干veth pair;
所述kube-apiserver对集群外部提供kubernetes API,pod创建和pod删除均通过调用API接口实现,在集群内部与node节点上的kubelet进程通信,管理pod;
所述kube-scheduler将新创建的pod交给选定的node节点并启动;
所述kubelet对运行在node节点上的pod进行生命周期管理,包括创建或停止pod、创建或删除共享网络空间、向multiVLAN发起网络配置请求或网络删除请求;
所述网络配置请求中携带共享网络空间名称、node节点网络接口名称和VLAN id;所述网络删除请求中携带共享网络空间名称、pod IP地址、pod网络接口名称和VLAN id;
所述multiVLAN网络插件包括网络配置模块和网络删除模块,其配置文件中包含IP管理组件的地址和pod网络接口名称;
所述网络配置模块寻找VLAN id对应的VLAN子接口和Linux bridge,创建vethpair将pod的共享网络空间和Linux bridge连接,发送IP地址分配请求到IP管理组件,若地址分配成功,则将分配的IP地址、网关地址和网络掩码配置到共享网络空间的pod网络接口,并为该pod网络接口分配MAC地址,对外发送免费ARP报文;
所述网络删除模块根据VLAN id和pod IP地址向IP管理组件发送IP地址回收请求,若地址回收成功,进入共享网络空间,删除pod网络接口对应的veth设备;
所述IP管理组件用于管理多个VLAN网络的地址分配,当收到IP地址分配请求,分配空闲IP地址并将该IP地址设为不可用,当收到IP地址回收请求,将IP地址设为可用;
所述交换机收到multiVLAN发送的免费ARP报文后,在交换机地址转发表中增加pod MAC地址和交换机端口的映射关系。
进一步地,所述master节点用于协调调度kubernetes集群中的各个node;所述node节点是实际运行业务应用负载的主机;通过keepalived+haproxy实现多个master节点的高可用部署。
进一步地,所述kube-apiserver收到pod创建请求后,根据pod创建请求的参数值来创建一个运行时的pod对象,检查pod对象的必需字段是否为空,若检查通过,则将这个对象写入etcd中;收到pod删除请求后,将pod状态设置为terminating状态。
进一步地,所述kube-scheduler通过watch机制监听到写入到etcd的pod信息,从集群中挑选满足条件的节点并对各节点打分排序,为待调度Pod选择一个最优的node节点,当kube-scheduler选定pod运行节点后将结果信息通知kube-apiserver,由kube-apiserver更新至etcd中。
进一步地,所述kubelet通过kube-apiserver监听etcd数据,同步pod列表;如发现有新的pod绑定到本节点,则创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;如发现有pod变成terminating状态,向multiVLAN发起网络删除请求,停止pod,删除共享网络空间。
进一步地,所述etcd用于kubernetes api对象数据存储和服务发现,etcd可单机部署也可集群部署,可部署在kubernetes集群内部或在外部独立部署。
进一步地,所述IP管理组件包括IP地址分配模块和IP地址回收模块,为每个VLAN维护一张子网地址分配表,记录网关地址、子网掩码和IP地址的分配情况;
所述IP地址分配模块解析IP地址分配请求中携带的VLAN id,在VLAN id对应的子网地址分配表中搜索处于可用状态的IP地址,搜索成功后,将该IP地址设置不可用状态;
所述IP地址回收模块解析IP地址回收请求中携带的pod IP地址和VLAN id,在VLAN id对应的子网地址分配表中,将该IP设置为可用状态。
进一步地,所述交换机为三层交换机,可提供不同VLAN间通信,可在交换机上配置不同VLAN的IP子网及网络掩码、网关地址,可以处理不同VLAN的pod之间的通信。
另一方面,本申请提出一种kubernetes容器云平台VLAN网络系统的实现方法,包括网络配置流程和网络删除流程。
该方法的网络配置流程包括:
kube-apierver接收pod创建请求;
kube-scheduler为pod选择node节点;
kubelet创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;
multiVLAN配置共享网络空间:multiVLAN寻找VLAN id对应的VLAN子接口和Linuxbridge,创建veth pair将pod的共享网络空间和Linux bridge连接,发送IP地址分配请求到IP管理组件;
IP管理组件为pod分配IP地址,并返回IP地址、网关地址和子网掩码到multiVLAN;
multiVLAN完成配置,启动pod网络接口,与外部建立连接。
该方法的网络删除流程包括:
kube-apierver接收pod删除请求,通知pod所在node节点的kubelet删除pod;
kubelet向multiVLAN发送网络删除请求;
MultiVLAN收到网络删除请求后,根据pod IP向IP管理组件发送IP地址回收请求;
IP管理组件释放pod IP;
multiVLAN删除pod网络接口;
kubelet结束pod,删除共享网络空间。
本发明提供的一种kubernetes容器云平台VLAN网络的实现方法及系统,可在同一kubernetes集群建立多个VLAN,并可在创建pod前指定此pod所属VLAN。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的kubernetes容器云平台VLAN网络系统的一种结构示意图;
图2为本申请实施例提供的kubernetes容器云平台VLAN网络方法的网络配置流程图。
图3为本申请实施例提供的kubernetes容器云平台VLAN网络方法的网络删除流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本申请实施例提供的kubernetes容器云平台VLAN网络系统的一种结构示意图,该系统包括至少一个master节点、至少一个node节点、etcd、IP管理组件、三层交换机。其中,master节点运行着kube-apiserver和kube-scheduler;node节点运行着kubelet、multiVLAN网络插件、若干应用pod、若干VLAN子接口、若干Linux bridge、若干veth pair。
所述master节点是kubernetes集群的大脑,用以协调调度集群中的各个node。所述node节点是实际运行业务应用负载的主机。优选的,可以通过keepalived+haproxy实现多个master节点的高可用部署。
所述kube-apiserver是master节点的组件之一,对集群外部提供kubernetesAPI,pod创建和pod删除均可通过调用API接口实现,在集群内部与node节点上的kubelet进程通信,管理pod。
所述kube-apiserver收到pod创建请求后,会根据pod创建请求的参数值来创建一个运行时的pod对象,检查pod对象的必需字段例如apiVersion、kind、spec以及metadata中annotation中携带的VLAN id等字段是否为空。若检查通过,则将这个对象写入etcd中;收到pod删除请求后,将pod状态设置为terminating状态。
所述kube-scheduler是master节点的组件之一,将新创建的pod交给选定的一个node节点并启动。
所述kube-scheduler通过watch机制监听到写入到etcd的pod信息,从集群中挑选满足条件的节点并对各个节点打分排序,为待调度Pod选择一个最优的node节点来运行它,当kube-scheduler选定pod运行节点之后将结果信息通知kube-apiserver,由kube-apiserver更新至etcd中。
所述kubelet是node节点的组件之一,与master节点的kube-apiserver通信,作为master节点管理node节点的代理,对运行在该node节点上的pod进行生命周期管理。
所述kubelet通过kube-apiserver监听etcd数据,同步pod列表。如果发现有新的pod绑定到本节点,则按照pod清单要求创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;如果发现有pod变成terminating状态,向multiVLAN发起网络删除请求,停止pod,删除共享网络空间。
所述etcd是CoreOS推出的高可用的键值存储系统,用于kubernetes api对象数据存储和服务发现,etcd可单机部署也可集群部署,可部署在kubernetes集群内部或在外部独立部署。
所述multiVLAN是符合kubernetes容器网络规范CNI的自定义网络插件,当创建pod时,通过IP管理组件为pod分配IP地址,进行网络配置;当删除pod时,通过IP管理组件回收IP地址,删除网络配置。
所述multiVLAN网络插件包括网络配置模块和网络删除模块,自身配置文件中包含IP管理组件的地址和pod网络接口名称。
所述网络配置模块,用于处理收到的网络配置请求,解析网络配置请求中携带的共享网络空间名称、node节点网络接口名称和VLAN id,读取multiVLAN配置文件中IP管理组件的地址和pod网络接口名称。首先根据VLAN id判断node节点是否存在与VLAN id对应的VLAN子接口和Linux bridge,若不存在则创建VLAN子接口和Linux bridge,并将VLAN子接口加入Linux bridge;再根据pod网络接口名称创建veth pair,一端加入共享网络空间,另一端加入Linux bridge;然后发送IP地址分配请求到IP管理组件,若地址分配成功,则将分配的IP地址、网关地址和网络掩码配置到共享网络空间的pod网络接口,并为该pod网络接口分配MAC地址,对外发送免费ARP报文。
所述网络删除模块,用于处理收到的网络删除请求,解析网络删除请求中携带的共享网络空间名称、pod IP地址、pod网络接口名称和VLAN id,读取multiVLAN配置文件中IP管理组件的地址。首先根据VLAN id和pod IP地址向IP管理组件发送IP地址回收请求,若地址回收成功,进入共享网络空间,删除pod网络接口对应的veth设备。
所述IP管理组件可管理多个VLAN网络的地址分配,当收到IP地址分配请求后,分配空闲IP地址并将该IP地址设为不可用,当收到IP地址回收请求后,将IP地址设为可用。
所述IP管理组件包括IP地址分配模块和IP地址回收模块,为每个VLAN维护一张子网地址分配表,记录着网关地址、子网掩码和IP地址的分配情况。
所述IP地址分配模块收到IP地址分配请求后,解析IP地址分配请求中携带的VLANid,首先在VLAN id对应的子网地址分配表中搜索处于可用状态的IP地址,搜索成功后,将该IP地址设置不可用状态。
所述IP地址回收模块收到IP地址回收请求后,解析IP地址回收请求中携带的podIP地址和VLAN id,在VLAN id对应的子网地址分配表中,将该IP设置为可用状态。
所述pod是kubernetes资源调度最小单元,pod中可包含多个容器,各容器共享网络空间,共享IP地址和端口号,容器间可以通过localhost互相通信。
所述VLAN子接口是将单个物理接口划分为多个逻辑接口,逻辑接口支持IEEE802.1Q,可处理带有VLAN标签的数据包。
所述Linux bridge是工作于二层的虚拟网络设备,功能类似于物理的交换机。
所述veth pair是Linux中一种虚拟网络设备,成对出现,用于将pod的共享网络空间和Linux bridge连接,pod之间则可以通过Linux bridge进行通信。
所述三层交换机,可提供不同VLAN间通信,可在交换机上配置不同VLAN的IP子网及网络掩码、网关地址。处于不同VLAN的pod进行通信时需要经过网关。
本申请提供的kubernetes容器云平台VLAN网络的实现方法包括网络配置流程和网络删除流程。
如图2所示,图2为本发明实施例提供的kubernetes容器云平台VLAN网络实现方法中网络配置流程的一种实现流程图,可以包括:
步骤S21:kube-apierver接收pod创建请求。
用户提交pod创建请求,pod创建请求可通过kubectl命令行或kubernetes API发送给kube-apiserver,kube-apiserver收到pod创建请求后,根据pod创建请求的参数值来创建一个运行时的pod对象,检查pod对象的必需字段例如apiVersion、kind、spec以及metadata中annotation中携带的VLAN id等字段是否为空。若检查通过,则将这个对象写入etcd中。
步骤S22:kube-scheduler为pod选择node节点。
kube-scheduler定时监听etcd的pod信息,从集群中挑选满足条件的节点并对各个节点打分排序,为待调度Pod选择一个最优的node节点来运行它,当kube-scheduler选定pod运行节点之后将结果信息通知kube-apiserver,由kube-apiserver更新至etcd中。
步骤S23:kubelet创建共享网络空间,向multiVLAN发起网络配置请求。
kubelet与master节点的kube-apiserver通信,通过kube-apiserver监听etcd数据,同步pod列表。如果发现有新的pod绑定到本节点,则按照pod清单要求创建pod,创建共享网络空间,向multiVLAN发起网络配置请求。网络配置请求中携带共享网络空间名称、node节点网络接口名称和VLAN id。
步骤S24:multiVLAN配置共享网络空间。
multiVLAN网络配置模块收到网络配置请求后,根据网络配置请求中VLAN id判断node节点是否存在与VLAN id对应的VLAN子接口和Linux bridge,若不存在则创建VLAN子接口和Linux bridge,并将VLAN子接口加入Linux Bridge;例如请求中携带的VLAN id为100,node节点网络接口名称为ens0,则调用Linux网络命令创建VLAN子接口ens0.100和网桥brens0.100,若VLAN子接口和网桥已存在,则跳过此步骤。
然后,根据网络配置请求中解析的共享网络空间名称和配置文件中读取的pod网络接口名称,调用Linux网络命令创建veth pair,一端加入共享网络空间,另一端加入Linux Bridge。例如pod网络接口名称eth0,共享网络空间名称ns1,则创建veth pair设备,veth一端名称为eth0,veth另一端名称为ns1-brens0.100,将eth0加入共享网络空间ns1,将ns1-brens0.100加入网桥brens0.100。
再发送IP地址分配请求到IP管理组件,IP地址分配请求中携带VLAN id。
步骤S25:IP管理组件为pod分配IP地址。
IP管理组件为每个VLAN维护一张子网地址分配表,记录着网关地址、子网掩码和IP地址的分配情况。在IP管理组件IP地址分配模块收到IP地址分配请求后,首先在VLAN id对应的子网地址分配表中搜索处于可用状态的IP地址,搜索成功后,将该IP地址设置不可用状态,并返回此IP地址、网关地址和子网掩码到multiVLAN网络配置模块。
步骤S26:multiVLAN完成配置,启动pod网络接口,与外部建立连接。
multiVLAN网络配置模块获取pod IP地址、网关地址和子网掩码后,调用Linuxnet库函数分配MAC地址,再将以上信息配置到pod网络接口,并启用pod网络接口,通过此接口发送免费ARP报文。
三层交换机接收到multiVLAN发送的免费ARP报文,学习到pod的MAC地址与交换机端口的对应关系。三层交换机可以处理不同VLAN的pod之间的通信。
如图3所示,图3为本发明实施例提供的kubernetes容器云平台VLAN网络实现方法中网络删除流程的一种实现流程图,可以包括:
步骤S31:kube-apierver接收pod删除请求。
用户提交pod删除请求,kube-apiserver收到来自kubectl命令行或kubernetesAPI的pod删除请求后,将pod状态设置为terminating状态。
步骤S32:kubelet向multiVLAN网络删除模块发送pod删除请求。
kubelet同kube-apiserver通信发现有pod变成terminating状态,向multiVLAN网络删除模块发送网络删除请求,请求中携带pod IP地址、共享网络空间名称、pod网络接口名称和VLAN id。
MultiVLAN网络删除模块收到网络删除请求后,向IP管理组件IP地址回收模块发送IP地址回收请求,请求中包括pod IP地址和VLAN id。
步骤S33:IP管理IP地址回收模块释放pod IP。
IP管理组件组件IP地址回收模块收到IP地址回收请求后,解析请求中的pod IP地址和VLAN id,在VLAN id对应的子网地址分配表中,将该IP地址设置为可用状态。
步骤S34:multiVLAN网络删除模块清除网络配置。
在成功释放pod IP后,multiVLAN网络删除模块根据网络删除请求中的共享网络空间名称、pod网络接口名称,删除共享网络空间和Linux Bridge之间的veth pair设备,通过删除共享网络空间这一端的veth设备,即pod网络接口,由于veth设备成对出现,则连接对端Linux bridge的veth设备也同时被删除。
此步骤中,不删除与VLAN id对应的VLAN子接口和Linux bridge。
步骤S35:kubelet结束pod,删除共享网络空间。
kubelet向pod容器发送term进程终止信号,删除共享网络空间,请求kube-apiserver删除此pod对象。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (10)

1.一种kubernetes容器云平台VLAN网络系统,其特征在于,包括至少一个master节点、至少一个node节点、etcd、IP管理组件和交换机;
所述master节点运行kube-apiserver和kube-scheduler;
所述node节点运行kubelet、multiVLAN网络插件、若干应用pod、若干VLAN子接口、若干Linux bridge、若干veth pair;
所述kube-apiserver对集群外部提供kubernetes API,pod创建和pod删除均通过调用API接口实现,在集群内部与node节点上的kubelet进程通信,管理pod;
所述kube-scheduler将新创建的pod交给选定的node节点并启动;
所述kubelet对运行在node节点上的pod进行生命周期管理,包括创建或停止pod、创建或删除共享网络空间、向multiVLAN发起网络配置请求或网络删除请求;
所述网络配置请求中携带共享网络空间名称、node节点网络接口名称和VLAN id;所述网络删除请求中携带共享网络空间名称、pod IP地址、pod网络接口名称和VLAN id;
所述multiVLAN网络插件包括网络配置模块和网络删除模块,其配置文件中包含IP管理组件的地址和pod网络接口名称;
所述网络配置模块寻找VLAN id对应的VLAN子接口和Linux bridge,创建veth pair将pod的共享网络空间和Linux bridge连接,发送IP地址分配请求到IP管理组件,若地址分配成功,则将分配的IP地址、网关地址和网络掩码配置到共享网络空间的pod网络接口,并为该pod网络接口分配MAC地址,对外发送免费ARP报文;
所述网络删除模块根据VLAN id和pod IP地址向IP管理组件发送IP地址回收请求,若地址回收成功,进入共享网络空间,删除pod网络接口对应的veth设备;
所述IP管理组件用于管理多个VLAN网络的地址分配,当收到IP地址分配请求,分配空闲IP地址并将该IP地址设为不可用,当收到IP地址回收请求,将IP地址设为可用;
所述交换机收到multiVLAN发送的免费ARP报文后,在交换机地址转发表中增加podMAC地址和交换机端口的映射关系。
2.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述master节点用于协调调度kubernetes集群中的各个node;所述node节点是实际运行业务应用负载的主机;通过keepalived+haproxy实现多个master节点的高可用部署。
3.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述kube-apiserver收到pod创建请求后,根据pod创建请求的参数值来创建一个运行时的pod对象,检查pod对象的必需字段是否为空,若检查通过,则将这个对象写入etcd中;收到pod删除请求后,将pod状态设置为terminating状态。
4.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述kube-scheduler通过watch机制监听到写入到etcd的pod信息,从集群中挑选满足条件的节点并对各节点打分排序,为待调度pod 选择一个最优的node节点,当kube-scheduler选定pod运行节点后将结果信息通知kube-apiserver,由kube-apiserver更新至etcd中。
5.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述kubelet通过kube-apiserver监听etcd数据,同步pod列表;如发现有新的pod绑定到本节点,则创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;如发现有pod变成terminating状态,向multiVLAN发起网络删除请求,停止pod,删除共享网络空间。
6.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述etcd用于kubernetes API 对象数据存储和服务发现,etcd可单机部署也可集群部署,可部署在kubernetes集群内部或在外部独立部署。
7.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述IP管理组件包括IP地址分配模块和IP地址回收模块,为每个VLAN维护一张子网地址分配表,记录网关地址、子网掩码和IP地址的分配情况;
所述IP地址分配模块解析IP地址分配请求中携带的VLAN id,在VLAN id对应的子网地址分配表中搜索处于可用状态的IP地址,搜索成功后,将该IP地址设置不可用状态;
所述IP地址回收模块解析IP地址回收请求中携带的pod IP地址和VLAN id,在VLAN id对应的子网地址分配表中,将该IP设置为可用状态。
8.根据权利要求1所述的一种kubernetes容器云平台VLAN网络系统,其特征在于,所述交换机为三层交换机,可提供不同VLAN间通信,可在交换机上配置不同VLAN的IP子网及网络掩码、网关地址,可以处理不同VLAN的pod之间的通信。
9.一种权利要求1-8任一项所述kubernetes容器云平台VLAN网络系统的实现方法,其特征在于,该方法的网络配置流程包括:
kube-apis erver接收pod创建请求;
kube-scheduler为pod选择node节点;
kubelet创建pod,创建共享网络空间,向multiVLAN发起网络配置请求;
multiVLAN配置共享网络空间:multiVLAN寻找VLAN id对应的VLAN子接口和Linuxbridge,创建veth pair将pod的共享网络空间和Linux bridge连接,发送IP地址分配请求到IP管理组件;
IP管理组件为pod分配IP地址,并返回IP地址、网关地址和子网掩码到multiVLAN;
multiVLAN完成配置,启动pod网络接口,与外部建立连接。
10.一种权利要求1-8任一项所述kubernetes容器云平台VLAN网络系统的实现方法,其特征在于,该方法的网络删除流程包括:
kube-apis erver接收pod删除请求,通知pod所在node节点的kubelet删除pod;
kubelet向multiVLAN发送网络删除请求;
multiVLAN 收到网络删除请求后,根据pod IP向IP管理组件发送IP地址回收请求;
IP管理组件释放pod IP;
multiVLAN删除pod网络接口;
kubelet结束pod,删除共享网络空间。
CN202010442449.9A 2020-05-22 2020-05-22 一种kubernetes容器云平台VLAN网络的实现方法及系统 Active CN111796905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010442449.9A CN111796905B (zh) 2020-05-22 2020-05-22 一种kubernetes容器云平台VLAN网络的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010442449.9A CN111796905B (zh) 2020-05-22 2020-05-22 一种kubernetes容器云平台VLAN网络的实现方法及系统

Publications (2)

Publication Number Publication Date
CN111796905A CN111796905A (zh) 2020-10-20
CN111796905B true CN111796905B (zh) 2021-04-16

Family

ID=72806208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010442449.9A Active CN111796905B (zh) 2020-05-22 2020-05-22 一种kubernetes容器云平台VLAN网络的实现方法及系统

Country Status (1)

Country Link
CN (1) CN111796905B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112291094B (zh) * 2020-10-30 2022-07-15 康键信息技术(深圳)有限公司 容器网络管理方法、装置、设备及存储介质
CN112751913A (zh) * 2020-12-22 2021-05-04 联奕科技股份有限公司 一种跨Kubernetes集群的网络通信方法及系统
CN112910685B (zh) * 2021-01-13 2022-04-01 新华三大数据技术有限公司 实现对容器网络统一管理的方法及装置
CN113766042A (zh) * 2021-01-20 2021-12-07 北京沃东天骏信息技术有限公司 一种容器地址的配置方法、系统、装置、设备及介质
CN113220422B (zh) * 2021-06-03 2022-09-30 上海天旦网络科技发展有限公司 基于K8s中CNI插件的运行时修改Pod网络接口的方法及系统
CN113726859A (zh) * 2021-08-13 2021-11-30 浪潮电子信息产业股份有限公司 一种istio流量重定向方法、装置、设备及存储介质
CN114070822B (zh) * 2021-11-17 2022-10-14 江苏博云科技股份有限公司 一种Kubernetes Overlay IP地址管理方法
WO2023098645A1 (zh) * 2021-12-01 2023-06-08 百果园技术(新加坡)有限公司 容器网络配置方法、装置、计算节点、主节点及存储介质
CN114650223A (zh) * 2022-04-01 2022-06-21 明阳产业技术研究院(沈阳)有限公司 一种Kubernetes集群的网络配置方法、装置及电子设备
CN115314353B (zh) * 2022-08-10 2023-09-19 中电云数智科技有限公司 一种基于kubernetes实现单pod多网卡的装置和方法
CN115460075A (zh) * 2022-09-14 2022-12-09 深圳前海环融联易信息科技服务有限公司 基于云原生的多网络模式实现方法、装置、设备及介质
CN115834529B (zh) * 2022-11-23 2023-08-08 浪潮智慧科技有限公司 一种边缘设备远程监测方法及系统
CN116614363B (zh) * 2023-07-19 2023-09-22 明阳时创(北京)科技有限公司 一种cncp平台快速构建方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897946B (zh) * 2016-04-08 2019-04-26 北京搜狐新媒体信息技术有限公司 一种访问地址的获取方法及系统
CN109962940B (zh) * 2017-12-14 2023-10-03 绍兴数智科技有限公司 一种基于云平台的虚拟化实例调度系统及调度方法
CN110430259B (zh) * 2018-04-16 2020-12-01 腾讯科技(深圳)有限公司 数据服务系统、服务器和计算机可读存储介质
CN108829384A (zh) * 2018-06-13 2018-11-16 平安科技(深圳)有限公司 容器的管理方法、装置、计算机设备及存储介质
CN108989091B (zh) * 2018-06-22 2022-02-11 杭州才云科技有限公司 基于Kubernetes网络的租户网络隔离方法、存储介质、电子设备
CN109104305A (zh) * 2018-07-26 2018-12-28 广东浪潮大数据研究有限公司 一种节点增加方法及相关装置
CN108924268B (zh) * 2018-09-11 2021-05-25 网宿科技股份有限公司 一种容器云服务系统及pod创建方法、装置
CN110635987B (zh) * 2019-09-09 2021-11-02 新华三信息安全技术有限公司 一种报文传输方法、装置、设备及机器可读存储介质
CN110750332A (zh) * 2019-10-23 2020-02-04 广西梯度科技有限公司 一种在Kubernetes中Pod设置静态IP的方法
CN111124604B (zh) * 2019-12-05 2023-07-14 北京金山云网络技术有限公司 分配容器组pod IP地址的方法、装置、设备及存储介质
CN111176788B (zh) * 2019-12-24 2023-08-25 优刻得科技股份有限公司 Kubernetes集群的主节点的部署方法及系统
CN111162941B (zh) * 2019-12-26 2023-04-07 浪潮云信息技术股份公司 一种Kubernetes环境自动化管理虚拟IP的方法

Also Published As

Publication number Publication date
CN111796905A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
CN111796905B (zh) 一种kubernetes容器云平台VLAN网络的实现方法及系统
US10666609B2 (en) Management of domain name systems in a large-scale processing environment
CN107733670B (zh) 一种转发策略配置方法和装置
US9999030B2 (en) Resource provisioning method
CN109995641B (zh) 一种信息处理方法、计算节点和存储介质
CN110266833B (zh) Ip地址管理方法及边缘集群
CN111857873A (zh) 一种实现云原生容器网络的方法
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
CN112398687B (zh) 云计算网络的配置方法、云计算网络系统以及存储介质
CN114237812A (zh) 容器网络管理系统
EP2731313A1 (en) Distributed cluster processing system and message processing method thereof
CN111756830A (zh) 公有云网络的内网负载均衡实现方法
CN106878480B (zh) 一种dhcp服务进程共享方法及装置
WO2019233061A1 (zh) 一种三层交换机的路由资源控制方法及系统
CN111277674A (zh) 跨网络元件管理地址空间
CN115314353B (zh) 一种基于kubernetes实现单pod多网卡的装置和方法
CN110366056B (zh) 一种ason业务模型的实现方法、装置、设备及存储介质
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
CN104734930B (zh) Vlan接入vf网络的实现方法及装置、fcf
CN101710864A (zh) 一种多网口Linux服务器的配置方法及装置
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
CN114710549A (zh) 一种容器平台中网卡的动态管理方法、系统及业务节点
CN112929206B (zh) 一种云网环境下云物理机配置的方法与装置
CN108271149B (zh) 一种用户数据锚点迁移的方法、设备和系统
CN110008006B (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

Effective date of registration: 20220601

Address after: No. 1788, Hongning Road, Xiaoshan District, Hangzhou, Zhejiang 311200

Patentee after: CHINA ZHESHANG BANK Co.,Ltd.

Patentee after: Yiqiyin (Hangzhou) Technology Co., Ltd

Address before: No. 1788, Hongning Road, Xiaoshan District, Hangzhou, Zhejiang 311200

Patentee before: CHINA ZHESHANG BANK Co.,Ltd.

TR01 Transfer of patent right