rancher+nfs报错:goroutine * [chan receive]:

主题: 这个bug,ipv4升级到ipv6留下来的巨坑,耽误了我3天时间我真的很不爽

报错截图:


rancher报错日志
我解释一下ipv4协议和ipv6协议的区别吧:
通俗一点说ipv4和ipv6同时收到请求的时候,ipv4的dns解析响应,
会让socket处于等待状态,而ipv6因为在dns解析接口加了一句话:
options timeout:2 attempts:3 rotate single-request-reopen
这句话的意思就是在不影响ipv4解析的情况下,重新打开一个新的socket接收ipv6的解析响应。
如果 socket 发送的两次请求处理,解析端发送第一次请求后会关闭 socket,
并在发送第二次请求前打开新的 socket。
这就导致rancher的dns解析地址极其不稳定,直接导致nfs挂载失败,解析不出来明确的ip地址。
当然有的时候,因为ipv6没有出现响应丢包,
并且响应很快的情况,新的socket将不会打开,所以有的时候nfs又被解析成功,当然这个成功概率是5%。
我在遇到这个问题的时候我很头疼,完全没有头绪,
部署rancher+nfs官方根本没有解释这一块,只能不停测试,3天时间我一共删除rancher4次,
重新部署所有服务5次,用了不同厂家3台服务器做测试,
我很高兴我成功测试出来了,当初在看到这个日志报错是任何bug提示都没有,我都想哭。

解决方法修改vi /etc/resolv.conf文件,隐藏上面那句话:


修改dns解析配置

dns不需要重启,修改过后默认自动生效

如果有什么问题欢迎咨询Q我,有的时候如果忙回复慢,一般晚上都有时间:
179061434

你可能感兴趣的:(rancher+nfs报错:goroutine * [chan receive]:)