安装swarm环境
swarm manger、node安装、加入集群,以及集群维护。
docker-swarm主机计划
hostname | IP | comments |
---|---|---|
swarm-manager | 192.168.31.40 | |
swarm-node1 | 192.168.31.41 | |
swarm-node2 | 192.168.31.42 |
安装docker
安装swarm之前,先在manager、node节点完成docker环境安装,见: Docker常用操作
- IP地址、时区、hostname、sysctl、ulimit等系统基础设置检查。
- 安装docker。
安装docker-swarm
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
swarm 集群由管理节点(manager)和工作节点(work node)构成。
- swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
- work node:available node,主要负责运行相应的服务来执行任务(task)。
manager节点初始化swarm
在manager节点上执行docker swarm init命令进行初始化。
# 初始化管理节点,记录输出的join --token信息,后面node节点用于加入集群 sudo docker swarm init --advertise-addr 192.168.31.40
Swarm initialized: current node (tonr5adn7buqjfqdx1kasmywy) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0e77njbcxdi6r69gg4dsmp5su9okcqxia47gzogwcpfwkqexaa-20lhbjve4ajqz4472a3dmsjv4 192.168.31.40:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 查询join token信息:worker、manager节点 docker swarm join-token worker docker swarm join-token manager docker info # 查看集群当前状态,可以看到Node Address、Manager Addreses信息 docker node ls # 查看节点状态
docker node ls # 在把node添加到集群后,才会看到后面两个节点。 # MANAGER STATUS列标识为leader的是管理节点,node1和node2此列为空是worker节点。 ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION tonr5adn7buqjfqdx1kasmywy * swarm-manager Ready Active Leader 24.0.7 w4kwyvrmrazlto391br2q6iee swarm-node1 Ready Active 24.0.7 2wwwkgepq5nz46tgiksbngwzo swarm-node2 Ready Active 24.0.7
将node添加到swarm集群
在node节点执行docker swarm join-token命令加入集群(管理集群init完成时输出的参数)。
如果忘记了命令参数,则可以在 manager 节点执行docker swarm join-token worker
查看。
sudo docker swarm join --token SWMTKN-1-0e77njbcxdi6r69gg4dsmp5su9okcqxia47gzogwcpfwkqexaa-20lhbjve4ajqz4472a3dmsjv4 192.168.31.40:2377
This node joined a swarm as a worker.
添加后,在manager节点上运行docker node ls
,就可以看到三个节点了。