记一次flannel调试
今天发现k8s集群中不同Node上的pod不能互相ping通。调试了很长时间,发现是flannel的问题,记之。
问题一:对flannel backend的选择
flannel支持多种backend,包括host-gw, vxlan, udp。其中前两个比较常用,在我的集群中一开始随便选择了host-gw作为
backend。这种backend不会在节点上创建形如flannel.1的网卡,它对宿主机的网络有要求,它要求宿主机处于同一个二层网络里。
关于二层网络的定义,网上有很多,不再赘述。而vxlan则没有这个要求,它会在宿主机创建一个虚拟网卡,该网卡负责封装跨节点的
容器通信。
问题二:docker本身的问题
在将backend从host-gw切换至vxlan后,三个node中的两个node可以互相通信了,而第三个node接受不到另两个node上容器中的ping请求。
调试过程如下:
sudo tcpdump -i flannel.1 观察flannel网卡是不是收到报文,结果为已收到
sudo tcpdump -i docker0 观察docker0网卡是不是收到报文,结果为未收到
说明flannel网卡向docker0网卡提交报文时出了问题。
经过一番google,在https://github.com/coreos/flannel/issues/609中找到了解决办法,在节点上执行:
sudo iptables -P FORWARD ACCEPT
记一次flannel调试的更多相关文章
- 记一次RESTful调试过程
1. 为什么前台怎么调用后台,都是跳到页面不存在. 因为已经改为RESTful,保存按钮的type还是submit: 2. 改成buttong之后,设置onclick="update()“, ...
- 记一次GDB调试
目标文件: ciscn_2019_ne_5. 来源 :https://buuoj.cn/challenges 保护情况:保护是没有保护的 主要伪代码: int __cdecl main(int arg ...
- 记一次接口调试错误: {"timestamp":"2019-09-11T03:04:30.036+0000","status":500,"error":"Internal Server Error","message":"Could not write JSON: Object is null; nested exception is com.fasterxml.jackson
接口测试中用postman测试返回是正常的,但是使用其他人去调用就出错了,找了半天,才想起来使用了nginx,用于端口的代理转发.然后根据错误信息发现json格式的某个字段为null,结合日志中的报文 ...
- 记一次Python调试问题
C#调用python脚本错误: 使用cmd直接运行脚本报错: TabError: inconsistent use of tabs and spaces in indentation 查看日志报错: ...
- u-boot 2011.09 开启debug 调试
以前做过,现在刚才又想不起来了,这个错误非常的严重. 在这里记一下. debug 调试信息的开启在 include/common.h 有如下宏定义: #ifdef DEBUG #define debu ...
- IDA动态调试Android的DEX文件
Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试 ...
- php相关学习资源
相关书籍资源: 1:PHP和MySQL Web开发 经典书籍 视频教程: PHP开发工程师闯关记--初识PHP php调试技巧: PHP 程序员的调试技术 使用 print 语句.错误报告和 PHPE ...
- 网络设备 密码、用户级别 AAA授权 的管理
一.进入 特权模式 密码 设置访问网络设备特权模式口令 cisco>enable cisco#config terminal cisco(config)#enable password 密码 e ...
- 在Golang中如何正确地使用database/sql包访问数据库
本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结. 其实我也是一个新手,机缘巧合 ...
随机推荐
- git 学习使用记录
一.一个小时学会git:https://www.cnblogs.com/best/p/7474442.html 二.fetch fatal: Refusing to fetch into curren ...
- Vue数据通信详解
如果有需要源代码,请猛戳源代码 希望文章给大家些许帮助和启发,麻烦大家在GitHub上面点个赞!!!十分感谢 一.前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着 ...
- cnblogs设置各级标题样式和目录
向博客园申请js权限 我们需要进入博客园自定义博客模板的页面,向博客园管理团队申请页面运行js的权限. [博客园]->[设置]->[博客设置],点击页面上的js权限申请,然后填写申请的理由 ...
- 归并排序java代码
//归并排序 通过测试 public class MergeSortTest{ public static void mergeSort(int[] data,int low,int high){ i ...
- What is a Digital Signature? 理解数字签名与数字证书
What is a Digital Signature?An introduction to Digital Signatures, by David Youd Bob (Bob's public k ...
- Linux下使用telnet测试端口号是否开放
telnet 127.0.0.1 80调用后,若提示bash: telnet: command not found,那么进行以下步骤: 1.检查telnet是否已经安装,或者有部分未安装: rpm - ...
- node简单起服务
1.建一个app.js文件 const http = require('http'); const chalk = require('chalk'); const conf = require('./ ...
- SSM跨域配置
1.后台跨域要引用两个jar包(cors-filter-1.7.jar.java-property-utils-1.9.jar) 提供下载地址: 链接: https://pan.baidu.com/s ...
- Windows:打印为PDF(PDF转换器)
造冰箱的大熊猫@cnblogs 2019/4/17 文中图片可通过点击鼠标右键查看大图 Windows下实现PDF打印的几个办法: 1.Foxit Reader(福昕PDF浏览器) 安装Foxit R ...
- TTTTTTTTTTTTTT CF 95 B 构造4,7幸运数字 贪心 构造 string
B. Lucky Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...