0%

Docker Swarm

Docker Swarm简介

Docker Swarm是一个Docker集群调度管理工具。相比于Kubernetes,Swarm内置于Docker,更加轻量,更加简单方便;相应的,就没有Kubernetes那么多强大的特性。

本文搭建使用Swarm,主要参考Swarm mode overviewdocker swarm(一) 入门 – 搭建一个简单的swarm集群

已有两个安装好Docker的机器(swarm-manager和swarm-worker),IP分别为 192.168.56.104 和 192.168.56.105 ,两台主机的hosts都添加:

1
2
192.168.56.104 swarm-manager
192.168.56.105 swarm-worker

Swarm集群搭建

manager node

在swarm-manager节点:

1、创建swarm manager

1
docker swarm init --advertise-addr 192.168.56.104

这一步会生成join命令,复制记录一下。

2、验证安装

1
2
docker info
docker node ls

3、关闭防火墙,方便其他主机加入成为worker

1
2
systemctl stop firewalld
systemctl disable firewalld

worker node

在swarm-worker节点:
1、关闭防火墙,方便manager调用

1
2
systemctl stop firewalld
systemctl disable firewalld

2、加入swarm成为worker

1
docker swarm join --token SWMTKN-1-21v9lvwrzapfzdzhq4js6xbtyasak4hdcdhz9p13fch23zdbn9-bneduvi9fi4ba05eywhqbe94z 192.168.56.104:2377

PS:脱离swarm
docker swarm leave

验证

docker node ls,查看节点状态。

使用Swarm

1、部署一个服务

1
2
3
4
5
docker service create \
--name=vk-nginx \
--publish published=80,target=80 \
--replicas 1 \
voidking/nginx:v1.0

2、查看服务

1
2
docker service ls
docker inspect vk-nginx

3、访问服务

1
2
curl 192.168.56.104
curl 192.168.56.105

如果此时有一个ip是curl不通的,那么说明有问题,因为所有节点都应该添加端口映射关系。

4、服务扩容

1
docker service scale vk-nginx=4

5、查看服务在节点的分布

1
docker service ps vk-nginx