《Kubernetes网络权威指南》读书笔记 | Kubernetes网络策略:为你的应用保驾护航

书籍来源:《Kubernetes网络权威指南:基础、原理与实践》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:《Kubernetes网络权威指南》读书笔记 | 汇总_COCOgsta的博客-CSDN博客


默认情况下,Kubernetes底层网络是“全连通”的,即在同一集群内运行的所有Pod都可以自由通信。但是也支持用户根据实际需求以不同方式限制集群内Pod的连接。Kubernetes的解决方案是Network Policy,即网络策略。

网络策略就是基于Pod源IP的访问控制列表,限制的是Pod之间的访问。通过定义网络策略,用户可以根据标签、IP范围和端口号的任意组合限制Pod的入站/出站流量。

Kubernetes的网络策略采用了比较严格的单向流控制,即假如允许服务A访问服务B,反过来服务B并不一定能访问服务A。这与Docker内置的Network命令实现的隔离有很大不同。

3.8.1 网络策略应用举例

如果拒绝所有流量进入,例如图3-24所示的场景。

图3-24 拒绝所有流量进入的网络策略场景

那么Network Policy对象应该定义成:

如果限制部分流量进入,例如图3-25所示的场景。

图3-25 限制部分流量进入的网络策略场景

那么,Network Policy对象应该定义成:

如果只允许特定namespace的Pod流量进入,例如图3-26所示的场景。

图3-26 只允许特定namespace的Pod流量进入的网络策略场景

那么Network Policy对象应该定义成:

如果限制流量从指定端口进入,例如图3-27所示的场景。

图3-27 限制流量从指定端口进入的网络策略场景

那么,Network Policy对象应该定义成:

再举一个同时限定入站(Ingress)和出站(Egress)的例子:

该例子的效果如下:default namespace下Labels包含role=db的Pod,都会被隔绝,它们只能建立满足Network Policy的Ingress和Egress描述的连接。即:

(1)所有属于172.17.0.0/16网段的IP,除了172.17.1.0/24中的IP,其他的都可以与上述Pod的6379端口建立TCP连接。

(2)所有包含project=myproject Labels的namespace中的Pod可以与上述Pod的6379端口建立TCP连接。

(3)所有default namespace下的包含role=frontend Labels的Pod可以与上述Pod的6379端口建立TCP连接。

(4)允许上述Pod访问网段为10.0.0.0/24的目的IP的5978端口。

Kubernetes网络策略与一些安全组(例如Neutron的安全组)的区别。一般来说,安全组的规则记录在上层网关,而不是每一个节点上。而Network Policy agent一般通过Kubernetes DaemonSet实现每个节点上都有一个部署。

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值