K8S 1.3中将引入的网络策略API的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Kubernetes SIG小组自去年年底以来一直频繁开会,旨在给Kubernetes添加网络策略,也收获很多进展。
很多用户都遇到过一个问题,就是Kubernetes的开放网络策略对于有些程序是不合适的,比如那些需要更精确控制流量来问访问pod或者service的程序。现在,这可能是一个只允许流量从隔壁层流过来的多层应用程序。但是随着新的云原生应用组合着微服务的产生,控制信息流量在这些service间的流动的能力变得愈发重要。
网络SIG小组努力搭建,从识别特定的需要网络隔离增强安全性的案例场景(网址)着手。正确获得这些简单使用案例的API对于工作十分重要,因为这也是更加复杂的网络协议的基础,对于Kubernetes里面的多租户来说十分重要。
从这些场景中,一些可行的办法早就想到了,最小的策略规范已经被定义好了。基础的想法就是,如果每个命名空间之间开启隔离,那么特殊pods之间的通信就需要启用特定的策略。
要快速支持这个实验的API最简单的方法就是以第三方资源拓展(ThirdPartyResource)的形式到API服务器,Kubernetes 1.2 现在已经支持了。
如果对这个运行不熟悉,Kubernetes API可以通过定义第三方资源(ThirdPartyResources)拓展,在指定的URL上创建一个新的API端点。
这样就可以创建一个API端点(每个命名空间一个):
第三方网络控制器可以在这些端点上监听,当资源被创建、修改或者删除的时候作出必要的回应。注意:kubernetes 1.3版本即将发布,网络策略API会以测试版的形式发布,那么也就没有必要像上文提到那样去创建一个第三方资源API端点了。
网络隔离默认设置下是关闭的,所以所有的pods之间正常情况下可以互相交流。然而,重点是一旦网络隔离打开,在所有的命名空间里,所有到pods的流量都会被拦截,也就是说,打开隔离将会改变你的pods的行为反应。
通过定义命名空间上的网络隔离注释来打开网络隔离,如下图所示:
只要网络隔离打开,网络协议肯定被用来做pod之间的交流。
政策规范可以应用到一个命名空间来定义政策的细节,具体如下图所示:
在这个例子中,‘tenant-a’命名空间get到‘pol 1’,如图所示。具体来说,带有段落标签‘backend’的pods会在80端口允许TCP流量在带有段落标签‘frontend’接收。
现在,Romana,OpenShift,OpenContrail和Calico都支持网络协议应用到命名空间和pods。Cisco和VMware也都在致力于这方面的实施工作。Romana和Calico最近在KubeCon证实了Kubernetes1.2的性能。你可以点击这里查看他们的presentation:Romana(视频地址:https://www.youtube.com/watch?v=f-dLKtK6qCs幻灯片地址:http://www.slideshare.net/RomanaProject/kubecon-london-2016-ronana-cloud-native-sdn),Calico(视频地址:https://www.youtube.com/watch?v=p1zfh5N4SX0幻灯片地址:http://www.slideshare.net/kubecon/kubecon-eu-2016-secure-cloudnative-networking-with-project-calico)
如何运作
每个解决方案都有各自的实施细节。目前,他们依靠的是主机执行机制,但是未来的实施也会在超级管理器上面创建应用协议,或者直接依靠网络本身。
外部协议控制软件(不同实施细节)会为pods创建或者运用新的协议,查看新的API端点。当一个event要求策略配置,收听器会识别区别,控制器会通过配置界面、运用策略来回应。下面的框架展示了一个API收听器和协议控制器如何通过主机来应用网络策略,然后回应更新。pods上面的网络界面是通过主机上一个CNI插件配置的(没有在图中展示)。
如果你因为网络隔断或者安全问题(或者两者都有)在开发程序时被绊住了,这些新的网络协议对提供你需要的control很有帮助。因为网络策略现在已经像一个API一样可得到,所以不需要等到Kubernetes1.3。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。