当前,我有一个GlobalNetworkPolicy'default-deny'来限制群集中的所有流量,所有ingress / egress都设置为all()拒绝。
我尝试使用'order'允许某些标签pod的例外。 如果我未指定“操作”参数以允许所有通信,则该策略有效。 尽管如下所示,当我在allow内指定参数时,pod不允许出口流量。
apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
name: allow-pod-ingress
spec:
order: 50
selector: name == 'egresspod'
types:
- Egress
ingress:
- action: Allow
protocol: TCP
source:
selector: some-pod-label == 'some-pod-label-value'
destination:
ports:
- 80
此政策配置正确吗?
答案 0 :(得分:0)
类型:必须符合规格。您已将其设置为“出口”,而您定义了入口规则。
如果您希望egresspod接受端口80上的入站流量,请尝试将类型更改为Ingress。 (如果您想实现相反的目标,则将两者都更改为Egress。)
apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
name: allow-pod-ingress
spec:
order: 50
selector: name == 'egresspod'
types:
- Ingress #Has to match
ingress: # With this guy.
- action: Allow
protocol: TCP
source:
selector: some-pod-label == 'some-pod-label-value'
destination:
ports:
- 80
有关更多信息,请检查以下页面:https://docs.projectcalico.org/v3.7/reference/calicoctl/resources/globalnetworkpolicy