k8s nodeport下访问请求未被分发到所有node的排错(转)

原文 https://www.myf5.net/post/2343.htm

现象:

从内部某个pod的容器里直接访问service的cluster地址,请求可以被正常转发到各个node上的pod里

但是从外部网络,访问nodeport发布的服务,则发现请求不能被转发到其他node上

排错发现,请求没有被转发到其他node的物理接口,说明问题出在接受请求的那台node本身上

查看iptables filter表发现,转发数据包匹配一条docker创建的规则导致丢弃

 

forward链中的 第1,2规则都导致丢弃

强制增加iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT 规则后,问题解决

但重启会失效,持久化的一个方法见此文最后 http://www.cnadn.net/post/2304.htm

 

ps:笔者在网上找了一堆资料,基本没有提及过nodeport转发不通的问题,因为目前所有的iptables规则都是k8s安装完后自动生成,没有做过任何修改, 从A机器访问kube-proxy的nodeport能转发到B机器的 targetport, 但是从外网访问A机器的kube-proxy的nodeport就无法转发出去,集群网络是通的,但就是无法转发,后面看到此文加上iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT 果然可行

转载于:https://www.cnblogs.com/devilwind/p/8891671.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值