我们对所有 pod 有一个默认的拒绝所有出口策略,并且我们有一个如下所示的出口互联网策略
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-external-egress-internet
spec:
podSelector:
matchLabels:
egress: internet
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试在spec/podselector/matchlabels所有内容下添加多个标签。egress: internet有没有办法让这个网络策略在带有标签OR的 Pod 上实现foo:bar。
具有与标签相同的 Podfoo:bar应该是允许的,但它不是这样工作的。
您可以向 podSelector.matchLabels 添加多个键值。
请参阅https://github.com/ahmetb/kubernetes-network-policy-recipes/blob/master/10-allowing-traffic-with-multiple-selectors.md
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: redis-allow-services
spec:
podSelector:
matchLabels:
app: bookstore
role: db
ingress:
- from:
- podSelector:
matchLabels:
app: bookstore
role: search
- podSelector:
matchLabels:
app: bookstore
role: api
- podSelector:
matchLabels:
app: inventory
role: web
Run Code Online (Sandbox Code Playgroud)
这很棘手,因为matchLabels不需要多个键值对并且matchExpressions将进行 AND 运算。有两种可能的方法(解决方法):
创建另一个网络策略(以及现有的网络策略),其中matchLabels包含foo:bar.
[或者]
向两个工作负载添加一个新标签(通用)并在中使用它podSelector
| 归档时间: |
|
| 查看次数: |
7888 次 |
| 最近记录: |