docker swarm集群实现负载均衡


swarm部署nginx服务

上一篇介绍了docker swarm集群搭建,下面进行应用部署。

  • 各节点拉取镜像
    docker pull nginx
    或者有成型的tar包上传到各节点,并导入。
  • 在manager节点部署服务
[root@master1 ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
w4w3yr89qidg1um3nk6ss1yu3 *   master1             Ready               Active              Leader              19.03.8
qz21kqcebkgtwm1jnho8ao3gy     node1               Ready               Active                                  19.03.8
nb6ny4yuifcbz60myu8mvzodu     node2               Ready               Active                                  19.03.8

[root@master1 ~]# docker service create --name web --replicas 3 -p 80:80 nginx

*列出服务
docker service ls 或 docker service list
*列出各节点的分配
docker service ps web

  • 修改nginx默认配置页面
    此时访问各节点ip可以打开nginx默认页,需要简单修改便于区分负载均衡。
    查看各节点container id :docker ps -a
    master1上:
echo '<h1>master1-swarm</h1>' > index.html
docker cp index.html 3f:/usr/share/nginx/html

*3f为容器id号

  • 配置其他节点
node1: echo '<h1>node1-swarm</h1>' > index.html  && docker cp index.html a7:/usr/share/nginx/html
node2: echo '<h1>node2-swarm</h1>' > index.html  && docker cp index.html 0a:/usr/share/nginx/html

测试负载均衡

任意节点上:

[root@master1 ~]# docker container cp index.html 3f:/usr/share/nginx/html^C
[root@master1 ~]# curl 172.16.230.11
<h1>node1-swarm</h1>
[root@master1 ~]# curl 172.16.230.11
<h1>master1-swarm</h1>
[root@master1 ~]# curl 172.16.230.11
<h1>node2-swarm</h1>
[root@master1 ~]# curl 172.16.230.11
<h1>node1-swarm</h1>
[root@master1 ~]# curl 172.16.230.11
<h1>master1-swarm</h1>
[root@master1 ~]# curl 172.16.230.11
<h1>node2-swarm</h1>
[root@master1 ~]#
  • 调整容器副本数
    scale参数:
    在manager节点上: docker service scale web=6
    查看服务状态: docker service ps web


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM