👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/云原生/正文

swarm集群中服务之间的网络通信

吴
吴老二
2023-03-06云原生1607 次浏览0 条评论

在swarm集群中部署的微服务集群,原本测试的时候使用的是网上找的测试用例,因为也没有深入的测试,所以认为网络可以,但是换成自己的服务时,发现集群中有些服务可以有些服务不可以,因为在我的集群中我需要我的微服务注册到eureka中,但是config可以注册进去了,但是其他服务无法注册,而且定义的环境变量不通,一直提示的是网络超时的问题。但是我在容器中通过service请求是可以请求的,后来在网上看到说什么阿里云的不支持,因为我的是自己的物理机后期要部署到阿里云的ECS上的,然后问了一下阿里云的售后反馈的是可以,但是必须docker版本在v19.03以上的版本,我看了一下我的版本是18,然后就对docker版本进行升级,升级后发现还是不行。后来谷歌了一下说,UDP监听的250、4789和4790三个端口为系统保留端口,暂时不对外开放。在19.03及之后的版本,docker在swarm init之上增加了–data-path-port uint32 的配置项用于更改docker swarm的VXLAN端口。好吧,我就尝试了修改了一下。在修改之前先让节点退出集群。

 [root@master ~]# docker swarm leave --force
 [root@master ~]# docker swarm init --data-path-port 5789
 [root@node1 ~]# docker swarm leave
 [root@node1 ~]# docker swarm init --data-path-port 5789
 [root@node2 ~]# docker swarm leave
 [root@node2 ~]# docker swarm init --data-path-port 5789

修改后重新创建集群,然后节点加入集群,微服务之间就可以通过service通信了,这个因为前期没有把异常保留,就没有把错误日志贴上去,不过如果遇到docker的日志问题可以使用这个命令查看。

 [root@www.wulaoer.org ~]# journalctl -u docker -n 20 -f 

没有了,swarm集群就可以部署服务了,swarm主要针对saas平台的管理部署,因为是节点少,而且需要问题所以使用swarm部署最合适不过了。没有了,看看其他的吧。

文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~