NetworkPolicy 网络策略
如果想要正常使用 NetworkPolicy 对象,则集群的网路插件必须要支持该功能
使用 NetworkPolicy 对象来定义网络策略(注意:该定义的网络策略只能适用于某个 namesapce 下的 Pod,可以在 metadata 中定义生效的 namespace)
一个网络策略中包含两中类型的规则,规则用于控制数据流量(Traffic),
ingress # 入口(入站)规则,列出所选择的 Pod,把入口规则应用其上
- port,定义允许还是拒绝哪些端口,ingress 规则中为,从外面来的可以从自己哪个端口进来
from # ingress 定义 from(目标过来的规则,即从哪来的可以入)
ipBlock # 定义从哪来的 IP 段可以进来
- except # 定义完 ipBlock 后,定义 IP 段内的某些事不能进来
namespaceSelector # 定义来自哪些 namesapce 的可以进来
podSelector # 定义来自哪些 Pod 的可以进来
egress # 出口(出站)规则,列出所选择的 Pod,把出口规则应用其上
- port,定义允许还是拒绝哪些端口,egress 规则中,到哪的端口可以出去
to # egress 定义 to(到目标的规则,即到哪的可以出)
ipBlock # 定义到哪的 IP 段可以出去
- except # 定义完 ipBlock 后,定义 IP 段内的某些事不能出去
namespaceSelector # 定义到哪些 namesapce 的可以出去
podSelector # 定义到哪些 Pod 的可以出去
规则说明
若不定义该规则,则默认全部允许
若定义了规则,那么规则默认拒绝,定义了哪些(ip、namespace、pod)那么定义的这些就允许
若定义的规则且内容为{},说明全部允许
对 Pod1 使用入站规则设定 Pod2 不能进,那么 Pod2 无法 ping 通 Pod1,但是 Pod1 可以 ping 通 pod2
注意:出入规则为单向限制,仅对请求报文限制,响应报文不做限制。比如,对我使用入站规则禁止你 ping 我,但是我依然可以 ping 你,但是到某 IP 还是可以的,除非禁用了到那些 IP 的 Pod,那么就不能出也不能进了。该策略跟那种限制了出和入其中一个就都不行的不一样
网络策略中还包括规则的生效范围、(即把规则应用于 Pod 上和定义两个规则是否生效)。
podSelector # 通过标签选择器,选择出把该策略的规则应用于哪些 Pod 上(默认为{}空,则对所有 Pod 生效)
policyTypes # 列出网络策略涉及的规则类型。列出哪个规则,哪个规则生效,生效后默认拒绝所有,需要再定义规则以便允许,如果不定义规则那么什么都访问不了;如果两个规则都没列出,那么后面定义了哪个规则,则哪个规则生效。
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.