我有一个k8s集群,它将工作节点分布在6个AZ中,因此,出口流量通过6个nat网关进行路由。我的要求是应用程序'xyz‘的所有出口流量应该只通过AZ- A的nat网关进行路由。因此,作为解决方案,我在同一名称空间中创建了一个nginx代理实例,将关联规则仅绑定到AZ -A,并考虑使用网络策略将出口流量从xyz pod路由到此代理实例。但看起来网络策略阻塞了整个出口流量。下面是出口NW策略的代码,看起来很好。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: xyz-app-egress
spec:
podSelector:
matchLabels:
app: xyz
policyTypes:
- Ingress
- Egress
ingress:
- {}
egress:
- to:
- podSelector:
matchLabels:
app: proxy在应用NW策略之后,我在xyz pod上使用curl ifconfig.co进行测试。它有时会给出以下错误和超时:
curl: (6) Could not resolve host: ifconfig.co我想我在这里漏掉了什么。有人能给我提供一些关于这方面的见解吗?或者更好的解决方案来满足这个需求。
发布于 2020-08-09 21:31:16
您应该有一个指示为here的出口规则,而不是入口规则。
egress:
- {}发布于 2020-08-10 22:36:54
在您的示例中,您已经阻止了所有DNS查询,因此作为解决方法,请使用TCP和UDP协议在端口53上进行try this approach通信:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: foo-allow-to-hello
spec:
policyTypes:
- Ingress
- Egress
podSelector:
matchLabels:
app: xyz
ingress:
- {}
egress:
- to:
- podSelector:
matchLabels:
app: proxy
- ports:
- port: 53
protocol: TCP
- port: 53
protocol: UDPhttps://stackoverflow.com/questions/63316937
复制相似问题