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