apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
# 用于定义改网络策略作用的Pod范围 ,例如role=db
podSelector:
matchLabels:
role: db
# 网络策略的类型
policyTypes:
- Ingress
- Egress
# Ingress 定义允许访问目标Pod的入站白名单规则 满足条件的哭护短才能访问ports定义的目标Pod端口号
ingress:
# 对符合条件的客户端Pod进行网络放行,规则包括基于客户端Pod的Label、基于客户端Pod所在的Namespace的Label或者客户端IP范围
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject
- podSelector:
matchLabels:
role: frontend
# - ports:允许访问的目标Pod监听的端口号
ports:
- protocol: TCP
port: 6379
#定义目标Pod允许访问的“出站”白名单规则,目标Pod仅允许访问满足to条件的服务端IP范围和ports定义的端口号
egress:
#允许访问的服务端信息,可以基于服务端Pod的Label、基于服务端Pod所在的Namespace的Label或者服务端IP范围
- to:
- ipBlock:
cidr: 10.0.0.0/24
# 允许访问的服务端的端口号
ports:
- protocol: TCP
port: 5978
说明:
- 网络策略作用域
Namespace "default"
中 所有Label 包含role=db
的Pod
- 允许与目标Pod在同一个Namespace中的所有Label包含
role=frontend
的客户端Pod访问目标Pod
- 允许数据包含
project=myproject
Label的Namespace客户端Pod访问目标Pod
- 允许从IP地址范围
172.17.0.0/16
的客户端Pod访问目标Pod,但是不包括IP地址范围172.17.1.0/24
的客户端
- 允许目标Pod访问IP地址值范围
”10.0.0.0/24“
并监听5978端口服务
网友评论