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

现象:

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

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

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

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

[root@docker3 ~]# iptables -nL -v --line-number Chain INPUT (policy ACCEPT 525 packets, 70924 bytes) num pkts bytes target prot opt in out source destination 1 258K 33M KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 2 259K 33M KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes service portals */ Chain FORWARD (policy DROP 1 packets, 64 bytes) num pkts bytes target prot opt in out source destination 1 1657 205K DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0 2 1657 205K DOCKER-ISOLATION all -- * * 0.0.0.0/0 0.0.0.0/0 3 790 132K ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 4 35 2224 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0 5 818 70064 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 6 0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 7 35 2224 ACCEPT all -- !docker0 docker0 0.0.0.0/0 0.0.0.0/0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

[root@docker3 ~]# iptables -nL -v --line-number
Chain INPUT (policy ACCEPT 525 packets, 70924 bytes)
num   pkts bytes target     prot opt in     out     source               destination        
1     258K   33M KUBE-FIREWALL  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
2     259K   33M KUBE-SERVICES  all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* kubernetes service portals */
Chain FORWARD (policy DROP 1 packets, 64 bytes)
num   pkts bytes target     prot opt in     out     source               destination        
1     1657  205K DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
2     1657  205K DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
3      790  132K ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
4       35  2224 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0          
5      818 70064 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0          
6        0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0          
7       35  2224 ACCEPT     all  --  !docker0 docker0  0.0.0.0/0            0.0.0.0/0

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

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

  1. k8s nodeport无法访问_k8s学习之service详解

    1.概述 通过Deployment来创建一组Pod来提供具有高可用性的服务.每个Pod都会分配一个单独的Pod IP,却存在如下两问题: 1.pod ip仅仅集群内部可见的虚拟IP,外部无法访问 2. ...

  2. k8s Nodeport方式下service访问,iptables处理逻辑(转)

    原文 https://www.myf5.net/post/2330.htm k8s Nodeport方式下service访问,iptables处理逻辑 2017年07月11日 0条评论 976次阅读 ...

  3. ie下ajax请求不到数据库,解决IE下Ajax请求无效

    在做web开发是,大多时候都会使用FireFox作为调试的浏览器.上面携带的FireBug用来调试JavaScript实在是太方便了,绝大多数的问题都能够通过它跟踪调试出来.但是,当项目发布时,不能仅 ...

  4. 遭遇“HTTP 错误 500.19 无法访问请求的页面,因为该页的相关配置数据无效。”...

    windows 2008下IIS7 安装ASP.NET 遇到如下错误:  <!--[endif]--> HTTP 错误 500.19 - Internal Server Error 无法访 ...

  5. nginx导致vue设置history模式下的请求丢失参数

    nginx导致vue设置history模式下的请求丢失参数 问题描述: 当访问下面的路径时参数会丢失: http://ip/vuecay/path1/path2?name=cay 演示效果: 可以看到 ...

  6. linux0.11字符设备驱动及访问请求管理程序阅读注释笔记

    [ 1] linux0.11引导程序阅读注释. [ 2] linux0.11由实模式进入保护模式程序阅读注释 . [ 3] linux0.11护模式初始化程序阅读注释. [ 4] linux0.11主 ...

  7. 【K8S 二】搭建Docker Registry私有仓库(自签发证书+登录认证)(K8S和非K8S环境下)

    目录 生成证书(更新:2022-08-02) 单SAN(Subject Alternative Name)的场景 多SAN(Subject Alternative Name)场景 创建openssl配 ...

  8. win7系统下访问网上邻居提示用户名密码错误

    win7系统下访问网上邻居提示用户名密码错误 解决方法如下: 1)在搜索栏中输入gpedit.msc调出组策略编辑器 2)计算机配置下依次点击[windows设置]--[安全设置]--[本地策略]-- ...

  9. win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面...

    Asp.net网站部署时遇到的一些问题 很少部署网站,这几天有一个网站帮朋友部署,期间遇到一些问题,经查找各种网络资源,最终解决,先将遇到的问题及解决办法分享一下. 系统 Win7+iis7.5+sq ...

最新文章

  1. 时间有限我长话短说:3060显卡免费送啦!
  2. ProjectEuler 005题
  3. mongodb[三] 文档操作:插入、更新、删除
  4. 轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )
  5. php5.1 0day,DEDECMS 5.1 feedback_js.php 0DAY
  6. [解决]Win7 操作系统不能安装VMware
  7. leetcode-191-Number of 1 Bits
  8. react-navigation 跨 tabs 返回首页
  9. 加载一张图片到ImageView到底占据多少内存
  10. Android view.settran,Android RecyclerView从入门到玩坏
  11. PKI与证书服务应用
  12. 实现Windows Embedded 8 Standard 上的快速开机(HORM)
  13. iOS UICollectionView示例教程
  14. Linux镜像文件提取,如何提取linux 系统镜像文件
  15. 蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)
  16. vscode 中 php 代码格式化插件和其他设置
  17. 云南大学研究生院c语言真题,云南大学地图学与地理信息系统研究生考试科目和考研参考书目...
  18. 搞嵌入式的,为啥要有uboot?
  19. Oracle 字符集 原理及问题解决 (全)
  20. 【Java8】 lambda 特性讲解

热门文章

  1. Maven Jrebel 多模块热部署方案
  2. ACM的java 傻瓜式教学
  3. 云端飘 String s=new String(abc)创建了几个对象?
  4. [zz]Ubuntu建立本地源实用案例
  5. 编写递归调用的Lambda表达式
  6. SURF算法与源码分析、上
  7. DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...
  8. Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()
  9. PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理
  10. 一个App完成入门篇(一)-从Hello world开始