CN112887290B - 基于kubernetes的网络安全访问的控制方法 - Google Patents

基于kubernetes的网络安全访问的控制方法 Download PDF

Info

Publication number
CN112887290B
CN112887290B CN202110075502.0A CN202110075502A CN112887290B CN 112887290 B CN112887290 B CN 112887290B CN 202110075502 A CN202110075502 A CN 202110075502A CN 112887290 B CN112887290 B CN 112887290B
Authority
CN
China
Prior art keywords
servicerule
kubernets
pod
networkpolicy
access
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
CN202110075502.0A
Other languages
English (en)
Other versions
CN112887290A (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.)
Shenzhen Cloudtogo Innovation Technology Co ltd
Original Assignee
Shenzhen Cloudtogo Innovation 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 Shenzhen Cloudtogo Innovation Technology Co ltd filed Critical Shenzhen Cloudtogo Innovation Technology Co ltd
Priority to CN202110075502.0A priority Critical patent/CN112887290B/zh
Publication of CN112887290A publication Critical patent/CN112887290A/zh
Application granted granted Critical
Publication of CN112887290B publication Critical patent/CN112887290B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • 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

Abstract

本发明提供了一种基于kubernetes的网络安全访问的控制方法,其包括:在kubernetes上,以DaemonSet的形式部署WeaveNet,每个Pod中都包含weave‑kube和weave‑npc;通过cos‑access‑control创建Kubernetes自定义资源对象来管理NetworkPolicy的生命周期,而weave‑npc通过监听NetworkPolicy的变化来实现访问控制,采用本发明的技术方案,实现在跨地理位置、跨云服务厂商、场景下的连通和访问控制,最大限度的继承了用户使用kubernetes的使用习惯,具有更好的体验感。

Description

