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