Kubernetes网络策略阻止AKS上节点之间的流量 [英] Kubernetes network policy blocks traffic between nodes on AKS

查看:0
本文介绍了Kubernetes网络策略阻止AKS上节点之间的流量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Azure Kubernetes Service(AKS),希望确保特定命名空间中的Pod只能从同一命名空间中的其他Pod接收入站流量。

我找到此网络策略来实现此命名空间隔离(来自here):

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  namespace: my-namespace
  name: deny-from-other-namespaces
spec:
  podSelector:
    matchLabels:
  ingress:
  - from:
    - podSelector: {}
在我创建此网络策略后,它成功地阻止了";my-namespace";和另一个命名空间上的pod之间的通信,而&my-namespace";中的pod之间的通信仍然可能。但是,只有在同一节点上调度两个Pod时,才会出现这种情况。如果两个Pod都位于&my-NameSpace&中,但运行在不同的节点上,则它们之间的连接将不再起作用。只要我删除上面的网络策略,连接就会再次工作。 我认为这不是预期的行为,因为Pod位于相同的命名空间中,因此应该允许进入流量。 有人知道导致此问题的原因吗?

我正在运行带有kubenet和calico网络策略的Kubernetes 1.19.6版。

推荐答案

看起来您在AKS群集v1.19+中遇到了一个已知问题。

其他用户解释了它如何使用Calico的网络策略插件影响集群:

仅供其他用户参考,此问题会导致具有podSelector配置的网络策略出现问题。由于策略是根据Calico的iptable中实例的ipset来设置的,但是将包的源IP设置为节点IP,连应该允许的包都会被丢弃。

请在GitHub问题#2031中阅读有关此问题的更多信息,以及硬修复(节点映像升级)或解决方法(运行在iptabes中创建SNAT豁免的重启)。

这篇关于Kubernetes网络策略阻止AKS上节点之间的流量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