k8s防火墙networkPolicy,的核心是“自己”

k8s防火墙的核心是“自己”

这个“自己”,包括两层含义

1. “我”是哪个名称空间的

2. “我”是这个名称空间的哪些pod

设置防火墙

选择好核心之后

是允许哪些流量来访问我,就是ingress  from,

从哪进来的,你是谁?

1. 从哪个端口进来的,就设置ports,

具体port包括端口号和协议号,比如tcp/80

2. 从哪个名称空间进来的,就设置namespaceSelector,

具体名称空间用其标签指定

matchLabels:

     key: value

3. 从哪些ip来的,就设置ipBlock

具体指定ip,是

cidr: xxx.xxx.xx.x/24     # classless inter-domain routing  无类域间路由

except: 

- xxx.xxx.xx.x/32      # 允许某个网段,但除了这个ip

4. 从哪些标签的pod来的,就设置podSelector

具体指定pod,是

matchLabels:

     key: value      # pod 的标签

如果要指定多个标签的pod,用

matchExpressions:

  -  operator:  In  (NotIn  Exists  DoesNotExsit)  # operator,接线员

     key: xx

     values:

     -  xxx

     -  xxx

Expressions的值是一个数组

数组中可以有多个元素

每个元素的属性包括operator/key/value

value的值,是一个数组

数组中可以有多个元素

代表

同一个key,可以对应多个values

比如

app:  hello

app:  good

就用

- operator:

  key: app

  values:

  - hello

  - good

表示

防火墙策略,设置允许去访问哪些目标

也是从这个四个关键字筛选

egress

- to:

...

...

...

------------------------------------------------------------------------------

k8s的防火墙,考虑如何配置,就是从“自己”出发,去看待流量的流向

然后用参数进行设定

ingress和egress模块,启用之后

写了规则的,是允许进入和出去的流量

没写的,默认为,不让

比如,

启用了ingress

然后说明了,让什么样的流量ingress

那么,没有说明的,就是不让ingress

如果

没有启用ingress策略模块

启用了egress模块

就是管管

什么流量可以出去

关于

什么样的流量

可以来访问

这个名称空间的这些pod

就算是,暂时还没有设定

 

 

你可能感兴趣的:(kubernetes,linux,网络)