基于docker1.12创建swarm集群

       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

时间: 2024-12-20 14:42:23

基于docker1.12创建swarm集群的相关文章

如何使用Docker Machine创建Swarm集群

本文讲的是如何使用Docker Machine创建Swarm集群,[编者的话]之前,Docker的安装流程非常复杂,用户需要登录到相应的主机上,根据官方的安装和配置指南来安装Docker,并且不同的操作系统的安装步骤也是不一样的.而有了Machine后,不管是在笔记本.虚拟机还是公有云实例上,用户仅仅需要一个命令就轻松搞定安装.当然那你需要先安装Docker Machine.Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker

如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)

本节我们将创建三节点的 swarm 集群. swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node. 所有节点的 Docker 版本均不低于 v1.12.我们的实验环境 node 的操作系统为 Ubuntu 16.04,当然其他 Linux 也是可以的. 在 swarm-manager 上执行如下命令创建 swarm. docker swarm init --advertise-addr 192.168.5

如何使用Docker Machine部署Swarm集群

大家好,今天我们来研究一下如何使用Docker Machine部署Swarm集群.Docker Machine提供了标准的Docker API 支持,所以任何可以与Docker守护进程进行交互的工具都可以使用Swarm来(透明地)扩增到多台主机上.Docker Machine可以用来在个人电脑.云端以及的数据中心里创建Docker主机.它为创建服务器,安装Docker以及根据用户设定来配置Docker客户端提供了便捷化的解决方案.我们可以使用任何驱动来部署swarm集群,并且swarm集群将由于

Docker Swarm 创建服务器集群的教程

Docker Swarm 是创建服务器集群用的工具.把一堆服务器绑到一块儿用,让它们看起来像是一台服务器,通过统一的接口在这些服务器上运行应用. 集群里的服务器之间相互知道彼此,它们也知道哪些服务器上运行了什么样的服务,如果访问的服务在服务器上不存在,它会把访问转移到集群里的正确的服务器上去处理.一个服务可以用多个容器来支持,这些容器运行在集群里的不同的服务器上,请求可以均衡的分布给这些容器.当有服务器挂掉以后,在它上面运行的服务会被转移到其它的服务器上运行. Docker Swarm 只需要几

《Storm实时数据处理》一1.5 创建Storm集群——配置机器

1.5 创建Storm集群--配置机器 本地模式下测试集群对调试和验证集群的基本功能逻辑很有帮助.但是,这并不代表你就能够了解集群在实际环境中运行的状况.此外,只有当系统已经在产品环境中运行时,开发工作才算真正完成.任何开发者都应该重视这一点,并且这也是整个DevOps实践的基础.无论采用什么方法,你都必须能够将代码可靠地部署到产品环境中.本节将展示如何直接通过版本控制创建和配置一个完整的集群.在此之前,需要事先说明一些有关创建和配置集群的基本原则: 我们需要时刻了解服务器的会话状态.在没有严格

《Storm实时数据处理》一1.6 创建Storm集群——配置Storm

1.6 创建Storm集群--配置Storm 当拥有一组准备好进行应用程序配置的虚拟机后,你就可以在每个节点上安装和配置适当的软件包了. 1.6.1 实战 Step01 按照图1-7所示的目录结构,新建名为storm-puppet的项目. Step02 在配置好的节点上,Puppet的运行入口(起点)是site.pp.在manifests目录下新建site.pp并添加以下内容: Step03 接着,你需要定义Storm模块.模块应该放置于modules目录下,并且和Puppet项目根目录的结构一

如何为大型企业创建OpenPages集群环境

本文将着重介绍如何为大型企业创建 OpenPages 集群环境,帮助他们扩展应用规模,实现负载均衡,提高风险管理,增强安全控制. 2001 年:OpenPages 公司开始开发帮助企业管理复杂风险和合规管理措施的平台. 2002 年:依据萨班斯 - 奥克斯利法案,着重开发财务控制管理功能. 2006 年:拓展风险和合规管理的其它新领域,包括操作风险管理.政策和合规管理.资讯科技管治.内部审计管理. 2010 年:IBM 完成对 OpenPages 公司的收购.IBM 与 OpenPages 的结

HDInsight如何创建Hadoop集群

HDInsight如何创建Hadoop集群   带大家一起看下微软Azure云中的Hadoop集群创建,首先你必须先创建个存储账号,然后新建Hadoop集群/HBase/Storm,等待21分钟左右,一个Hadoop集群就创建完成了,看图:                           转载请注明出处:http://blog.csdn.net/yangzhenping, 谢谢!

基于分布式SSD云盘集群的Oracle 性能测试报告

  1.测试目的 阿里云云服务器(Elastic Compute Service,简称 ECS)是一种简单高效.处理能力可弹性伸缩的计算服务,帮助客户快速构建更稳定.安全的应用,提升运维效率,降低 IT 成本,使您更专注于核心业务创新.而阿里云块存储(Block Storage),是阿里云为云服务器ECS提供的低时延.持久性.高可靠的数据块级随机存储.块存储支持在可用区内自动复制数据,防止意外的硬件故障导致数据不可用,以保护您的业务免于组件故障的威胁.就像对待硬盘一样,客户可以对挂载到ECS实例