docker swarm

2023-11-06


 
 

1.docker swarm 常用命令

[root@iZuf6gegyofu0xfk0fx5xwZ ~]# docker swarm -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker swarm COMMAND

Manage Swarm

Commands:
  ca          Display and rotate the root CA
  init        Initialize a swarm
  join        Join a swarm as a node and/or manager
  join-token  Manage join tokens
  leave       Leave the swarm
  unlock      Unlock swarm
  unlock-key  Manage the unlock key
  update      Update the swarm

命令查询官网地址https://docs.docker.com/engine/reference/commandline/docker/

命令
说明
docker swarm init --advertise-addr 192.168.10.117 初始化swarm manager并绑定网卡地址
docker swarm join-token manager 要获取新增管理节点
docker swarm join-token worker 要获取新增工作节点
docker swarm join-token --rotate [manager|worker] 使旧令牌无效并生成新令牌
docker swarm join-token -q [manager|worker] 仅打印 worker/manager 的令牌
docker swarm init --force-new-cluster 强制从当前状态创建一个新集群(去除本地之外的所有管理器身份)
docker swarm leave --force 离开当前集群,如果是 manager 则需要加 --force
docker node rm -f [ID] 强制删除集群,状态为 down 则可以不用 -f ,状态为 Active 则可以强制删除
docker node promote 主机名 将 worker 角色升级为 manager (在 manager 节点执行)
docker node demote 主机名 将manager角色降级为worker (在 manager 节点执行)
docker node update --availability [“active”|“pause”|“drain”] node 更新节点的可用性(有效/暂停/耗尽)

 
 

2. docker swarm 官网地址

 
 

3.初始化节点

3.1 初始化节点

docker swarm init --advertise-addr 
# 注意:如果使用 Docker Desktop for Mac 或 Docker Desktop for Windows 来测试单节点 swarm,只需docker swarm init不带参数运行即可。--advertise-addr在这种情况下无需指定。

在这里插入图片描述

[root@iZuf6gegyofu0xfk0fx5xxZ ~]# docker swarm init  --advertise-addr 172.29.99.157
Swarm initialized: current node (trlyrq62kqpri23442s1zoccg) is now a manager.
# 说明:现在这个节点已经添加进来为一个 manager(管理者)
To add a worker to this swarm, run the following command:
# 说明:如果想将其他的节点加入到这个 swarm 中,可以执行下面的命令
    docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-algun18eflz9tq7g47yso55vd 172.29.99.157:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 说明:如果想要添加一个 manager 或者 worker 节点,也可以使用 'docker swarm join-token manager[worker]' 命令 

在这里插入图片描述

3.2 生成 manager 或者 worker 令牌

# 生成 manager
docker swarm join-token manager

