1.Docker Swarm的概述
1.1基本概念
Docker Swarm是基于Docker的集群调度管理工具,构建Docker集群,为容器生成副本,实现高可用。结合Overlay实现容器调度和互访。
用户可以通过Swarm API管理多个主机Docker。
Swarm集群包含Manager和Worker工作节点。
1.2 工作原理
在 Swarm 集群中部署镜像创建一个服务时。在一些大的应用上下文环境中需要各种服务配合工作,这样的服务通常称之为微服务。
在创建服务时,可以指定要使用的容器镜像以及容器中要运行的命令。服务还可以定义下面选项:
- 集群要对外服务的端口;
- 在集群中用于服务之间相连的 Overlay 网络:
- 滚动更新策略;
- 集群总运行的副本数量。
1.3基本特性
- 去中心化:包含manager和worker
- 声明式服务模型:定义所期望的服务状态
- 协调期望状态与实际状态的一致性
- 多主机网络
- 负载均衡
- 安全策略:利用TLS(传输层安全)进行身份验证和加密
- 滚动更新
2 实验案例
主机 | 主机名/IP | 主要软件 |
服务器 | manager/192.168.10.101 | centos |
服务器 | worker01/192.168.10.102 | centos |
服务器 | worker02/192.168.10.103 | centos |
二、实验部署
1.设置基础环境
(1)manager主机
[root@localhost ~]# hostnamectl set-hostname manager
[root@localhost ~]# bash
(2)worker01主机
[root@localhost ~]# hostnamectl set-hostname worker01
[root@localhost ~]# bash
(3)worker02主机
[root@localhost ~]# hostnamectl set-hostname worker02
[root@localhost ~]# bash
修改所有主机的hosts文件
[root@manager ~]# vim /etc/hosts
192.168.10.101 manager
192.168.10.102 worker01
192.168.10.103 worker02
2.在manager上创建docker swarm集群
[root@manager ~]# docker swarm init --advertise-addr 192.168.10.101
Swarm initialized: current node (zalgnhmr5p8sj0uu3nhydhmyi) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1j5w9tk2qy97kubws544d8z7arsq97ez8sbg1tgbt020cbc9vl-9yfyo91dvnag41xv6h1ahr71i 192.168.10.101:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
(将该令牌分别加入worker01和worker02上)
[root@manager ~]# docker info (