基于docker1.12创建swarm集群

简介:        Docker 1.12 在 2016 年 7 月 28 日正式 GA,除了大量的在使用上的改进和 bug 修复外,最引人瞩目的是Docker原生支持了 Swarm 模式,而不是将Swarm作为一个容器对集群进行管理。 而docker1.12的操作命令并不向下兼容,本文描述了基于doc

       Docker 1.12 在 2016 年 7 月 28 日正式 GA,除了大量的在使用上的改进和 bug 修复外,最引人瞩目的是Docker原生支持了 Swarm 模式,而不是将Swarm作为一个容器对集群进行管理。

而docker1.12的操作命令并不向下兼容,于是过去所有创建swarm集群的文档都不能参考了,本文描述了基于docker1.12版本创建Swarm集群的过程。


1、主机环境

在阿里云上申请三个vpc网络的ECS,安装centos7.0的镜像,ip和角色分配如下:

192.168.0.18 manager

192.168.0.19 worker

192.168.0.20 worker


2、docker安装


参考官方文档:https://docs.docker.com/engine/installation/linux/centos/


1)首先确认内核版本,内核版本至少要3.10以上

uname -r


2)增加docker的yum源配置

tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF


3)yum安装docker

yum install libdevmapper* -y

yum install docker-engine -y


4)启动docker

service docker start

ps auxwww | grep -i docker



5)配置阿里云的docker源镜像加速

登录阿里云账号,开通阿里云的容器服务

通过以下地址确认阿里云账号专属的加速器地 https://cr.console.aliyun.com/#/docker/booster 

vi /usr/lib/systemd/system/docker.service

原内容:ExecStart=/usr/bin/dockerd 

修改成 ExecStart=/usr/bin/dockerd --registry-mirror=https://被替换内容.mirror.aliyuncs.com

systemctl daemon-reload 

service docker restart



3、docker原生swarm的概念普及

1)manager与worker

一个集群最多有3-7个manager,其他都是worker

manager节点:负责对任务进行调度和其它管理任务,多个管理节点通过 Raft 协议组成集群;

worker节点:负责运行具体的任务,管理节点可以同时作为工作节点

2)server包括两种类型:

复制服务(replicated services):类似 k8s 中复制集的概念,保持一定数量的相同任务在集群中运行;

全局服务(global services):类似 k8s 中 daemon 的概念,每个工作节点上运行一个。

一个服务由多个任务组成,一个任务即一个运行的容器。


4、swarm集群的创建


参考文档 https://docs.docker.com/engine/reference/commandline/swarm_init/

192.168.0.18 manager 

192.168.0.19 worker

192.168.0.20 worker


初始化swarm集群

docker swarm init --advertise-addr 192.168.0.18

Swarm initialized: current node (4bl82cxazydg7y86kzbmfief3) is now a manager.


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

docker swarm join \

--token SWMTKN-1-1mtdmuzd5n5il70r7mm1sg66rnr6ov38dumfdon408sq4nmqgz-0gej194ntpt73v3zhqiy0sq31 \

192.168.0.18:2377


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

docker swarm join \

--token SWMTKN-1-1mtdmuzd5n5il70r7mm1sg66rnr6ov38dumfdon408sq4nmqgz-3pnkjncrpfh4d94aghk2a9h2w \

192.168.0.18:2377


manager上查看当前集群节点

docker node ls

ID                           HOSTNAME      STATUS  AVAILABILITY  MANAGER STATUS

4bl82cxazydg7y86kzbmfief3 *  iZ23ogad28gZ  Ready   Active        Leader




192.168.0.19/192.168.0.20

docker swarm join --token SWMTKN-1-1mtdmuzd5n5il70r7mm1sg66rnr6ov38dumfdon408sq4nmqgz-0gej194ntpt73v3zhqiy0sq31 192.168.0.18:2377


manager上查看集群状态

docker node ls

ID                           HOSTNAME      STATUS  AVAILABILITY  MANAGER STATUS

4bl82cxazydg7y86kzbmfief3 *  iZ23ogad28gZ  Ready   Active        Leader

avd0uhd0mjt939sz8pje1mdyq    iZ232tm0nizZ  Ready   Active        

dpqqdnkcagubmank7qw9i7jhz    iZ23h6u54mvZ  Ready   Active 


 

在192.168.0.20上,将节点手动脱离

docker swarm leave

Node left the swarm.



回到manager上查看集群状态

docker node ls

docker node ls

ID                           HOSTNAME      STATUS  AVAILABILITY  MANAGER STATUS

4bl82cxazydg7y86kzbmfief3 *  iZ23ogad28gZ  Ready   Active        Leader

avd0uhd0mjt939sz8pje1mdyq    iZ232tm0nizZ  Ready   Active        

dpqqdnkcagubmank7qw9i7jhz    iZ23h6u54mvZ  Down    Active  




围绕集群和服务进行管理还涉及到如下的命令,可以直接参考官方文档

https://docs.docker.com/engine/reference/

swarm init

swarm join

service create

service inspect

service ls

service rm

service scale

service ps

service update




目录
相关文章
|
25天前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
48 5
|
2月前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
24 6
|
2月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
36 5
|
2月前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
35 5
|
2月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
32 4
|
2月前
|
数据安全/隐私保护 Docker 容器
docker swarm创建网络
【10月更文挑战第15天】
27 1
|
27天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
27天前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
1月前
|
负载均衡 安全 调度
深入调查研究Docker Swarm
【10月更文挑战第19天】
33 0
|
存储 监控 API
业务运维如何做?Docker集群、监控来帮忙
在2017游戏行业全球同服和安全攻防技术沙龙上,来自心动网络的吴涵分享了《浅谈Docker业务运维》。他主要从运维职责(部署阶段、运行阶段)、潜在的问题、选择Docker的原因、Docker集群、Docker监控、Docker未来六个方面以运维人员的角度分享了Docker的使用经验。
4234 0