V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jaylee4869
V2EX  ›  Docker

部署 Docker 容器集群的问题

  •  
  •   jaylee4869 · 2019-11-28 15:20:56 +08:00 · 6160 次点击
    这是一个创建于 1813 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司现在后端是 Spring Cloud 微服务,一共 8 个服务,其中一个是用户服务,我尝试把用户服务在同一主机上运行两个容器,很好的实现了负载均衡,但是把这个服务换到另一台局域网主机,却失败了。
    想问问如何将容器做不同主机的集群
    第 1 条附言  ·  2019-11-29 16:42:01 +08:00
    开发机器用的 mac,本地测试用的 linux cent os 7,两台机器做的集群。
    10 条回复    2019-12-03 09:55:12 +08:00
    hopingtop
        1
    hopingtop  
       2019-11-28 15:39:06 +08:00   ❤️ 1
    试着看看 docker 容器选择的网络模式。
    如果方便,也可以贴一下你的 Dockerfile,记得删除私密信息
    jaylee4869
        2
    jaylee4869  
    OP
       2019-11-29 15:40:28 +08:00
    @hopingtop
    -net=host 是吗?我试过但是 timeout 了。。。
    Dockerfile 现在是这样的:

    FROM openjdk:8-jdk-alpine
    RUN echo "Asia/Shanghai" > /etc/timezone
    VOLUME /tmp
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    hopingtop
        3
    hopingtop  
       2019-11-29 15:57:09 +08:00
    @jaylee4869
    在 docker Client: Docker Engine - Community
    Version: 18.09.2
    此版本下
    设置网络模式是 docker run --network=host //Connect a container to a network (default "default")
    多数网络访问不通的问题,在 linux 环境设置 host 网络模式就能解决
    建议用编排工具启动 docker, 比如简单的 docker-compose
    jaylee4869
        4
    jaylee4869  
    OP
       2019-11-29 15:58:12 +08:00
    @hopingtop 可是这样子-p 映射的端口会失效
    jaylee4869
        5
    jaylee4869  
    OP
       2019-11-29 16:26:11 +08:00
    @hopingtop 本地测试报错:
    connection timed out: /192.168.65.3:8233
    但是另一个负载均衡( 192.168.20.49:8233 )的服务没有问题
    jaylee4869
        6
    jaylee4869  
    OP
       2019-11-29 16:30:15 +08:00
    而实际上我部署的真实局域网 ip 是 192.168.20.21 ,并不是 192.168.65.3
    jaylee4869
        7
    jaylee4869  
    OP
       2019-11-29 16:37:03 +08:00
    @hopingtop 好像找到问题了,mac 下面 docker run --net=host 容器的 ip 和 mac 机器的 ip 不一致,但是 linux 机器是一致的。。。
    jaylee4869
        8
    jaylee4869  
    OP
       2019-11-29 16:38:23 +08:00
    hopingtop
        9
    hopingtop  
       2019-12-02 10:00:51 +08:00
    @jaylee4869 如果我没有记错,macOS 下,docker host 网络模式是不生效的。
    因为在 mac 下 docker 是跑在 macOS 下的虚拟机内部
    在 macOS 下面最好用 bridge 模式
    zhuyuefeng
        10
    zhuyuefeng  
       2019-12-03 09:55:12 +08:00 via iPhone
    简单使用可以先试试 docker swarm 在多主机间进行调度

    如果想要深入使用、业务需求等 上 k8s ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:12 · PVG 06:12 · LAX 14:12 · JFK 17:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.