|NO.Z.00410|——————————|CloudNative|——|KuberNetes&NetworkPolicy.V02|——|NetworkPolicy.v02|配置详解.v02|

一、NetworkPolicy配置文件注释
### --- NetworkPolicy配置文件注释

~~~     配置在default命名空间下;匹配的标签是role等于db
~~~     隔离default命名空间下具有role等于db的这些标签的pod
~~~     又配置了一些ingress和egress的策略
~~~     # ingress下:IPblock:允许IP地址范围为:
~~~     172.187.0.0/16网络的IP可以访问role等于db的这些pod;
~~~     当然要排除掉:172.17.1.0/24这个网段的
~~~     同时也允许命名空间project等于myproject这个标签的
~~~     命名空间下所有的pod可以访问role等于db的容器
~~~     # 最后又匹配了一个podselector:
~~~     也就是和这个网络策略在同一命名空间下的符合role等于Frontend的这个pod去访问role等于db的这个容器;
~~~     限制只能访问容器的6379端口
~~~     最后限制了role等于db这个容器的出口;
~~~     只能访问default命名空间下符合role等于db的这些pod
~~~     只能访问网段在10.0.0.0/24网段且端口号是5978的服务;
~~~     若是出口不符合这2个策略才可以访问
二、NetworkPolicy配置详解注释二
~~~     # podSelector:
~~~     表示该策略对哪些Pod生效。示例中配置的是role=db,
~~~     代表该策略应用于该NetworkPolicy所在的Namespace(NetworkPolicy具有Namespace隔离性)
~~~     下符合role=db的Pod上。如果该选项为空,则对该Namespace下所有的Pod生效。
### --- 和其它资源一样,NetworkPolicy也需要apiVersion、kind和metadata字段,

~~~     配置方法和其它资源类似,对于NetworkPolicy的策略配置,
~~~     从Spec开始,下面对每个字段进行讲解:
~~~     # policyTypes:
~~~     网络策略的类型。目前网络策略支持入站(Ingress)和出站(Egress)的规则配置,
~~~     出站代表符合podSelector规则的Pod的出口流量限制,
~~~     入站是其它Pod对符合podSelector规则的Pod的访问流量限制。
~~~     如果未指定policyTypes,则默认为Ingress,如果未指定policyTypes,
~~~     且有出口规则的话,也会配置Egress。
~~~     # ingress:
~~~     如policyTypes所述,Ingress是对入口流量的管控。
~~~     每个NetworkPolicy可以包含一个Ingress白名单列表,
~~~     每个规则都允许匹配from和ports部分的流量。
~~~     其中from表示访问来源,可以配置为ipBlock、namespaceSelector、podSelector,
~~~     如果此项为空则表示匹配所有来源。
~~~     另外一个ports表示可被访问的端口列表,如果此项为空则表示匹配所有端口。
~~~     # egress:
~~~     如policyTypes所述,Egress是对出口流量的管控。
~~~     同样,NetworkPolicy可以包含一个Egress白名单列表,
~~~     不同的是Egress的可配置参数为to和ports。
~~~     其中ports表示可以访问的目标端口,to表示可以访问的目的,
~~~     也可以配置为ipBlock、namespaceSelector、podSelector。
~~~     # namespaceSelector:
~~~     匹配具有指定标签的Namespace下的所有Pod。
~~~     当前示例的ingress的from参数配置了namespaceSelector,
~~~     表示匹配具有project=myproject标签的Namespace下的所有Pod。
~~~     # ipBlock:
~~~     表示匹配的IP块,可以是单个IP,也可以是网段,同时也支持IPV6格式。
~~~     Except为可选参数,表示从IPBlock排除一些地址。
### --- 根据上述的概念,就可以知道上面示例的含义如下:

~~~     隔离default命名空间下具有role=db标签的Pod;
~~~     允许IP地址范围为172.17.0.0172.17.0.255172.17.2.0172.17.255.255
~~~     访问default命名空间下具有role=db的Pod的6379且协议为TCP的端口;
~~~     允许具有project=myproject的Namespace下的所有Pod
~~~     访问default命名空间下具有role=db的Pod的6379且协议为TCP的端口;
~~~     允许default命名空间(和NetworkPolicy同一命名空间)
~~~     下具有role=frontend标签的Pod访问default命名空间下
~~~     具有role=db的Pod的6379且协议为TCP的端口;
~~~     允许带有role=db标签的Pod可以访问10.0.0.0/24网段下的5978且协议为TCP的端口

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(27)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示