calico跨主机node访问pod问题

在Kubernetes环境中,使用Calico作为网络插件时,当命名空间应用了默认拒绝的网络策略,跨主机节点访问Pod的流量在FORWARD链中被DROP。问题源于Calico创建的特定链,阻止了非Pod的流量。通过为默认命名空间的Profile添加允许特定CIDR的规则,并删除导致问题的链,可以解决这个问题。手动删除特定的Felix链后,跨主机节点到Pod的通信恢复正常。
摘要由CSDN通过智能技术生成

实验环境:calico版本:v0.23,kubernetes版本:1.35

kubernetes网络使用calico,当namespace使用以下命令配置隔离policy的后:


kubectl annotate ns <namespace> "net.beta.kubernetes.io/network-policy={\"ingress\": {\"isolation\": \"DefaultDeny\"}}"


问题:跨主机node访问pod被隔离了。但是kubernetes中外网访问service需要node节点可以访问所有pod。


通过分析calico创建的iptables,node跨主机访问pod进过FORWARD链的时候被drop掉了。创建namespace的时候,calico默认会创建felix-p-_e9d3a9f50c6dd3a-i  felix-p-k8s_ns.net1-sub1-i 这两条链,第一条链会把非pod的流量给drop掉。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值