dotnetcore / AgileConfig

基于.NET Core开发的轻量级分布式配置中心 / .NET Core lightweight configuration server
MIT License
1.5k stars 299 forks source link

集群模式下Node节点到的是容器内部IP,导致主节点无法访问到 #137

Closed Jesn closed 1 year ago

Jesn commented 1 year ago
 agile_config_node2:
    image: "kklldog/agile_config"
    ports:
      - "15002:5000"
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
      - cluster=true
      - db__provider=mysql
      - db__conn= database=configcenter;data source=192.168.0.115;User Id=root;password=mdsd;port=3306

没有指定节点IP的地方,导致获取到的是容器内部的IP,导致节点离线

image
kklldog commented 1 year ago

不知道你的 docker-compose 的 network 怎么配置的,按理内部ip可以在容器内使用。

Jesn commented 1 year ago

主节点 image

Node 节点 image

docker-compose.yml 没有特意去指定IP,按说这里增加一个指定IP的功能应该比较好

kklldog commented 1 year ago

看你的 yml 貌似2个node不在一个机器上吧。不然不能都监听5000。如果不在同一个机器上,肯定是内部ip访问不通了。需要自己手动在界面上添加节点。使用外部ip。

Jesn commented 1 year ago

是分散在不同的机器上,需要手动去删除然后再新建一个节点,所以我说添加一个指定IP的参数是比较好的

kklldog commented 1 year ago

是分散在不同的机器上,需要手动去删除然后再新建一个节点,所以我说添加一个指定IP的参数是比较好的

我明白你意思了,但是这样的话,光一个 IP 不够了,需要完整的 schema, ip, port 信息。可以考虑下后面加入这些参数。

hellosnowy commented 1 year ago

不想使用内部ip的话,把docker网络改成host模式就好了,默认是bridge