telnet master主机的NodePort服务不通的问题
硬件环境:
两台物理机:
172.16.114.210(master主机)
172.16.114.211(node主机)
软件环境:
kubernetes 1.5.2
flannel 0.5.5
问题描述:
部署了一个mysql的NodePort服务,指定nodePort端口为30010,telnet 172.16.114.211 30010是通的,但是telnet 172.16.114.210 30010是不通的。
问题分析
查看172.16.114.210主机的情况如下,
1、30010端口已经监听
2、iptables -S -t nat | grep mysql,nat表规则均正常
3、iptables -S -t filter 如下:
[root@localhost ~]# iptables -S -t filter
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION
-N KUBE-SERVICES
-A INPUT -i virbr0 -p udp -m udp --dport -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport -j ACCEPT
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -d 192.168.122.0/ -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/ -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT -o virbr0 -p udp -m udp --dport -j ACCEPT
-A DOCKER-ISOLATION -j RETURN
有一条规则-P FORWARD DROP,意思是本机默认的转发规则是丢弃(DROP),因为nodeport服务本身是部署在node主机上的,telnet master主机时,会根据iptables的规则,将该请求转发给node主机上的pod,所以当master主机的默认转发规则是丢弃时,就出现了telnet master主机 加nodeport端口不通的情况。
解决办法
修改master主机上的iptables规则,将默认转发的action修改为accept,执行命令为iptables -P FORWARD ACCEPT,修改后规则如下:
[root@localhost ~]# iptables -P FORWARD ACCEPT
[root@localhost ~]# iptables -S -t filter
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION
-N KUBE-SERVICES
-A INPUT -i virbr0 -p udp -m udp --dport -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport -j ACCEPT
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -d 192.168.122.0/ -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/ -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A OUTPUT -o virbr0 -p udp -m udp --dport -j ACCEPT
-A DOCKER-ISOLATION -j RETURN
此时在telnet master主机加nodeport端口,就通了
telnet master主机的NodePort服务不通的问题的更多相关文章
- 两台主机之间单向Ping不通的问题
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...
- 没有部署ingress pod的woker节点telnet slb的80 443端口不通
一,问题描述 没有部署ingress pod的woker节点telnet slb的80 443端口不通 二,解决办法 方法一:改用svc地址调用 方法二:让每台woker节点都部署ingress po ...
- 13 | 实战:单机如何实现管理百万主机的心跳服务? https://time.geekbang.org/column/article/240656
13 | 实战:单机如何实现管理百万主机的心跳服务? https://time.geekbang.org/column/article/240656
- 基于多主机的Web服务
[Centos7.4版本] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~ ...
- .NET Core 中的通用主机和后台服务
简介 我们在做项目的时候, 往往要处理一些后台的任务. 一般是两种, 一种是不停的运行,比如消息队列的消费者.另一种是定时任务. 在.NET Framework + Windows环境里, 我们一般会 ...
- telnet命令判断端口是否通不通
以上得出结论80端口不通 如果连接成功,想要退出telnet的话,ctrl+],然后输入quit 查看iptables vi /etc/sysconfig/iptables #编辑防火墙配置文件 ...
- kubenetes master重启以后,服务异常排查
k8s集群环境:三台机器,一台master,三个node(每台都安装node服务) 问题藐视:重启的时候,发现master的服务都能正常启动,但是就是不好使,看/var/log/message日志也没 ...
- Nginx代理实现内网主机访问公网服务
通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...
- spring-cloud-starter-hystrix(断路器)服务不通或者调用失败后的错误处理和回调
雪崩效应 在微服务架构中通常会有多个服务层调用,大量的微服务通过网络进行通信,从而支撑起整个系统.各个微服务之间也难免存在大量的依赖关系.然而任何服务都不是100%可用的,网络往往也是脆弱的,所以难免 ...
随机推荐
- LeetCode 137 Single Number II(仅仅出现一次的数字 II)(*)
翻译 给定一个整型数组,除了某个元素外其余的均出现了三次. 找出这个元素. 备注: 你的算法应该是线性时间复杂度. 你能够不用额外的空间来实现它吗? 原文 Given an array of inte ...
- Solidworks如何等比例缩小放大模型
比如初始化的模型,笔记本长度只有120mm,实际上应该是3倍左右 右击特征,勾选模具工具,然后可以发现多出来一个页面 点击比例缩放,选中要缩放的特征,设置比例,然后打钩 可以发现已经缩放到 ...
- ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
折腾了一下午终于在黑苹果上成功的安装了网卡,声卡驱动: 我的配置: 主板 ASUS b75m-a 声卡 ALC887 网卡 RTL8168F 安装所需工具: MutiBest 下载OS对应的版本即可 ...
- 一步一步学Spring.NET——1、Spring.NET环境准备
Spring.NET 1.3.2下载地址:http://down.51cto.com/data/861700 下载后解压 Spring.NET-1.3.2.7z:这个里面有我们须要用到的全部东西. S ...
- 算法笔记_092:蓝桥杯练习 c++_ch04_02_修正版(Java)
目录 1 问题描述 2 解决方案 1 问题描述 [题目描述] 实现一个时间类Time.将小时,分钟和秒存储为int型成员变量.要求该类中包含一个构造函数,访问用的函数,一个推进当前时间的函数adv ...
- ant-design表单处理和常用方法及自定义验证
首先要说一下antdesign这个框架API和demo丰富,而且开发环境提供对应的warning来纠正用户的错误.是一个很好的组件库. 关于表单验证方面是依赖于 async-validator 库. ...
- PHP过滤器
这里介绍的过滤器包括: 1.filter_input 2.filter_input_array 3.filter_var 4.filter_var_array 5.filter_has_var 一.查 ...
- 【BIEE】MDS-01377:无法从使用 JNDI 名称 “jdbc/mds/owsm” 配置的数据源获取数据库连接
这是一次意外关机情况,BIEE环境是window server2008,但是一次意外情况,BIEE自动关机了,造成开启成功新启动BIEE产生如下错误: 错误产生后,倒腾了半天,并没发现什么问题,只是通 ...
- Load和CPU利用率是如何算出来的 (转发)
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/system/how_to_cal ...
- openfireserver和jdk环境删除命令
一.卸载jdk1.8 终端依次运行以下的命令 sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo rm -rf / ...