spring-cloud项目使用docker部分,通信问题请教?

皇太极 发布于 2018/02/06 20:21
阅读 2K+
收藏 2

Linux基金会免费官方培训及考试申请即将截止,戳这里申请!>>>

spring-cloud项目使用docker部署后,无法访问问题。

想请教个问题。
比如有3个spring-cloud项目,A(eureka-server),B(api-server),C(api-client)
A 和 B 都是使用docker部署的,C 非docker部署
现在A和C都成功的注册到了B中,但是C的地址却是docker内部的ip,请问下如何操作才能让A通过B访问到C ?

加载中
0
f
freezingsky

我这边都是通过k8s构造一个dns,然后统一用domain去跑的。像这种内外容器的话,只要在dns里写一下外部IP就完事了。

皇太极
皇太极
网上看了下k8s和dns没看明白,有简单点的方法吗?求指教啊。
0
Beyond-Bit
Beyond-Bit

给C指定一个外部IP

Beyond-Bit
Beyond-Bit
回复 @皇太极 : http://cizixs.com/2016/06/12/docker-network-modes-explained 参考一下。
皇太极
皇太极
给C指定。。,这不对吧,应该是能给B指定是最好的了。
皇太极
皇太极
感觉这样是最好的,能告知下如何指定吗?拜谢
0
皇太极
皇太极

仔细看了下,发现问题描述写错了。。。重新描述下

比如有3个spring-cloud项目,A(注册中心eureka-server),B(服务提供端api-server),C(客户端调用端api-client)
A 和 B 都是使用docker部署的,C 非docker部署
现在B和C都成功的注册到了A中,但是B的地址却是docker内部的ip,请问下如何操作才能让C通过A访问到B?

0
n
newlife111

正常情况下,应该是不能的。网络路由的问题。

在默认你无容器网络的情况下,除非

1:B注册到A的时候,使用的是宿主机的ip+端口,未深入研究spring cloud,需要google。

2: C 和A在同一台宿主机,那么他们的路由规则是可以通信的。

在有容器网络的情况下,比如flannel,

那么C的宿主机需要安装有docker和flannel就可以。

皇太极
皇太极
多谢,百度了下又是一头雾水啊,我再看看
0
wnk
wnk

A 和C注册到B?B和C注册到A吧?213

0
西门杨过
西门杨过

重新打个Image run的时候加个参数 --net=host。这样就会默认使用宿主机的IP。

0
乘虚怨
乘虚怨

springcloud 多服务,建议使用docker swarm或者K8S去跑,单纯的docker 容器暴露IP不行的

0
小蚂蚁飞呀飞

楼主,这问题解决了吗?

0
皇太极
皇太极
请别人帮忙解决了
皇太极
皇太极
回复 @谢立波 : 设置host,或网络模式改为bridge等其他方式,只要能保证在一个网络组中就好了
谢立波
谢立波
请问下最后具体采用的什么方案解决的呢,感谢感谢。
0
进阶的小孔

我现在也遇到一样的问题呀,就是我多个微服务都是docker镜像推送到k8s部署的,k8s映射端口号出来,访问登陆页面登陆不进去

进阶的小孔
回复 @皇太极 : 我之前那个解决了,是因为我的oauth2打包的时候出现了两个版本
皇太极
皇太极
看一楼的答案应该适合你
返回顶部
顶部