swarm集群搭建

6 篇文章 0 订阅
4 篇文章 0 订阅

基础知识

swarm是docker公司推出的一个docker容器编排工具。

Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的, 它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的Docker API接口作为其前端的访问入口

Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,

Swarm deamon只是一个调度器(Scheduler)加路由器(router),Swarm自己不运行容器,它只是接受Docker客户端发来的请求,调度适合的节点来运行容器,这就意味着,即使Swarm由于某些原因挂掉了,集群中的节点也会照常运行,放Swarm重新恢复运行之后,他会收集重建集群信息。

swarm集群搭建步骤

理论知识

结点的类型有两种:1.manager;2.worker

swarm的调度策略:

1.Random:随机选一个node去运行容器,一般做调试使用。
2.Spread:Spread策略会选择运行容器最少的那台节点来运行新的容器。该策略的优点是使得容器会均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器
3.Binpack:binpack策略会选择运行容器最集中的那台机器来运行新的节点。给策略的优点是能最大化的避免容器碎片化。

默认情况下,使用的是spread调度策略。

若镜像中没有输出端口(EXPOSE),则用service去启动该镜像,则会导致容器服务正常退出。

只要worker结点的主机有一台开启了某个服务,则其余的机器不开启此服务也可以进行该服务

步骤

第一步:搭建前的环境准备

1.修改主机名(需要永久修改主机名,且集群中的每台主机都需要配置)

[root@swarm-manage ~]# hostnamectl set-hostname swarm-manage

再查看/etc/hostname文件,此时可以看到主机名被永久修改了
在这里插入图片描述

2.关闭防火墙和selinux服务(集群中的每台主机都要设置)

[root@swarm-manage ~]# systemctl stop firewalld.service

临时修改selinux

[root@swarm-1 ~]# setenforce 0

永久修改selinux权限

[root@swarm-1 ~]# vim /etc/sysconfig/selinux

在这里插入图片描述
3.配置host文件(每台主机都需要配置)

[root@swarm-1 ~]# vim /etc/hosts

内容如下:主机名和ip地址如下,其中swarm-manage是manage结点,其他的3个都是worker结点。
在这里插入图片描述
将给文件远程传输给其余的结点

[root@swarm-1 ~]# scp /etc/hosts root@192.168.225.133:/etc/hosts

4.下载docker服务

[root@swarm-1 ~]# yum install docker -y

5.开启docker服务

[root@swarm-1 ~]# service docker start

第二步:构建集群

1.添加管理结点:

[root@swarm-1 ~]# docker swarm init --advertise-addr 192.168.0.134

在这里插入图片描述

2.将其余worker结点添加进入该集群:

docker swarm join \
--token SWMTKN-1-05uj3ze006ukp1y5zp5p6j45y3oxhltlhv9lrlvyg33ehijwi1-bd5oyt6qh5ecfmrt7belq6uee \
192.168.225.134:2377

结果如下:可以看见,集群已经搭建成功

[root@swarm-manage ~]# docker node ls

在这里插入图片描述

注意事项/常见错误:

1.不能用hostname去修改主机名,这是临时修改的,没有写进/etc/hostname文件下,否则,集群搭建中会找不到主机名对应的主机
在这里插入图片描述
2.时钟要同步 ,否则与manage时钟不同步的结点是添加不了的
解决时钟同步问题
3.证书问题,如果添加结点时,时钟已经同步了,但是仍然报错误:
在这里插入图片描述
此时就可以按此方法解决: 解决证书问题
4.selinux要关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值