一、NetworkPolicy YAML
kubectl explain NetworkPolicy.spec
字段 | 值类型 | 说明 |
---|---|---|
egress |
[]Object |
出网规则 |
ingress |
[]Object |
入网规则 |
podSelector |
Object |
pod 选择器 |
policyTypes |
[]string |
要被限制的策略,默认["ingress", "egress"]
|
kubectl explain NetworkPolicy.spec.ingress
字段 | 值类型 | 说明 |
---|---|---|
from |
[]Object |
资源来源限制ipBlock : 对 ip 的策略cidr : 允许的 CIDR 范围except : 不允许的 CIDR 范围namespaceSelector : 命名空间选择器podSelector : pod 选择器 |
ports |
[]Object |
可被访问的端口列表。 在 egress 中是出站流量目的地的端口列表 |
示例:
default
命名空间下的标签为 role: db
的 pod 们。
ingress
规则为:允许进入命名空间标签为 project: myproject
的且 ip 范围在 172.17.0.0/16
的且 pod
标签为 role: frontend
的 pod
们中
egress
规则为:default
命名空间下 ip 范围是 10.0.0.0/24
的 pod
们可以使用 TPC 5978
端口
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector: # 限制的 pod 选择器
matchLabels:
role: db
policyTypes: # 限制的策略
- Ingress
- Egress
ingress: # 入网限制
- from:
- ipBlock:
cidr: 172.17.0.0/16 # 允许的 CIDR
except: # 拒绝的 CIDR
- 172.17.1.0/24
- namespaceSelector:
matchLabels:
project: myproject # 给有 project: myproject 这个标签命名空间的资源做限制
- podSelector:
matchLabels:
role: frontend # 给有 role: frontend 这个标签的 pod 做限制
ports: # 可访问的端口列表
- protocol: TCP
port: 6379
egress: # 出网限制
- to:
- ipBlock:
cidr: 10.0.0.0/24 # 允许出去的 CIDR
ports: # 出网目的地的端口列表
- protocol: TCP
port: 5978
网友评论