基于kubernetes的网络安全访问的控制方法
技术领域
本发明属于云网络技术领域,尤其涉及一种基于kubernetes的网络安全访问的控制方法。
背景技术
现阶段,在企业使用kubernetes,需要对其进行访问控制,为不同的云服务、提供商的不同服务之间提供安全可靠的访问控制是一个十分基本的需求。目前的基本解决方案是依靠kubernetes原生提供一种叫NetworkPolicy的对象,专门用来解决七层网络模型中的数据链路层和网络层访问控制的问题,然而这种方案只定义了如何制定这些策略,而它们如何用来发挥作用却还要仰仗各kubernetes网络插件的支持,而且对于不同类型的网络在支持NetworkPolicy又有各自的解法。比如通过NetworkPolicy实现跨集群访问控制pod网络由各网络插件提供的网络驱动支持,NetworkPolicy几乎全部依赖这些网络驱动来实现,而不同原理的网络驱动并不一定能实现NetworkPolicy的全部功能,而且难易程度也有所不同,即便到了今天,K8S已经发布了1.19,NetworkPolicy仍然没有被所有主流网络插件完整支持;虽然Pod网络由网络驱动实现,但Service网络却是K8S管理的,而K8S应用都是通过Service向外提供服务的,这中间的转换也会对NetworkPolicy的实现有严重的影响。
可见,公有云服务必须要具备跨多个云供应商的能力来帮助用户解除对单一云依赖,并构筑成本优势。不同的云厂商,如阿里、华为、Azure、Ucloud、AWS等提供的网络架构和网络能力是差异很大的,这就决定了我们必然会面对十分复杂并且多样的网络环境,也应该选择一种与各公云的网络架构兼容最好的网络方案。
发明内容
针对以上技术问题,本发明公开了一种基于kubernetes的网络安全访问的控制方法,实现在跨地理位置、跨云服务厂商、场景下的连通和访问控制。
对此,本发明采用的技术方案为:
一种基于kubernetes的网络安全访问的控制方法,其包括:
在kubernetes上,以DaemonSet的形式部署WeaveNet,每个Pod中都包含weave-kube和weave-npc;所述weave-kube用于构建网络,所述weave-npc为NetworkPolicyController;
WeaveNet在每台主机上创建一个bridge网桥,作为主机上所有接入weave网络的Pod的网关,不同主机的bridge网桥之间的数据流通过VxLAN协议转发,除此之外的其他数据流在主机上经过SNAT进入主机网络;
所述weave-npc通过API Server监听NetworkPolicy的变化,weave-npc并随之改变配置,所述WeaveNet在得到NetworkPolicyPeer对象后,根据其中的Selector筛选出符合条件的Pod,得到Pod的IP地址,然后在符合条件的Pod所在主机iptables的Filter表中设置规则,接受来自这些IP地址的请求。
作为本发明的进一步改进,所有请求进入主机网络时经过DNAT(DestinationNetwork Address Translation,目的地址转换),DNAT将目标地址和端口转换成Service对应的Pod及其端口;
经由Weave bridge网桥将请求转发到Pod或者另一台Node的Weave Bridge前进行一次SNAT,将源地址修改为Weave Bridge的地址;
针对每个Pod的NetworkPolicy应用到所有的Node上。
作为本发明的进一步改进,所述的基于kubernetes的网络安全访问的控制方法包括:创建kubernetes自定义资源对象,来管理NetworkPolicy的生命周期;
在创建kubernetes自定义资源对象后,创建kubernetes的资源ServiceRule,所述ServiceRule用于创建NetworkPolicy资源;
采用cos-access-control监听ServiceRule的状态,对ServiceRule进行更新并且同步到Turtle中。其中,Turtle为Cloudos在kubernetes外的服务,负责管理Cloudos各节点的元数据。其中,cos-access-control为Cloudos在集群中的服务。
作为本发明的进一步改进,所述kubernetes自定义资源对象包括NetworkPolicy的Initial、Created、Updated、Synced、Running状态。
作为本发明的进一步改进,所述cos-access-control在启动后开始监听集群中的状态,如果有新增资源,则先判断ServiceRule的状态,如果是处于Initial状态,则初始化本地和对端的ServiceRule,为其中的字段赋值;随后更改ServiceRule的状态为 Created,在此状态下,更新ServiceRule和Update ServiceRule的值并同步到Turtle;随后更改ServiceRule为synced,此时,cos-access-control根据ServiceRule各字段的值创建NetworkPolicy。
作为本发明的进一步改进,所述的基于kubernetes的网络安全访问的控制方法包括:
本发明还公开了一种电子设备,其包括:处理器、存储器以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行如上任意一项所述的基于kubernetes的网络安全访问的控制方法。
本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行如上任意一项所述的基于kubernetes的网络安全访问的控制方法。
与现有技术相比,本发明的有益效果为:
采用本发明的技术方案,实现在跨地理位置、跨云服务厂商、场景下的连通和访问控制,最大限度的继承了用户使用kubernetes的使用习惯,具有更好的体验感。
附图说明
图1是本发明实施例的从集群外访问集群内的网络拓扑图。
图2是本发明实施例的跨云服务厂商kubernetes互相访问网络拓扑图。
具体实施方式
下面对本发明的较优的实施例作进一步的详细说明。
一种基于kubernetes的网络安全访问的控制方法,其包括:使用WeaveNet作为来实现kubernetes集群的访问控制,WeaveNet在kubernetes上以DaemonSet的形式部署,每个Pod中包含两个容器,分别是weave-kube和weave-npc。前者负责构建网络,后者则是[n]etwork-[p]olicy-[c]ontroller。WeaveNet需要在每台主机上创建一个bridge网桥,作为主机上所有接入weave网络的Pod的网关,不同主机的bridge之间的数据流则会通过VxLAN协议转发,其他的数据流都会在主机上经过SNAT从而进入主机网络。从集群外访问集群内的网络拓扑图如图1所示,跨云服务厂商kubernetes互相访问网络拓扑图如图2所示。
对于NetworkPolicy,WeaveNet仅仅支持NetworkPolicyIngressRule和基于Selector的NetworkPolicyPeer,并不支持IPBlock类型的Peer。WeaveNet的实现方式和其他插件类似,通过从weave-npc通过API Server监听NetworkPolicy的变化,并随之改变配置。它在得到NetworkPolicyPeer对象后,根据其中的Selector筛选出符合条件的Pod,在得到Pod的IP地址后便可以在Pod所在主机iptables的Filter表中设置规则,接受来自这些地址的请求。
具体而言,Agentorca(Cloudos在集群中的服务)创建kubernetes自定义资源对象,该自定义资源对象的名称为namespacerules.ac.cloudos.cloudtogo.cn,此CustomResourceDefinition资源对象包括了NetworkPolicy的Initial、Created、Updated、Synced、Running这些状态,此CRD将管理NetworkPolicy的生命周期;namespacerules.ac.cloudos.cloudtogo.cn资源对象在创建之后,会创建kubernetes的资源ServiceRule,此ServiceRule将帮助我们构建NetworkPolicy资源。
cos-access-control(Cloudos在集群中的服务)监听ServiceRule的状态,对ServiceRule进行更新并且同步到Turtle;其中,Turtle为Cloudos在kubernetes外的服务,负责管理Cloudos各节点的元数据。
cos-access-control在启动后开始监听集群中的状态,如果有新增资源的话,会先判断ServiceRule的状态,如果是处于Initial状态,则初始化本地和对端的ServiceRule,为其中的字段赋值;随后更改ServiceRule的状态为 Created ,在此状态下,会更新ServiceRule和Update ServiceRule的值并同步到Turtle;随后更改ServiceRule为synced,此时,cos-access-control会根据ServiceRule各字段的值创建NetworkPolicy.
weave-npc通过API Server监听NetworkPolicy的变化,并随之改变配置。它在得到NetworkPolicyPeer对象后,根据其中的Selector筛选出符合条件的Pod,在得到Pod的IP地址后便可以在Pod所在主机iptables的Filter表中设置规则,接受来自这些地址的请求
所有请求都会在进入主机网络时经过DNAT,将目标地址和端口转换成Service对应的Pod及其端口。而在经由Weave bridge将请求转发到Pod或者另一台Node的WeaveBridge前(此时会通过隧道方式以VxLAN协议传输)会再做一次SNAT,将源地址修改为WeaveBridge的地址。
针对每个Pod的NetworkPolicy应用到所有的Node上而非仅仅在Pod所在的Node上,如同kube-proxy一样。这样,WeaveNet就可以全面支持单K8S集群的NetworkPolicy。
采用本实施例的技术方案,通过cos-access-control创建Kubernetes自定义资源对象来管理NetworkPolicy的生命周期,而weave-npc通过监听NetworkPolicy的变化来实现访问控制,实现了NetworkPolicy从初始化到创建的管理再到运行的管理,相比一般的手动创建NetworkPolicy资源对象管理起来更加智能化和自动化。
本发明实施例还公开了一种电子设备,其包括:处理器、存储器以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行如上所述的基于kubernetes的网络安全访问的控制方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行如上任意一项所述的基于kubernetes的网络安全访问的控制方法。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (5)

