Kubernetes入口网络策略按预期工作,出口阻塞所有流量
我已经在EKS上安装了印花布 我有两个名称空间,foo和bar,都标有“purpose”标签,每个名称空间都包含一个apppod 当我将以下仅入口策略导入foo名称空间时,它完全按照预期工作;其他测试吊舱无法连接到foo应用程序,但bar应用程序可以Kubernetes入口网络策略按预期工作,出口阻塞所有流量,kubernetes,amazon-eks,calico,kubernetes-networkpolicy,Kubernetes,Amazon Eks,Calico,Kubernetes Networkpolicy,我已经在EKS上安装了印花布 我有两个名称空间,foo和bar,都标有“purpose”标签,每个名称空间都包含一个apppod 当我将以下仅入口策略导入foo名称空间时,它完全按照预期工作;其他测试吊舱无法连接到foo应用程序,但bar应用程序可以 --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: foo namespace: foo spec: podSelector: mat
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: foo
namespace: foo
spec:
podSelector:
matchLabels:
app: foo-app
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
purpose: bar
- from:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53
但是,当我导入一个包含入口和出口规则的策略时,它会完全关闭到pod的网络。我甚至无法从酒吧应用程序ping foo应用程序pod IP
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: foo
namespace: foo
spec:
podSelector:
matchLabels:
app: foo-app
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
purpose: bar
- from:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53
egress:
- to:
- namespaceSelector:
matchLabels:
purpose: bar
- to:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53
在删除并系统性地重新添加部分策略后,肯定是在出口中添加了namespaceSelector
条目破坏了该策略
群集上没有其他网络策略
如果没有直接明显的原因说明发生这种情况的原因;除了遍历工作节点上的netfilter规则之外:是否有任何有效的方法来调试此操作?您的上一个网络策略同时处理出入口。我会在两个不同的yaml文件中分割出入口和出入口(如果有几个不同的入口/出入口策略,我也会将它们分割到不同的文件中),并逐一应用它们。这样更容易阅读。另外,如果您使用拒绝规则,我会先应用它,然后再应用其他规则。我认为您写得不对 我认为你应该改变
egress:
- to:
- namespaceSelector:
matchLabels:
purpose: bar
- to:
- ipBlock:
cidr: 0.0.0.0/0
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53
到
这是因为您可能正在阻止用于将服务名称解析为其IP地址的DNS。你可以读一本非常好的书
如果这仍然是一个问题,请提供有关POD在哪里运行的详细信息、标签以及您想要实现的规则
您还可以在GitHub上查看一些很好的入口和出口示例,并且。您的yaml是错误的。为什么要打开
0.0.0.0/0
?这与不创建网络策略
相同。我不知道为什么有时它会阻塞,因为它不应该。
egress:
- to:
- namespaceSelector:
matchLabels:
purpose: bar
- to:
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53