kubectl port-forward 踩坑记录
前言
最近在学习k8s,直接使用命令部署应用并给外界访问:
kubectl run nginx --image nginx:latest
kubectl port-forward pod/nginx 80:80 #将本机80端口转发至Pod的80端口
然后本地PC用浏览器访问NodeIP:80,访问nginx界面失败:
在k8s节点里面用curl访问,出现了神奇现象:直接curl节点的物理网卡地址192.168.22.151,访问失败;而curl localhost或127.0.0.1,可以返回结果。
这个192.168.22.151是k8s节点的ens160物理网卡的地址,不是浮动IP地址或者其他花样,没有做其他花里胡哨的网络隔离措施。
出现这个问题之后,捣鼓了好一段时间,也没搞出个头绪。
灵光一闪
后来过了几天,在看《Kubernetes权威指南 第4版》这本书时,看到书上有关于port-forward的用法:
书上的案例多了一个- -address参数。kubectl port-forward --help查看参数说明
Options:
- -address=[localhost]: Addresses to listen on (comma separated). Only accepts IP addresses or localhost as a value. When localhost is supplied, kubectl will try to bind on both 127.0.0.1 and ::1 and will fail if neither of these addresses are available to bind.
这个参数用于设置监听地址,默认值是localhost。如果设置为localhost,那么k8s会监听127.0.0.1和::1这两个地址。
看到这里,大概明白了。问题就是没有设置- -address参数引起的。
①在K8S节点内,为什么用curl去访问本机的网卡IP192.168.22.151,会失败?
如图:
原因,查看路由表:
最后一条路由,通往192.168.22.0网段的数据包由本机ens160接口转发出去,而ens160接口IP是192.168.22.151。由于没有设置- -address参数,192.168.22.151这个地址并没有被K8S监听,所以从ens160接口出去的访问界面的流量被K8S拒绝了。
②在K8S外部,为什么用PC浏览器去访问IP192.168.22.151,会失败?
PC的IP也是没有被K8S监听,访问界面的流量被拒绝了,所以用浏览器访问失败。
如图:
③在K8S节点内,用curl访问 127.0.0.1或者localhost,能够访问成功。
解决办法:kubectl port-forward 设置参数- - address 0.0.0.0
kubectl run nginx --image nginx:latest
kubectl port-forward --address 0.0.0.0 pod/nginx 80:80
K8S会监听任何地址,不会再拒绝了,所以使用K8S节点的IP地址去访问,访问成功:
kubectl port-forward 踩坑记录相关推荐
- sonar覆盖率怎么统计的_实战|Java 测试覆盖率 Jacoco插桩的不同形式总结和踩坑记录(上)...
本文为霍格沃兹测试学院优秀学员关于 Jacoco 的小结和踩坑记录.测试开发进阶学习,文末加群. 一.概述 测试覆盖率是老生常谈的话题.因为我测试理论基础不是很好,这里就不提需求.覆盖率等内容,直奔主 ...
- mvn exec: java_实战|Java 测试覆盖率 Jacoco插桩的不同形式总结和踩坑记录(下)
本文为霍格沃兹测试学院优秀学员关于 Jacoco 的小结和踩坑记录.测试开发进阶学习,文末加群. 六.注意事项汇总 修改 JAVA_OPTS 参数时,如果位置不对,可能造成代理无法启动. java - ...
- Dubbo3的Triple协议踩坑记录
Triple协议踩坑记录 Triple协议 Triple 协议是 Dubbo3 提出的基于 HTTP2 + gRPC 的开放协议,完整兼容 gRPC over HTTP/2,旨在解决 Dubbo2 私 ...
- 日常踩坑记录-汇总版
开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...
- Canal 及canal.admin(v1.1.5)踩坑记录
网址:GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 前期软件准备 上面的软件包(canal.deployer-1.1.5.tar.gz ...
- qiankun + vue3使用踩坑记录
qiankun + vue3使用踩坑记录 1.主应用 vue create qiankun-base npm install vue-router@4 npm i qiankun -S 在main.j ...
- django踩坑记录(4)
0x0d.如何设置不同登录方式,显示不同的标签及对应的form表单的字段?下面代码超级多细节,真的值得看 描述的情景如下图: 代码实现思路:两个不同的登录方式是:账号密码登录和使用短信验证码登录. 1 ...
- GVM踩坑记录之:rsync: connection unexpectedly closed 和 rsync: read error: Connection reset by peer (104)
Kali 2021.2安装GVM(原OpenVAS)踩坑记录帖 在另一篇帖子安装GVM的过程中,遇到好多rsync报错 rsync: read error: Connection reset by p ...
- springcloud踩坑记录1
idea使用spring intaller 创建eureka服务踩坑记录 1.SpringBoot与SpringCloud的版本号需要一一对应,具体内容请查看官网. 2.Maven引入Eureka包时 ...
- 新手可直接复现:Duan版本CenterNet在2080Ti上训练自己的数据集——踩坑记录
实验室换了GPU,记录下centernet在新电脑上的配置过程,如果对下面很多不理解先阅读我以前的这篇博客即可初学者复现CornerNet:详细指导零基础在Ubuntu系统运行该代码并完全理解论文思路 ...
最新文章
- centos下将vim配置为强大的源码阅读器
- UVa 10375 - Choose and divide(唯一分解定理)
- Linux下网络流量实时监控工具大全
- Ubuntu Pycharm启动后卡住无法操作
- php cdata,PHPcdata处理(详细介绍)_PHP教程
- 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型
- error: statement with no effect [-Werror=unused-value]
- python修改文件名_【Python沙龙】批量修改文件名称
- postgis学习(二)之几何图形
- 微信公众号推广的四种有效办法
- 自监督学习经典之作:DINO
- 一、什么是JWT?了解JWT,认知JWT
- ANDROID 11 文件系统挂载
- 互联网公司招聘--阿里巴巴--运营专员--2016年笔试题
- 网络检测,排错的顺序与方法
- HTML 创建按钮实现跳转链接
- 中国首台自主超级计算机,6亿元能打造出一台怎样的计算机?
- 陕西省2022年度中级职称(工程师)评审申报的基本条件
- linux raid5 纯硬盘 恢复,RAID5 Linux数据恢复
- Linux学习笔记——磁盘管理