1.一种基于kubernetes的网络安全访问的控制方法,其特征在于,其包括:
在kubernetes上,以DaemonSet的形式部署WeaveNet,每个Pod中都包含weave-kube和weave-npc;所述weave-kube用于构建网络,所述weave-npc为NetworkPolicyController;
WeaveNet在每台主机上创建一个Weave bridge网桥,作为主机上所有接入weave网络的Pod的网关,不同主机的Weave bridge网桥之间的数据流通过VxLAN协议转发,除此之外的其他数据流在主机上经过SNAT进入主机网络;
所述weave-npc通过API Server监听NetworkPolicy的变化,并随之改变配置,所述WeaveNet在得到NetworkPolicyPeer对象后,根据其中的Selector筛选出符合条件的Pod,得到Pod的IP地址,然后在符合条件的Pod所在主机iptables的Filter表中设置规则,接受来自这些IP地址的请求;
还包括:创建kubernetes自定义资源对象,来管理NetworkPolicy的生命周期;
在创建kubernetes自定义资源对象后,创建kubernetes的资源ServiceRule,所述ServiceRule用于创建NetworkPolicy资源;
采用cos-access-control监听ServiceRule的状态,对ServiceRule进行更新并且同步到Turtle中;
所述cos-access-control在启动后开始监听集群中的状态,如果有新增资源,则先判断ServiceRule的状态,如果是处于Initial状态,则初始化本地和对端的ServiceRule,为其中的字段赋值;随后更改ServiceRule的状态为 Created ,在此状态下,更新ServiceRule和Update ServiceRule的值并同步到Turtle;随后更改ServiceRule为synced,此时,cos-access-control根据ServiceRule各字段的值创建NetworkPolicy。
2.根据权利要求1所述的基于kubernetes的网络安全访问的控制方法,其特征在于:所有请求进入主机网络时经过DNAT,DNAT将目标地址和端口转换成Service对应的Pod及其端口;
经由Weave bridge网桥将请求转发到Pod或者另一台Node的Weave Bridge网桥前进行一次SNAT,将源地址修改为Weave Bridge的地址;
针对每个Pod的NetworkPolicy应用到所有的Node上。
3.根据权利要求2所述的基于kubernetes的网络安全访问的控制方法,其特征在于:所述kubernetes自定义资源对象包括ServiceRule的Initial、Created、Updated、Synced、Running状态。
4.一种电子设备,其特征在于:其包括处理器、存储器以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行如权利要求1-3任意一项所述的基于kubernetes的网络安全访问的控制方法。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行以实现如权利要求1-3任意一项所述的基于kubernetes的网络安全访问的控制方法。
CN202110075502.0A 2021-01-20 2021-01-20 基于kubernetes的网络安全访问的控制方法 Active CN112887290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110075502.0A CN112887290B (zh) 2021-01-20 2021-01-20 基于kubernetes的网络安全访问的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110075502.0A CN112887290B (zh) 2021-01-20 2021-01-20 基于kubernetes的网络安全访问的控制方法

