美文网首页
搭建 docker swarm 对外访问服务

搭建 docker swarm 对外访问服务

作者: shoyu666 | 来源:发表于2019-08-21 10:47 被阅读0次
    搭建 docker swarm 对外访问服务
    
    背景:
    创建2个服务A,B;A运行在Host A中,B运行在Host B中
    A能访问B,B能对外提供服务
    
    image.png
    swarm搭建
    1:Host A,B 分布安装docker
    2: Host A 设置为是Swarm Manager,Host B加入A的Swarm 成为Swarm worker
    
    参考:https://docs.docker.com/get-started/part4/
    
    在Host A主机上使用docker node命令为node(Host B)添加label:node.labels.where==B
    docker-compose.yml用到(用于指定服务运行在哪台机子上)
    参考:https://docs.docker.com/swarm/scheduler/filter
    
    #docker-compose.yml 服务描述
    version: '3'
    services:
      serviceA:
        image: nginx
      serviceB:
        image: nginx
        #对外暴露服务(8000端口)
        ports:
          - "8000:80"
        deploy:
          placement:
            constraints: 
            #指定运行在Host B上
               - node.labels.where==B
    networks:
    #overlay网络,serviceA,serviceB在同一个overlay网络上
      overlay:
    
    
    在Host A上执行  docker stack deploy -c docker-compose.yml  d
    
    serviceA和serviceB都会部署在Host A创建的集群里面。
    serviceA的container A实际运行在Host A
    serviceB的container B实际运行在Host B
    
    进入container A Ping container B 
    在Host A上访问http://ip{Host A}:8000 可以访问serviceB
    
    异常解决:
    1:以上配置正确,Host A无法访问Host B
    检查防火墙,docker需要开启多个端口详见链接
    https://www.digitalocean.com/community/tutorials/how-to-configure-the-linux-firewall-for-docker-swarm-on-ubuntu-16-04
    
    2:进入container A 没有ping命令
    安装一个
    

    相关文章

      网友评论

          本文标题:搭建 docker swarm 对外访问服务

          本文链接:https://www.haomeiwen.com/subject/yucbsctx.html