Failed to connect to proxy. Empty dialer response" error="dial tcp 192.168.2.168:44386: connect: connection refused"

发表于 2021-09-08
阅读 4

介绍

介绍

福哥发现如果我们在rancher服务器节点上面部署rancher客户端节点的话,总是会出现不成功的情况。

这是因为虽然是一台服务器,但是服务器节点和客户端节点之间还是“远程”操作的,这里面就存在一个安全的问题。而rancher解决安全的方式就是使用HTTPS方式加密传输数据,HTTPS就意味着需要一张SSL证书。当我们没有合法的SSL证书的时候就会出现各种问题了。

问题

福哥在rancher的服务器节点上面部署rancher的agent节点时候,发现了agent节点报出如下错误信息。

time="2021-09-08T08:32:49Z" level=error msg="Failed to connect to proxy. Empty dialer response" error="dial tcp 192.168.2.168:44386: connect: connection refused"
time="2021-09-08T08:32:49Z" level=error msg="Remotedialer proxy error" error="dial tcp 192.168.2.168:44386: connect: connection refused"

解决

修改前

这是标准的加入agent节点的命令。

docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.2.168:44386 --token 5tm8jmlc947mcrwt47ncq46d5lntpwsktrjnpjq8prdnlhcgnhkqjp --ca-checksum 2cb5619576f91181965e0d1fda522be3a023bc198f4de92c9d62f83727259086 --etcd --controlplane --worker

修改后

需要增加一个环境变量NO_PROXY,通过NO_PROXY告诉rancher服务器哪些地址上面的agent很安全,不要考虑那么多了。

这是一个NO_PROXY示例,原来默认的127.0.0.1和0.0.0.0也要加上。

NO_PROXY="localhost,127.0.0.1,0.0.0.0,192.168.2.0/24"

改造后的加入agent节点的命令。

docker run -d --privileged -e NO_PROXY="localhost,127.0.0.1,0.0.0.0,192.168.2.0/24" --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.2.168:44386 --token 5tm8jmlc947mcrwt47ncq46d5lntpwsktrjnpjq8prdnlhcgnhkqjp --ca-checksum 2cb5619576f91181965e0d1fda522be3a023bc198f4de92c9d62f83727259086 --etcd --controlplane --worker

成功

加了NO_PROXY之后,这个“状态”一栏下面就会动了。

经过漫长的等待,终于OK了~~
home/topic/2021/0908/17/0f26b17a70740dd015c68f21420bb0c6.png

总结

很多时候我们的网络情况都是这样的,就是rancher服务器和rancher客户端都在一个专用网络里面,也就是说它们之间的通讯是很安全的,通过设置NO_PROXY不仅可以解决SSL证书问题,还可以提高服务器和客户端之间的通讯效率。