Publications (2)

Publication Number Publication Date
CN112887290A CN112887290A (zh) 2021-06-01
CN112887290B true CN112887290B (zh) 2022-07-15

Family

ID=76050868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110075502.0A Active CN112887290B (zh) 2021-01-20 2021-01-20 基于kubernetes的网络安全访问的控制方法

Country Status (1)

Country Link
CN (1) CN112887290B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704413B2 (en) * 2021-04-22 2023-07-18 International Business Machines Corporation Assessing latent security risks in Kubernetes cluster

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494607A (zh) * 2018-04-19 2018-09-04 云家园网络技术有限公司 基于容器的大二层网络架构的设计方法及系统
CN108833305A (zh) * 2018-07-17 2018-11-16 北京西普阳光教育科技股份有限公司 主机的虚拟网络架构

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864131A (zh) * 2017-11-03 2018-03-30 郑州云海信息技术有限公司 一种实现Kubernetes集群多租户网络隔离的方法及系统
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN111934918B (zh) * 2020-07-24 2023-07-11 北京金山云网络技术有限公司 对同一容器集群内的容器实例的网络隔离方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494607A (zh) * 2018-04-19 2018-09-04 云家园网络技术有限公司 基于容器的大二层网络架构的设计方法及系统
CN108833305A (zh) * 2018-07-17 2018-11-16 北京西普阳光教育科技股份有限公司 主机的虚拟网络架构

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DockOne微信分享(一七二):Kubernetes网络安全之访问控制技术实践;DockOne.io;《DockOne.io》;20180513;正文第1页第2段至第7页最后一段 *
在私有Kubernetes集群中实现服务的负载均衡;李翔;《电子技术与软件工程》;20200715(第14期);全文 *

Also Published As

Publication number Publication date
CN112887290A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
EP3716532B1 (en) Supporting concurrency for graph-based high level configuration models
CN110890976B (zh) 计算机网络中的动态意图保证方法和装置以及存储介质
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
CN106452857B (zh) 生成配置信息的方法和网络控制单元
EP3654584A1 (en) Network controller subclusters for distributed compute deployments
EP3716534A1 (en) Supporting near real time service level agreements
US11240152B2 (en) Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
WO2017036288A1 (zh) 一种网元升级方法及设备
US8948029B2 (en) Naming network interface cards
US10819659B2 (en) Direct replying actions in SDN switches
US9692660B2 (en) Election and use of configuration manager
BRPI0607337A2 (pt) mÉtodo, nà de borda de acesso e nà de acesso para executar agregaÇço de trÁfego de dados atravÉs de um domÍnio de acesso usando ligaÇÕes de serviÇo
JP2007193779A (ja) 改善された負荷分散及びフェイルオーバー機能のための単一論理ネットワークインタフェイス
US20110173344A1 (en) System and method of reducing intranet traffic on bottleneck links in a telecommunications network
JP4789425B2 (ja) 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム
CN114697207A (zh) 具有网络性能参数支持的边缘控制器
EP4088441A1 (en) Dhcp snooping with host mobility
US11799753B2 (en) Dynamic discovery of service nodes in a network
US20240089328A1 (en) Systems and methods for dynamic federated api generation
CN112887290B (zh) 基于kubernetes的网络安全访问的控制方法
Uddin et al. SDN-based service automation for IoT
WO2022235372A1 (en) Methods, systems, and computer readable media for platform firewall management by network function (nf) repository function (nrf) or service communications proxy (scp)
WO2018186873A1 (en) Ad hoc service switch-based control of ad hoc networking
Safdar et al. ARP Overhead Reduction Framework for Software Defined Data Centers
US11736348B2 (en) System and method for network services based functionality provisioning in a VDI environment

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