使用docker swarm 搭建docker集群

简介:Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。
Swarm 关键概念

1)Swarm

集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的 swarm

2)Node

一个节点(node)是已加入到 swarm 的 Docker 引擎的实例 当部署应用到集群,你将会提交服务定义到管理节点,接着 Manager

管理节点调度任务到 worker 节点,manager 节点还执行维护集群的状态的编排和群集管理功能,worker 节点接收并执行来自

manager 节点的任务。通常,manager 节点也可以是 worker 节点,worker 节点会报告当前状态给 manager 节点

3)服务(Service)

服务是要在 worker 节点上要执行任务的定义,它在工作者节点上执行,当你创建服务的时,你需要指定容器镜像

4)任务(Task)

任务是在 docekr 容器中执行的命令,Manager 节点根据指定数量的任务副本分配任务给 worker 节点

docker swarm:集群管理,子命令有 init, join, leave, update。(docker swarm –help 查看帮助)

docker service:服务创建,子命令有 create, inspect, update, remove, tasks。(docker service–help 查看帮助)

docker node:节点管理,子命令有 accept, promote, demote, inspect, update, tasks, ls, rm。(docker node –help 查看帮助)

node 是加入到 swarm 集群中的一个 docker 引擎实体,可以在一台物理机上运行多个 node,node 分为:

manager nodes,也就是管理节点

worker nodes,也就是工作节点

1)manager node 管理节点:执行集群的管理功能,维护集群的状态,选举一个 leader 节点去执行调度任务。

2)worker node 工作节点:接收和执行任务。参与容器集群负载调度,仅用于承载 task。

3)service 服务:一个服务是工作节点上执行任务的定义。创建一个服务,指定了容器所使用的镜像和容器运行的命令。

service 是运行在 worker nodes 上的 task 的描述,service 的描述包括使用哪个 docker 镜像,以及在使用该镜像的容器中执行什么命令。

4)task 任务:一个任务包含了一个容器及其运行的命令。task 是 service 的执行实体,task 启动 docker 容器并在容器中执行任务。
这里用两台机器来搭建,分别如下:

swarm01 192.168.106.101

swarm02 192.168.106.102

2.1、安装docker

每台机器上都需要安装Docker
yum install -y docker
systemctl start docker
systemctl enable docker

2.2、配置镜像加速

 cat  /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://6kn1wg50.mirror.aliyuncs.com"]
}

然后重启

systemctl restart docker.service

2.3、修改主机名

然后分别修改两台机器的主机名,更改成swarm01,swarm02

hostnamectl set-hostname swarm01

2.4、关闭SELinux

[root@swaram01 ~]# getenforce
Disabled
[root@swaram01 ~]# /usr/sbin/sestatus -v
SELinux status: disabled
修改

vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled

注意: 设置后需要重启才能生效

2.5、编辑hosts文件

vi /etc/hosts
设置两台主机的对应关系

swarm01   192.168.106.101
swarm02   192.168.106.102

2.6、关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

2.7、修改docker监听端口

Swarm是通过监听2375端口进行通信的,所以在使用Swarm进行集群管理之前,需要设置一下2375端口的监听。所有主机节点docker开启2375监听,docker版本不同,配置方式不一样

vim /lib/systemd/system/docker.service
在ExecStart加入:

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述

2.8、重启docker服务

systemctl daemon-reload    ##使配置文件生效
systemctl restart docker

3.0Swarm安装和集群创建

3.1、Swarm镜像下载

在两台机器上分别安装Swarm

[root@swarm01 fendo]# docker pull swarm

[root@swarm01 fendo]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
swarm               latest              59c0df55980b        6 months ago        15.8MB

3.2、初始化Swarm

swarm01 上执行

[root@swarm01 docker]# docker swarm init --advertise-addr 192.168.106.101
Swarm initialized: current node (4m8tmgf9826rskaejma9ld6va) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-4jkfs38mv2mlczlv47xkpvyahxm9g7gagvwm9dadukmtm26om7-2c8f3rkscp0xrobr2ds2g2gdb \
    192.168.106.101:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.
上面命令执行后,该机器自动加入到swarm集群。这个会创建一个集群token,获取全球唯一的 token,作为集群唯一标识。后续将其他节点加入集群都会用到这个token值。

其中,–advertise-addr参数表示其它swarm中的worker节点使用此ip地址与manager联系。命令的输出包含了其它节点如何加入集群的命令。

3.3、添加集群节点

然后在swaram02机器上执行以下命令

[root@swarm02 docker]# docker  swarm join --token SWMTKN-1-4jkfs38mv2mlczlv47xkpvyahxm9g7gagvwm9dadukmtm26om7-2c8f3rkscp0xrobr2ds2g2gdb \
>     192.168.106.101:2377 
This node joined a swarm as a worker.

加入到集群中去:

3.4、查看集群节点

swarm01 查看

[root@swarm01 docker]# docker  node list
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
4m8tmgf9826rskaejma9ld6va *  swarm01   Ready   Active        Leader
xj0e47lfq62xj6otoss0ingh6    swarm02   Ready   Active        
[root@swarm01 docker]# 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值