- WARNING: IPv4 forwarding is disabled. Networking will not work.
在使用docker stack构建启动微服务的时候,所有的从节点机器项目全部启动失败,错误信息是服务无法注册到远程的nacos服务器上,但是我单独在
从节点上又可以ping通远程的nacos,搞得一脸蒙蔽,又把问题归结到是不是docker swarm集群的问题,创建的容器是不是连接不到远程的nacos,但是
主节点上的服务又可以,没办法最后把服务单独拿到其中一个从节点上启动,最后看到这个WARNING: IPv4 forwarding is disabled. Networking will not work.
报错。
解决方法:
a: vi /etc/sysctl.conf
b: net.ipv4.ip_forward=1 #添加这段代码
c: #重启network服务
systemctl restart network && systemctl restart docker - 服务启动都正常,但是网关无法将请求路由到指定的服务,不使用网关单独访问子服务都是ok的
原因就是我们在docker-compose.yml中定义swarm服务发现的模式问题:
我们在定义网关的时候使用的是deploy.endpoint_mode=vip,这个是没问题的 ,但是在定义网关后面的
子服务的时候就需要使用deploy.endpoint_mode=dnsrr这个模式了,因为我们是个集群,每个子服务存在
好几个副本,在网关路由的时候是通过服务名称去发现子服务的,而vip是通过ip地址发现的,所以需要使用dnsrr模式 -
InvalidArgument desc = EndpointSpec: port published with ingress mode can't be used with dnsrr mode
在服务使用deploy.endpoint_mode=dnsrr模式后不能使用如下方式暴露端口:
需要这样定义:
使用docker stack部署微服务遇到的坑
最新推荐文章于 2024-04-21 15:15:16 发布