k8s nodeport下访问请求未被分发到所有node的排错(转)
原文 https://www.myf5.net/post/2343.htm
现象:
从内部某个pod的容器里直接访问service的cluster地址,请求可以被正常转发到各个node上的pod里
但是从外部网络,访问nodeport发布的服务,则发现请求不能被转发到其他node上
排错发现,请求没有被转发到其他node的物理接口,说明问题出在接受请求的那台node本身上
查看iptables filter表发现,转发数据包匹配一条docker创建的规则导致丢弃
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的排错(转)相关推荐
- k8s nodeport无法访问_k8s学习之service详解
1.概述 通过Deployment来创建一组Pod来提供具有高可用性的服务.每个Pod都会分配一个单独的Pod IP,却存在如下两问题: 1.pod ip仅仅集群内部可见的虚拟IP,外部无法访问 2. ...
- k8s Nodeport方式下service访问,iptables处理逻辑(转)
原文 https://www.myf5.net/post/2330.htm k8s Nodeport方式下service访问,iptables处理逻辑 2017年07月11日 0条评论 976次阅读 ...
- ie下ajax请求不到数据库,解决IE下Ajax请求无效
在做web开发是,大多时候都会使用FireFox作为调试的浏览器.上面携带的FireBug用来调试JavaScript实在是太方便了,绝大多数的问题都能够通过它跟踪调试出来.但是,当项目发布时,不能仅 ...
- 遭遇“HTTP 错误 500.19 无法访问请求的页面,因为该页的相关配置数据无效。”...
windows 2008下IIS7 安装ASP.NET 遇到如下错误: <!--[endif]--> HTTP 错误 500.19 - Internal Server Error 无法访 ...
- nginx导致vue设置history模式下的请求丢失参数
nginx导致vue设置history模式下的请求丢失参数 问题描述: 当访问下面的路径时参数会丢失: http://ip/vuecay/path1/path2?name=cay 演示效果: 可以看到 ...
- linux0.11字符设备驱动及访问请求管理程序阅读注释笔记
[ 1] linux0.11引导程序阅读注释. [ 2] linux0.11由实模式进入保护模式程序阅读注释 . [ 3] linux0.11护模式初始化程序阅读注释. [ 4] linux0.11主 ...
- 【K8S 二】搭建Docker Registry私有仓库(自签发证书+登录认证)(K8S和非K8S环境下)
目录 生成证书(更新:2022-08-02) 单SAN(Subject Alternative Name)的场景 多SAN(Subject Alternative Name)场景 创建openssl配 ...
- win7系统下访问网上邻居提示用户名密码错误
win7系统下访问网上邻居提示用户名密码错误 解决方法如下: 1)在搜索栏中输入gpedit.msc调出组策略编辑器 2)计算机配置下依次点击[windows设置]--[安全设置]--[本地策略]-- ...
- win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面...
Asp.net网站部署时遇到的一些问题 很少部署网站,这几天有一个网站帮朋友部署,期间遇到一些问题,经查找各种网络资源,最终解决,先将遇到的问题及解决办法分享一下. 系统 Win7+iis7.5+sq ...
最新文章
- 时间有限我长话短说:3060显卡免费送啦!
- ProjectEuler 005题
- mongodb[三] 文档操作:插入、更新、删除
- 轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )
- php5.1 0day,DEDECMS 5.1 feedback_js.php 0DAY
- [解决]Win7 操作系统不能安装VMware
- leetcode-191-Number of 1 Bits
- react-navigation 跨 tabs 返回首页
- 加载一张图片到ImageView到底占据多少内存
- Android view.settran,Android RecyclerView从入门到玩坏
- PKI与证书服务应用
- 实现Windows Embedded 8 Standard 上的快速开机(HORM)
- iOS UICollectionView示例教程
- Linux镜像文件提取,如何提取linux 系统镜像文件
- 蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)
- vscode 中 php 代码格式化插件和其他设置
- 云南大学研究生院c语言真题,云南大学地图学与地理信息系统研究生考试科目和考研参考书目...
- 搞嵌入式的,为啥要有uboot?
- Oracle 字符集 原理及问题解决 (全)
- 【Java8】 lambda 特性讲解
热门文章
- Maven Jrebel 多模块热部署方案
- ACM的java 傻瓜式教学
- 云端飘 String s=new String(abc)创建了几个对象?
- [zz]Ubuntu建立本地源实用案例
- 编写递归调用的Lambda表达式
- SURF算法与源码分析、上
- DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...
- Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()
- PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理
- 一个App完成入门篇(一)-从Hello world开始