CKA [Installation] – NetworkPolicy的exept, port 和portocol的使用
🧩 一、except
except
是 ipBlock
字段中的一个子字段,用于从指定的 IP 范围中排除部分子网或 IP。
📘 举例:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: example-except
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- ipBlock:
cidr: 192.168.0.0/16
except:
- 192.168.1.0/24
👉 这个规则的意思是:
允许来自
192.168.0.0/16
网段的流量访问,但 不允许来自192.168.1.0/24
的访问。
⚠️ 注意:ipBlock
只适用于 外部流量(cluster 外部 IP),不能匹配 Pod 的 ClusterIP(因为那是动态分配的)。
🧩二、ports
ports
用于限制 NetworkPolicy 允许的 端口号。
你可以在 ingress
或 egress
中定义它。
📘 举例:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: web-allow
spec:
podSelector:
matchLabels:
app: web
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 80
👉 意思是:
允许带
role=frontend
的 Pod 访问app=web
的 Pod,只能访问 TCP 80 端口。
如果访问 TCP 443 或 UDP 53,就会被拒绝。
🧩 三、protocol
protocol
指定传输层协议,默认值是 TCP
。
✅ 可选值:
TCP
UDP
SCTP
(少用)
📘 举例:
ports:
- protocol: UDP
port: 53
👉 表示允许 UDP 协议的 53 端口(通常是 DNS 流量)。
如果没有写 protocol
,Kubernetes 默认使用 TCP
。
Facebook评论