基于 Swarm 的 docker 集群搭建
1、安装环境要求
- 3台可以网络通信的Linux主机,并且安装了docker
- 安装1.12.0以上的docker
- 管理节点的IP地址
- 主机之间开放端口
2、准备3台主机
- 3台主机可以是物理机,虚拟机,云主机,甚至是docker machine创建的主机。并安装docker。三台主机分别是manager1,work1和worker2.
安装1.12.0以上的docker
-
管理节点的IP地址
-
所有swarm集群中的节点都会连接到管理节点的IP地址
-
主机间开放端口
以下端口必须是开放的:
- TCP port 2377为集群管理通信
- TCP and UDP port 7946 为节点间通信
- UDP port 4789 为网络间流量
-
如果你想使用加密网络(--opt encrypted)也需要确保ip protocol 50 (ESP)是可用的
主机名称 manager、node1、node2
可以使用
hostnamectl set-hostname docker-node2
修改主机名称,要想始终有效请修改文件vim /ect/hostname
3、创建一个Swarm集群
登陆到manager上,运行以下命令来创建一个新的swarm集群:
docker swarm init --advertise-addr <MANAGER-IP>
输出信息
root@manager1:~# docker swarm init --advertise-addr 192.168.10.104
Swarm initialized: current node (zmvmswnwv6jcvjt1tmq65zzkg) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4q7uby9b9vjrjryrvl9r7kgq23hx0y6nwmdt3b9kmxpfcn7vmu-97op3d7nkn8rp31e0boz0308w 192.168.10.104:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
--token
重要参数,node节点加入需要用,记录下来
运行 docker info
查看集群状态
#找到
Swarm: active
运行docker node ls
来查看节点信息
- nodeId 旁边的*号表示你当前连接到的节点
4、将节点加入到swarm集群中
登录node1 运行创建swarm集群时候产生的命令来将node1加入到集群中:
docker swarm join --token SWMTKN-1-4q7uby9b9vjrjryrvl9r7kgq23hx0y6nwmdt3b9kmxpfcn7vmu-97op3d7nkn8rp31e0boz0308w 192.168.10.104:2377
如果你找不到加入命令了,可以在管理节点运行下列命令找回加入命令
docker swarm join-token worker
*多节点同上
- 最后登录manager节点运行
docker node ls
查看节点,检查是否加入成功。