分享好友 最新动态首页 最新动态分类 切换频道
docker——三剑客之Docker swarm
2024-12-26 22:28

Docker Swarm是Docker公司推出的官方容器集群平台,基于Go语言实现。
目前,包括Rackspace在内的许多平台都采用了Swarm,用户很容易在AWS等公有云平台使用Swarm。

Swarm的前身是Beam项目和libswarm项目,首个正式版本(Swarm V1)在2014年12初发布。
为了提高可扩展性,2016年2月对架构进行重新设计,推出V2版本,支持超过1000个节点。
最新的Docker Engine已经集成了Swarm Kit,加强了对Swarm的协调支持。

作为容器集群管理器,Swarm最大的优势就是100%支持标准的Docker API
各种基于标准API工具,如Compose、docker.py,各种管理软件,甚至Docker本身都可以很容易地与Swarm集成。
这大大方便了用户将原先基于单节点地系统移植到Swarm上。
同时Swarm内置了对Docker网络插件地支持,用户可以很容易地部署跨主机地容器集群服务。

Swarm是典型地master-slave结构,通过发现服务来选举manager。manager是中心管理节点,各个node上运行agent接受manager地统一管理。

docker——三剑客之Docker swarm

在v2中,集群会自动通过Raft协议分布式选举manager节点,无需额外地发现服务地支持,避免了单节点瓶颈。
同时v2内置了基于DNS地负载均衡和外部负载均衡机制地集群支持。

对于Docker1.12已经更新的版本,swarm相关命令已经原生嵌入到了Docker Engine中,因此我们可以直接使用。
首先查看docker swarm的帮助信息:

在构建集群之前首先应该保证的是每台机器(不论是虚拟机还是物理机)上面都已经安装Docker Engine并且已经启动,当然你可以使用docker machine来快速构建。

为了更加清晰的使用docker swarm init进行初始化,我们首先依旧是查看帮助信息。

需要说明的是节点可用性的三种状态:
  • Active:集群中该Node可以被指派TASK;
  • Pause:集群中该Node不可以被指派新的Task,但是其它已经存在的TASK保持运行;
  • Drain:集群中该Node不可以被指派新的Task,Swarm Scheduler停掉已经存在的Task;

下面具体代码:

上面–advertise-addr选项指定Manager Node会publish它的地址为192.168.1.107,后续Worker Node加入到该Swarm集群,必须要能够访问到Manager的该IP地址。
该结果中给出了后续操作引导信息,告诉我们如何将Worker Node加入Swarm集群中.

 

查看帮助信息:

加入test节点:

加入test2节点:

对于token后面的一长串字符是集群初始化的时候生成的令牌,每个想要加入这个集群的机器都需要拿着这个令牌才能加入到该集群.

可以通过docker node查看当前集群的所有节点:

名词解释:
  • ID:swarm会为集群中的每台机器分配一个唯一ID;
  • HOSTNAME:主机名
  • STATUS:当前状态
  • AVAILABILITY:节点的可用性
  • MANAGER STATUS:是否是管理节点
  • ENGINE:Docker的版本

 

通过查看帮助信息可以知道节点的相关操作:

Swarm支持设置一组Manager Node,通过支持多Manager Node实现HA。
那么这些Manager Node之间的状态的一致性就非常重要了,多Manager Node的Warm集群架构,如下图所示(出自Docker官网):

通过上图可以看出,Swarm使用了Raft协议来保证多个Manager之间状态的一致性.
基于Faft协议,Mananger Node具有一定的容错功能,假设Swarm集群中有N个Manager Node,那么整个集群可以容忍最多(N-1)/2个节点失效,如果是一个三个Manager Node的Swarm集群,最多只能容忍一个Manager Node挂掉.

下面是对一些常规操作的解释:

查看帮助信息:

 

(1)修改节点的可用性

将test可用性修改为pasue,返回主机名:

再次查看状态信息:

常见的变更操作:
  • 设置Manager Node只具有管理功能
  • 对服务进行停机维护,可以修改AVAILABILITY为Drain状态
  • 暂停一个Node,然后该Node就不再接收新的Task
  • 回复一个不可用或暂停的Node

(2)标签操作

每个Node的主机配置情况可能不同,比如有的适合运行CPU密集型应用,有的适合运行IO密集型应用,
Swarm支持给每个Node添加标签元数据,这样可以根据Node的标签,来选择性地调度某个服务部署到期望的一组Node上。

添加或者更新标签:

可以通过docker node inspect 命令来查看标签信息

删除节点标签:

(3)角色操作

  

