资讯专栏INFORMATION COLUMN

K8S 1.3中将引入网络策略API

魏宪会 / 2719人阅读

摘要:在网络管理上目前为止是最为缺失的一个环节,但这将在中有极大的改变。今天这篇帖子是由小组撰写,描述中将加入网络策略关于安全隔离多租户。小组自去年年底以来一直频繁开会,旨在给添加网络策略,也收获很多进展。

Kubernetes在网络管理上目前为止是最为缺失的一个环节,但这将在1.3中有极大的改变。今天这篇帖子是由Network-SIG(Kubernetes Special Interest Groups)小组撰写,描述Kubernetes1.3中将加入网络策略API —— 关于安全、隔离、多租户。

Kubernetes SIG小组自去年年底以来一直频繁开会,旨在给Kubernetes添加网络策略,也收获很多进展。

很多用户都遇到过一个问题,就是Kubernetes的开放网络策略对于有些程序是不合适的,比如那些需要更精确控制流量来问访问pod或者service的程序。现在,这可能是一个只允许流量从隔壁层流过来的多层应用程序。但是随着新的云原生应用组合着微服务的产生,控制信息流量在这些service间的流动的能力变得愈发重要。

在大多数的IaaS环境(无论公有还是私有),这种控制能力都是通过虚拟机加入一个“安全组”获得,在这个组里面流动到每个成员的流量是通过网络策略或者ACL(Access Control List)来定义,并且由一个网络包过滤器执行。

网络SIG小组努力搭建,从识别特定的需要网络隔离增强安全性的案例场景(网址)着手。正确获得这些简单使用案例的API对于工作十分重要,因为这也是更加复杂的网络协议的基础,对于Kubernetes里面的多租户来说十分重要。

从这些场景中,一些可行的办法早就想到了,最小的策略规范已经被定义好了。基础的想法就是,如果每个命名空间之间开启隔离,那么特殊pods之间的通信就需要启用特定的策略。

要快速支持这个实验的API最简单的方法就是以第三方资源拓展(ThirdPartyResource)的形式到API服务器,Kubernetes 1.2 现在已经支持了。

如果对这个运行不熟悉,Kubernetes API可以通过定义第三方资源(ThirdPartyResources)拓展,在指定的URL上创建一个新的API端点。

这样就可以创建一个API端点(每个命名空间一个):

第三方网络控制器可以在这些端点上监听,当资源被创建、修改或者删除的时候作出必要的回应。注意:kubernetes 1.3版本即将发布,网络策略API会以测试版的形式发布,那么也就没有必要像上文提到那样去创建一个第三方资源API端点了。

网络隔离默认设置下是关闭的,所以所有的pods之间正常情况下可以互相交流。然而,重点是一旦网络隔离打开,在所有的命名空间里,所有到pods的流量都会被拦截,也就是说,打开隔离将会改变你的pods的行为反应。

通过定义命名空间上的网络隔离注释来打开网络隔离,如下图所示:

在这个例子中,‘tenant-a’命名空间get到‘pol 1’,如图所示。具体来说,带有段落标签‘backend’的pods会在80端口允许TCP流量在带有段落标签‘frontend’接收。

现在,Romana,OpenShift,OpenContrail和Calico都支持网络协议应用到命名空间和pods。Cisco和VMware也都在致力于这方面的实施工作。Romana和Calico最近在KubeCon证实了Kubernetes1.2的性能。你可以点击这里查看他们的presentation:Romana(视频地址:点我 幻灯片地址:点我),Calico(视频地址:点我 幻灯片地址:点我)

如何运作

每个解决方案都有各自的实施细节。目前,他们依靠的是主机执行机制,但是未来的实施也会在超级管理器上面创建应用协议,或者直接依靠网络本身。

外部协议控制软件(不同实施细节)会为pods创建或者运用新的协议,查看新的API端点。当一个event要求策略配置,收听器会识别区别,控制器会通过配置界面、运用策略来回应。下面的框架展示了一个API收听器和协议控制器如何通过主机来应用网络策略,然后回应更新。pods上面的网络界面是通过主机上一个CNI插件配置的(没有在图中展示)。

如果你因为网络隔断或者安全问题(或者两者都有)在开发程序时被绊住了,这些新的网络协议对提供你需要的control很有帮助。因为网络策略现在已经像一个API一样可得到,所以不需要等到Kubernetes1.3。

原文链接

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32456.html

相关文章

  • Kubernetes集群中的高性能网络策略

    摘要:自从月份发布以来,用户已经能够在其集群中定义和实施网络策略。吞吐量即以测量的数据传输速度和延迟完成请求的时间是网络性能的常用度量。文章网络延迟和比较的网络方案已经检查了运行覆盖网络对吞吐量和延迟的性能影响。 自从7月份发布Kubernetes 1.3以来,用户已经能够在其集群中定义和实施网络策略。这些策略是防火墙规则,用于指定允许流入和流出的数据类型。如果需要,Kubernetes可以...

    U2FsdGVkX1x 评论0 收藏0
  • Kubernetes集群中的高性能网络策略

    摘要:自从月份发布以来,用户已经能够在其集群中定义和实施网络策略。吞吐量即以测量的数据传输速度和延迟完成请求的时间是网络性能的常用度量。文章网络延迟和比较的网络方案已经检查了运行覆盖网络对吞吐量和延迟的性能影响。 自从7月份发布Kubernetes 1.3以来,用户已经能够在其集群中定义和实施网络策略。这些策略是防火墙规则,用于指定允许流入和流出的数据类型。如果需要,Kubernetes可以...

    tanglijun 评论0 收藏0
  • “千万”并发:Kubernetes 1.2v 开启谷歌级别性能之旅

    摘要:随着发布,现在能支持个节点的集群即千万请求秒,附带对大多数操作尾部这段延迟降低。的千万并发令人乍舌三个月后,将会再次带来倍的提升。 随着Kubernetes1.2v发布,K8S现在能支持1000个节点的集群(即1千万请求/秒),附带对大多数API操作(99%尾部这段)延迟降低80%。这意味着在最近的6个月内,K8S支持的容量增加了10倍同时还保证用户使用感受——99%pod启动时间少于...

    awkj 评论0 收藏0
  • kubernetes 1.3 current and future

    摘要:执行该初始化任务的容器被成为初始化容器。目前,有等状态。网络身份的维护主要通过稳定的和来维护,他们通过的配置文件指定。若其操作导致最小可用数低于应用要求,则操作会被拒绝。 本文讨论 K8S 1.3 的一些新功能,以及正在进行中的功能。读者应该对 kubernetes 的基本结构已经有所了解。 支持更多类型的应用 1、Init container Init container 是1.3 ...

    entner 评论0 收藏0
  • Rancher v1.2震撼发布:更优秀的全栈化容器部署与管理平台

    摘要:模版用户可以选择不同的基础设施服务组成模版同时还是有默认的主要模版,用户可以快速创建用户也可以把的项目放到模版中,来管理和部署增强已经大大简化了管理和配置,在多节点部署中和已经被去掉了。请保持关注,和一起走上伟岸光明的容器之路 开篇第一句,先为Rancher v1.2曾经的跳票深深抱歉(鞠躬)。我们补偿的方式,就是在此日、此刻,用新版功能向你证明Rancher v1.2值得你的等待。R...

    NervosNetwork 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<