https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/#the-two-sorts-of-pod-isolation
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db //这个策略是写给谁的,是针对label是db的pod做的访问限制
policyTypes: //如果该项不配置,会默认配置Ingress。
- Ingress
- Egress
ingress: // 入口流量
- from: //配置哪些可以访问(放通)
- ipBlock:
cidr: 172.17.0.0/16 //该网段允许放行
except: // 上面的地址,排除掉下面这个地址区间
- 172.17.1.0/24
- namespaceSelector: // 符合这个条件的也可以放行。 注意前面的 - ,都是from 下面具体的条件,满足其一即可。
matchLabels:
project: myproject
- podSelector: // 符合这个条件的也可以放行。注意前面的 - ,都是from下面的具体条件, 满足其一即可。
matchLabels:
role: frontend
ports: // 配置了ports,代表只能访问 上面 db 这个pod的 6379 端口,不配ports则表示没有限制
- protocol: TCP
port: 6379
egress: // 只能访问下面这些服务,限制出口
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports: // 只能访问这个端口
- protocol: TCP
port: 5978
