docker——部署Docker swarm集群

本文详细介绍了如何使用Docker Swarm部署和管理集群,包括初始化Swarm、配置节点、部署图形化UI、服务配置、扩容收缩、网络管理和私有仓库搭建。在Swarm中,服务可以在节点故障时自动迁移,确保高可用性。
摘要由CSDN通过智能技术生成

一、Docker swarm简介

Docker swarm与docker-compose一样,都是docker官方推出的docker容器的编排工具。但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

Docker swarm:其作用就是把若干个Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。

Docker swarm中有三种角色:

Manager node:负责执行容器的编排和集群的管理工作,保持并维护swarm处于期望的状态,swarm可以有多个mana gernode,他们会自动协商选举出一个leader执行编排任务;但相反,不能没有manager node;
Worker node:接受并执行由manager node派发的任务,并且默认manager node也是一个worknode,不过可以将它设置manager-only node,让它负责编排和管理工作;
Service:用来定义worker上执行的命令;

注意:在一个Docker Swarm群集中,每台docker服务器的角色可以都是manager,但是,不可以都是worker,也就是说,不可以群龙无首,并且,参与群集的所有主机名,千万不可以冲突。

二、环境准备

系统版本 docker版本 主机名 ip地址
node01 192.168.10.52
centos 7.5 18.09.0 node02 192.168.10.53
node03 192.168.10.54

注意事项:
保证时间同步;
关闭防火墙与SElinux(实验环境);
更改主机名;
编写host文件,保证可以i进行域名解析;
确保docker服务正在运行

三、初始化Swarm群集

[root@node01 ~]# tail -3 /etc/hosts       
192.168.10.52 node01
192.168.10.53 node02
192.168.10.54 node03
//三台主机都需配置hosts文件实现域名解析的效果
[root@node01 ~]# docker swarm init --advertise-addr 192.168.10.52
//--advertise-addr:指定与其他node通信的地址

命令的返回信息,如图:
在这里插入图片描述

四、配置node02、node03加入、离开swarm群集

node02的操作如下

[root@node02 ~]# docker swarm join --token SWMTKN-1-1dng6ya431doiv4zco0ctidewipqtmdtazho5x8dm86y3cpugm-1j61jldff1deanqug6bxsxd5i 192.168.10.52:2377
This node joined a swarm as a worker.

node03的操作如下

[root@node03 ~]# docker swarm join --token SWMTKN-1-1dng6ya431doiv4zco0ctidewipqtmdtazho5x8dm86y3cpugm-1j61jldff1deanqug6bxsxd5i 192.168.10.52:2377
This node joined a swarm as a worker.

//node02、node03默认是以worker身份加入的

node01的操作如下

[root@node01 ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
cs215etnv76dfzxu6ogmu2nk2     node02              Ready               Active                                  18.09.0
oec4ev02mg6zyb38rkwxydyel     node03              Ready               Active                                  18.09.0
xojmrky2j13xr6fiq07eub57j *   npde01              Ready               Active              Leader              18.09.0
//可以看出node01、node02、node03的状态为Active

node02、node03申请离开集群

[root@node02 ~]# docker swarm leave

[root@node03 ~]# docker swarm leave

node01的操作如下

[root@node01 ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
cs215etnv76dfzxu6ogmu2nk2     node02              Down                Active                                  18.09.0
oec4ev02mg6zyb38rkwxydyel     node03    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值