Usage: docker node demote/promote NODE [NODE...]
目前集群的状态信息:

将test升级为manager节点:

查看帮助信息:

示例:

 

查看帮助信息:

 

 

在Swarm集群上部署服务,必须在Manager Node上进行操作。
先说明一下Service、Task、Container(容器)这个三个概念的关系,如下图(出自Docker官网)非常清晰地描述了这个三个概念的含义:

在Swarm mode下使用Docker,可以实现部署运行服务、服务扩容缩容、删除服务、滚动升级等功能。
Docker服务的功能比较丰富,通过查看帮助信息可以很清楚的到它有那些操作。

下面是部分命令的讲解:

可以通过docker service ls来查看已经创建的服务。

 

Docker Swarm支持服务的扩容缩容,Swarm通过 --mode
选项设置服务类型,提供了两种模式:
  一种是replicated,我们可以指定服务Task的个数(也就是需要创建几个冗余副本),这也是Swarm默认使用的服务类型;
  另一种是global,这样会在Swarm集群的每个Node上都创建一个服务。

格式:
  docker service scale 服务ID=服务Task总数

通过docker service ps可以查看各个副本的状况。

最新文章
超级外链发布与SEO:语义剖析与搜索引擎优化
超级外链发布,什么是超级外链发布?超级外链发布有什么用?超级外链是收集了上万个查询网站的链接,通过模拟人工查询留下查询记录,而且百度、谷歌等搜索引擎都会抓取其中的网址,SEO外链工具会自动
廊坊市朗杰教育拼多多搜索词应该如何利用
流量信息获取是所有企业商家都心心念念的事情,而搜索流量是拼多多三大流量问题之一,今天我们就来分享自己关于中国商品标题关键词的优化教学技巧。优化设计好了标题,才能获取到源源不断的搜索流量。古人云:名称不正确,文字不流畅。品多
巨丰投顾:中央经济工作会议强调稳住楼市股市
​​作者|丁臻宇,编辑|王瑾熙来源:巨丰投顾、好股票应用巨丰今日策略巨丰投顾认为随着各项逆周期调节政策措施落地,A股已逐步探明市场底部,并出现中长期介入机会。当前,市场正处于一个大级别上行趋势的调整期中,且调整临近尾声并面临
连云港旅游景点,连云港旅游景点攻略
大家好,今天小编关注到一个比较有意思的话题,就是关于连云港旅游景点的问题,于是小编就整理了3个相关介绍连云港旅游景点的解答,让我们一起看看吧。第一名,花果山。名声在外,第一没有疑问。第二,苏马湾海滨浴场,江苏省最好的海边浴
济南专业考研辅导机构排名前十
新东方考研是新东方教育旗下品牌,新东方考研寄宿学校考生提供全套复习辅导课程,包括周末考研乐学、考研集训营、VIP1对1公共课、VIP1对1专业课、精品网课、考研直播课等系列产品,满足考生学习备考需要。新东方考研寄宿学校有双师伴学,从
史上最轻便好用的kafka ui界面可视化图形界面工具
package com.jq.kafkaui.util;import com.alibaba.fastjson.JSONObject;import com.jq.kafkaui.domain.Topic;import com.jq.kafkaui.dto.ResponseDto;import com.jq.kafkaui.dto.SourceInfo;import lombok.extern.slf4j.Slf4j;import org.a
话题浏览量32亿+!小红书达人如何正确解锁“爆改”?
1、万物皆可爆改:从人、房子、宠物,到产品和企业2024年,爆改在小红书相当火热,从素人爆改(如妆容、穿搭、健身)、出租屋改造、宠物爆改(宠物美容),到品牌产品猎奇爆改(如白象香菜面、足力健爆改玛丽珍),甚至企业改造(胖东来爆
第五十七章 妙手空空-摸金符
  再次抛钩,继续钓鱼。  片刻之后,传来鱼儿上钩的提示消息。  秦奋直接起钩,这次钓到了一只毛蟹。  与此同时也触发了意外事件,一只偷吃的老鼠切入画面。  老鼠:“吱吱吱!”  秦奋把毛蟹以及一开始钓到的对虾一起送给了老
农业银行信用卡逾期怎么处理才能避免影响信用
农业银行信用卡逾期怎么处理小编导语在现代社会中,信用卡已经成为了人们日常消费的重要工具。农业银行作为中国的一家大型国有银行,提供了多种类型的信用卡产品,方便客户的日常消费和财务管理。随着消费的增加,一些持卡人可能会面临信用
相关文章
推荐文章
发表评论
0评