『高级篇』docker之DockerSwarm微服务部署(30)
2019-02-16 00:33:36
李明
  • 访问次数: 377
  • 注册日期: 2018-07-09
  • 最后登录: 2019-10-30

原创文章,欢迎转载。转载请注明:转载自 IT人故事会 ,谢谢!原文链接地址: 『高级篇』docker之DockerSwarm微服务部署(30)

如果我想通过域名访问怎么办,而且这三台主机都有服务。源码: https://github.com/limingios/msA-docker swarm分支


v2-dd865a551d2bfc59107b8d72b1b270ea_hd.p


v2-6604994371d2f3bb6a6ba5f6335140f8_hd.p


v2-165382b519d0bb98aa691b44335e4aa4_hd.p

负载均衡

之前讲理论的时候说过负载均衡,对每个服务在每台主机上都是有负载均衡的,来进行轮询,每台主机server01,server02,server03,分别去访问他们的8080端口,去搭建一个负载均衡,可以用nginx或者apache,这里使用nginx的方式,毕竟之前使用过nginx。拉取部署完,需要20分钟,外网确实很慢。

  • 拉取nginx

docker pull nginx


v2-19b2d0bbc62ac85990ba8f6ed98ecf00_hd.p

  • 编写一个nginx配置挂载进去

vi nginx.conf

配置文件

upstream idig88 {
        server 192.168.66.101:8080;
        server 192.168.66.102:8080;
        server 192.168.66.103:8080;
}
server {
        listen  80;
        server_name     www.idig88.com;
        location / {
                proxy_pass http://idig88;
        }
}

启动命令

docker run -idt -p 80:80 -v `pwd`/nginx.conf:/etc/nginx/conf.d/default.conf nginx


v2-fa05a410221bc5ccaffa777ded277d73_hd.p

配置一个host文件,在主机上 不是server01 server02 server03

sudu vi /etc/hosts


v2-b18217ed4421b3ce1cc7c2a0394ead69_hd.p


v2-eb7da480d4639538ca610c9eaf012ff8_hd.p


v2-27692935370c8bf1ed21c2ca53d548a9_hd.p

登录试试


v2-cba5e7a768945bcd7dc58a9acef628e2_hd.p


v2-0b5254bdc93b4c099d3675f23ddac8b3_hd.p

  • 微服务扩缩容

docker service scale ms_gateway-zuul=3
docker service ps ms-gateway-zuul


v2-6979f6111236c0d348fa1be414f9ce7c_hd.p


v2-6c86c9c652539d1d412888a1ee86014b_hd.p

  • 升级某个微服务

docker service update ms_course-edge-service --limit-cpu 0.5
docker service inspect ms_course-edge-service


v2-e1c01f397210076d36a23874ee1513b4_hd.p


v2-182147c69bc07316c55597e7ff7a22fe_hd.p

总结

  • 以下各节点常规操作命令,比较简单,就不解释了

#取消managerdocker node demote [NODE]
docker node inspect [NODE]
docker node ls# 升级成managerdocker node promote [NODE]
docker node ps [NODE]
docker node rm [NODE]
docker node update [OPTIONS] NODE
  • yml文件这个很复杂,我建议看看官方的文档更实际一些。

PS:有详细看看官网的文档,里面有非常多样化的配置,我相信基本可以满足大家的需求。到这样docker swarm 也就学完了,相信有个整体的认识吧。另外要说下有2个UI管理docker swarm的工具Portainer和Shipyard。下次开始k8s!


v2-5e0719d9fc7dd03ce32e624534c0b631_hd.p