首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubernetes网络策略未按预期工作

Kubernetes网络策略未按预期工作
EN

Stack Overflow用户
提问于 2020-08-08 23:10:47
回答 2查看 415关注 0票数 0

我有一个k8s集群,它将工作节点分布在6个AZ中,因此,出口流量通过6个nat网关进行路由。我的要求是应用程序'xyz‘的所有出口流量应该只通过AZ- A的nat网关进行路由。因此,作为解决方案,我在同一名称空间中创建了一个nginx代理实例,将关联规则仅绑定到AZ -A,并考虑使用网络策略将出口流量从xyz pod路由到此代理实例。但看起来网络策略阻塞了整个出口流量。下面是出口NW策略的代码,看起来很好。

代码语言:javascript
运行
复制
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进行测试。它有时会给出以下错误和超时:

代码语言:javascript
运行
复制
curl: (6) Could not resolve host: ifconfig.co

我想我在这里漏掉了什么。有人能给我提供一些关于这方面的见解吗?或者更好的解决方案来满足这个需求。

EN

回答 2

Stack Overflow用户

发布于 2020-08-09 21:31:16

您应该有一个指示为here的出口规则,而不是入口规则。

代码语言:javascript
运行
复制
  egress:
   - {}
票数 0
EN

Stack Overflow用户

发布于 2020-08-10 22:36:54

在您的示例中,您已经阻止了所有DNS查询,因此作为解决方法,请使用TCP和UDP协议在端口53上进行try this approach通信:

代码语言:javascript
运行
复制
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: UDP
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63316937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档