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
就算是,暂时还没有设定