lavvrence
V2EX  ›  Docker

部署 Docker 容器集群的问题

  •  
  •   lavvrence ·
    torvalds · Nov 28, 2019 · 6619 views
    This topic created in 2385 days ago, the information mentioned may be changed or developed.
    公司现在后端是 Spring Cloud 微服务,一共 8 个服务,其中一个是用户服务,我尝试把用户服务在同一主机上运行两个容器,很好的实现了负载均衡,但是把这个服务换到另一台局域网主机,却失败了。
    想问问如何将容器做不同主机的集群
    Supplement 1  ·  Nov 29, 2019
    开发机器用的 mac,本地测试用的 linux cent os 7,两台机器做的集群。
    10 replies    2019-12-03 09:55:12 +08:00
    hopingtop
        1
    hopingtop  
       Nov 28, 2019   ❤️ 1
    试着看看 docker 容器选择的网络模式。
    如果方便,也可以贴一下你的 Dockerfile,记得删除私密信息
    lavvrence
        2
    lavvrence  
    OP
       Nov 29, 2019
    @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  
       Nov 29, 2019
    @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
    lavvrence
        4
    lavvrence  
    OP
       Nov 29, 2019
    @hopingtop 可是这样子-p 映射的端口会失效
    lavvrence
        5
    lavvrence  
    OP
       Nov 29, 2019
    @hopingtop 本地测试报错:
    connection timed out: /192.168.65.3:8233
    但是另一个负载均衡( 192.168.20.49:8233 )的服务没有问题
    lavvrence
        6
    lavvrence  
    OP
       Nov 29, 2019
    而实际上我部署的真实局域网 ip 是 192.168.20.21 ,并不是 192.168.65.3
    lavvrence
        7
    lavvrence  
    OP
       Nov 29, 2019
    @hopingtop 好像找到问题了,mac 下面 docker run --net=host 容器的 ip 和 mac 机器的 ip 不一致,但是 linux 机器是一致的。。。
    hopingtop
        9
    hopingtop  
       Dec 2, 2019
    @jaylee4869 如果我没有记错,macOS 下,docker host 网络模式是不生效的。
    因为在 mac 下 docker 是跑在 macOS 下的虚拟机内部
    在 macOS 下面最好用 bridge 模式
    zhuyuefeng
        10
    zhuyuefeng  
       Dec 3, 2019 via iPhone
    简单使用可以先试试 docker swarm 在多主机间进行调度

    如果想要深入使用、业务需求等 上 k8s ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5434 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 08:26 · PVG 16:26 · LAX 01:26 · JFK 04:26
    ♥ Do have faith in what you're doing.