> 原文链接地址:『高级篇』docker 之 DockerSwarm 微服务部署 (30)
如果我想通过域名访问怎么办, 而且这三台主机都有服务. 源码: https://github.com/limingios/msA-docker swarm 分支
负载均衡
之前讲理论的时候说过负载均衡, 对每个服务在每台主机上都是有负载均衡的, 来进行轮询, 每台主机 server01,server02,server03, 分别去访问他们的 8080 端口, 去搭建一个负载均衡, 可以用 nginx 或者 apache, 这里使用 nginx 的方式, 毕竟之前使用过 nginx. 拉取部署完, 需要 20 分钟, 外网确实很慢.
拉取 nginx docker pull nginx
编写一个 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
配置一个 host 文件, 在主机上 不是 server01 server02 server03
sudu vi /etc/hosts
登录试试
微服务扩缩容
- docker service scale ms_gateway-zuul=3
- docker service ps ms-gateway-zuul
升级某个微服务
- docker service update ms_course-edge-service --limit-CPU 0.5
- docker service inspect ms_course-edge-service
总结
以下各节点常规操作命令, 比较简单, 就不解释了
- # 取消 manager
- docker node demote [NODE]
- docker node inspect [NODE]
- docker node ls
- # 升级成 manager
- docker node promote [NODE]
- docker node ps [NODE]
- docker node rm [NODE]
- docker node update [OPTIONS] NODE
YAML 文件这个很复杂, 我建议看看官方的文档更实际一些.
PS: 有详细看看官网的文档, 里面有非常多样化的配置, 我相信基本可以满足大家的需求. 到这样 docker swarm 也就学完了, 相信有个整体的认识吧. 另外要说下有 2 个 UI 管理 docker swarm 的工具 Portainer 和 Shipyard. 下次开始 k8s!
来源: http://www.bubuko.com/infodetail-2956569.html