[root@iZuf6gegyofu0xfk0fx5xxZ ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-bud3cv6ae72vraxkw11c5773r 172.29.99.157:2377


# 生成 worker
docker swarm join-token worker

[root@iZuf6gegyofu0xfk0fx5xxZ ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-algun18eflz9tq7g47yso55vd 172.29.99.157:2377

在这里插入图片描述

3.3 查看 swarm 信息

docker info

[root@iZuf6gegyofu0xfk0fx5xxZ ~]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.1-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.14
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: active
  NodeID: trlyrq62kqpri23442s1zoccg
  Is Manager: true
  ClusterID: 7nn98dyh7vwb2nmz88qv5cvcq
  Managers: 3
  Nodes: 5
  Default Address Pool: 10.0.0.0/8  
  SubnetSize: 24
  Data Path Port: 4789
  Orchestration:
   Task History Retention Limit: 5
  Raft:
   Snapshot Interval: 10000
   Number of Old Snapshots to Retain: 0
   Heartbeat Tick: 1
   Election Tick: 10
  Dispatcher:
   Heartbeat Period: 5 seconds
  CA Configuration:
   Expiry Duration: 3 months
   Force Rotate: 0
  Autolock Managers: false
  Root Rotation In Progress: false
  Node Address: 172.29.99.157
  Manager Addresses:
   172.29.99.157:2377
   172.29.99.159:2377
   172.29.99.160:2377
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc version: v1.0.3-0-gf46b6ba
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1062.18.1.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.715GiB
 Name: iZuf6gegyofu0xfk0fx5xxZ
 ID: O5SO:R6J3:V5YF:CWFD:CAL7:5JQI:ZX5H:3PBD:72BU:W5EK:RHBR:BMOU
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://2oka4vlk.mirror.aliyuncs.com/
 Live Restore Enabled: false

在这里插入图片描述

3.4 查看节点信息

docker node ls
# 注意:在 worker 节点时不能查看状态的,只能再 manager 节点查看

在这里插入图片描述

 
 

4.添加节点

  • 将初始化得到的命令在其他节点执行,或者使用 docker swarm join-token manager[worker] 得到的命令
# 上面初始化节点时得到的命令,直接在其他节点中执行即可将节点加入当前的 swarm
[root@iZuf6gegyofu0xfk0fx5xuZ ~]# docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-algun18eflz9tq7g47yso55vd 172.29.99.157:2377
# 以一个 worker 节点加入
This node joined a swarm as a worker.

在这里插入图片描述

 

[root@iZuf6gegyofu0xfk0fx5xvZ ~]# docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-bud3cv6ae72vraxkw11c5773r 172.29.99.157:2377
# 这是一个 manager 节点
This node joined a swarm as a manager.

在这里插入图片描述

 

[root@iZuf6gegyofu0xfk0fx5xwZ ~]# docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-algun18eflz9tq7g47yso55vd 172.29.99.157:2377
# 以一个 worker 节点加入
This node joined a swarm as a worker.

在这里插入图片描述

 
 

5.测试集群使用

  • 测试 swarm 集群在双主双从的状态下,其中一台 manager 停机后能否继续工作
    在这里插入图片描述

  • 另外一台 manager 提示没有 leader,即不可以使用
    在这里插入图片描述

  • 增加一台 manager 节点

# 将一个 worker 节点设置问 manager 节点,首先将当前节点设置为离开状态
docker swarm leave

# 使用 dockr swarm join-token manager 生成的 manager 令牌增加 manager 节点
docker swarm join --token SWMTKN-1-3op7vtz76w1rptvh9ed3rq1591157b78go2psuee4x7ml1kf6a-bud3cv6ae72vraxkw11c5773r 172.29.99.157:2377

在这里插入图片描述

  • 再次测试关闭一台 docker 之后,查看集群是否能使用
docker node ls

Unreachable     # 不可达

# 在关闭一台 manager 节点后,剩余两台仍然可以正常使用

在这里插入图片描述

在这里插入图片描述

 
 

6. Docker Swarm Raft 协议

  • 当 Docker Engine 以 swarm 模式运行时,管理器节点实现 Raft 共识算法来管理全局集群状态。

  • 为什么原因Docker群模式是使用一个共识算法,以确保那些负责在集群中的管理和调度任务的所有经理节点,都存储相同一致的状态。

  • 在整个集群中具有相同的一致状态意味着在发生故障时,任何 Manager 节点都可以接收任务并将服务恢复到稳定状态。例如,如果集群中负责调度任务的Leader Manager意外终止,任何其他 Manager 都可以接手调度的任务并重新平衡任务以匹配所需的状态。

  • 使用共识算法在分布式系统中复制日志的系统确实需要特别小心。它们通过要求大多数节点就值达成一致来确保集群状态在出现故障时保持一致。Raft 最多可以容忍(N-1)/2失败,并且需要大多数或法定人数的 (N/2)+1成员就提议给集群的值达成一致。这意味着在运行 Raft 的 5 个 Manager 的集群中,如果 3 个节点不可用,系统将无法处理更多请求以安排额外的任务。现有任务继续运行,但如果管理器集不健康,则调度程序无法重新平衡任务以应对故障。

  • 群体模式下共识算法的实现意味着它具有分布式系统固有的特性:

  1. 容错系统中的值达成一致。

  2. 通过领导人选举过程相互排斥

  3. 集群成员管理

  4. 全局一致的对象排序和 CAS(比较和交换)原语

 
 
 
 
 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker swarm 的相关文章

随机推荐

  • 掌上和平精英服务器维护要多久,和平精英身份识别卡时间多久 拾取时间限制介绍...

    和平精英上线队友召回模式之后 相信有大批的玩家涌入新模式 那么大家肯定也都知道识别卡是有时间限制的 如果对手死蹲队友的盒子 我们是很难接近的 快来看看和平精英身份识别卡时间多久吧 队友被筛选之后变成了盒子 在他的盒子里面会有一张身份辨认卡
  • CSS水平垂直居中常见方法总结

    说明 本篇文章只是总结一些方法 例子用到的各个元素属性不做解释 详情请看MDN文档 非常的详尽 例子在chrome浏览器下完全好使 IE这个渣渣 附上链接 https developer mozilla org zh CN 本文出现的错误
  • 中国支付清算体系-CNAPS

    中国的支付清算有两套体系 中国现代化支付清算系统和第三方支付清算系统 当你去ATM取钱时 用的是央行的CNAPS 中国现代化支付清算系统 当你用支付宝买买买时 用的是第三方支付的清算系统 这里先介绍第一部分 CNAPS 1 当你在ATM取钱
  • esxi管理端口_ESXI虚拟机创建LACP动态链路汇聚网络负载均衡教程

    大家好 我是村里的萝卜头 今天给大家分享的是ESXI虚拟机添加LACP动态链路汇聚负载均衡教程 动态LACP汇聚是一种系统自动创建 删除的汇聚 不允许用户增加或删除动态LACP汇聚中的成员端口 只有速率和双工属性相同 连接到同一个设备 有相
  • python2定点找色,Python-找到相似的颜色,最好的方法

    我已经创建了一个函数来查找图像中的颜色 并返回x y 现在我需要添加一个新函数 在这里我可以找到具有给定公差的颜色 应该很容易吗 在图像中查找颜色并返回x y的代码 def FindColorIn r g b xmin xmax ymin
  • oCPC和CPC之间的区别

    oCPC官方给出的概念是 智能出价 注重转化 CPC是指按点击付费的结算方式 广告主给每次点击的价钱 从这两点就可以看出来 oCPC比CPC更加符合企业主需求的转化效果 但其实两者的结算方式是一样的 都是按点击计费 不同的是oCPC的智能化
  • 人工智能——数据挖掘1

    1 概述 从技术角度 数据挖掘 data mining 是从大量的不完全的 有噪南的 模糊的随机的实际应用数据中提取隐含在其中的 人们事先不知道的 但又是潜化有用的信身和知识的过程 与数据挖掘相近的同义词包括数据融合 数据分析和决策持第 预
  • 期货开户无为的趋势跟踪

    一 短线交易 很多知名的短线高手都有逆天的稳定低回撤向右上方倾斜的资金曲线 十分诱人 短线交易也是让人以为最容易实现暴富的交易风格 大部分人都是从短线开始做交易的 因为每次都赚让人有良好的感觉 但实际上短线交易的难度是非常大的 难就难在短线
  • Python生成器

    1 生成器 生成器是一种特殊的迭代器 它是通过函数来实现的 生成器函数每次执行到yield语句时 会返回yield后面的值 并暂停函数的执行 下次调用生成器时 会从上一次暂停的位置继续执行 这种方式可以节省内存 因为不需要一次性生成所有的值
  • 替换手机号中间4位(php,js)

    JS方法 function hideMobile num var mphone num substr 3 4 var lphone num replace mphone return lphone php方法 phone substr re
  • 刷 leetcode 700+ 题的一些感受

    刷题过程 我相信很多人和我一样 刷题步骤是 一 打开 leetcode 二 注册帐号 三 做第一题 两数之和 四 不会 劝退 最后该干嘛干嘛去了 算法此路不通 心理准备 这是一场持久战 这是一场持久战 这是一场持久战 可能你打开leetco
  • micropython api_micropython

    A WASM module built from the official MicroPython port MicroPython js MicroPython transmuted into Javascript WASM by Ems
  • 关于PyCharm编程中报出ImportError: Missing optional dependency ‘openpyxl‘. Use pip or conda to ins错误的解决办法

    关于PyCharm编程中报出ImportError Missing optional dependency openpyxl Use pip or conda to ins错误的解决办法之一 本人遇到的问题在于没有引入相应的包 解决的详细办
  • 如何才算成功?如何才能成功?

    author skate time 2012 08 14 如何才算成功 如何才能成功 个人感悟 清楚自己 熟悉周围环境 精通大势所趋 把握时机 创造机会 审时度势 衡量取舍 平和心态 引文 感悟成功与成功者 http blog sina c
  • 第二十五讲:OSPF路由协议邻居认证配置

    在相同OSPF区域的路由器上启用身份验证的功能 只有经过身份验证的同一区域的路由器才能互相通告路由信息 这样做不但可以增加网络安全性 对OSPF重新配置时 不同口令可以配置在新口令和旧口令的路由器上 防止它们在一个共享的公共广播网络的情况下
  • [Codeforces] combinatorics (R1600) Part.6

    Codeforces combinatorics R1600 Part 6 题单 https codeforces com problemset tags combinatorics 1201 1600 1326C Permutation
  • 华为od 最长密码

    题目描述 小王在进行游戏大闯关 有一个关卡需要输入一个密码才能通过 密码获得的条件如下 在一个密码本中 每一页都有一个由26个小写字母组成的若干位密码 每一页的密码不同 需要从这个密码本中寻找这样一个最长的密码 从它的末尾开始依次去掉一位得
  • C语言中,%d和%u的故事

    有同学问 C语言中 d 和 u有什么区别 C语言课本中常出现u 但我们常用的却是d c语言中的 u是输入输出格式说明符 表示按unsigned int格式输入或输出数据 d 有符号10进制整数 i 有符号10进制整数 o 无符号8进制整数
  • 创建spring项目(Maven)

    首先创建一个空Java项目 项目名称自定义 配置项目jdk 配置maven file gt setting 点 号 添加模块 选择maven
  • docker swarm

    文章目录 1 docker swarm 常用命令 2 docker swarm 官网地址 3 初始化节点 3 1 初始化节点 3 2 生成 manager 或者 worker 令牌 3 3 查看 swarm 信息 3 4 查看节点信息 4