基于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




优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/58886

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。