Join nodes to a swarm添加节点到集群

当你第一次创建集群时,你将单个Docker引擎置于集群模式中。为了充分利用群体模式,可以在集群中添加节点:

  • 添加工作节点可以增加容量。当你将服务部署到集群中时,引擎会在可用节点上调度任务,无论这些节点是工作节点还是管理节点。当你向你的群中添加工作者时,你就增加了群的规模来处理任务而不影响管理者的raft共识。
  • 管理器节点增加了容错性。Manager节点为集群执行编配和集群管理功能。在manager节点中,单个leader节点执行编排任务。如果一个leader节点宕机,其余的manager节点将选择一个新的leader,并恢复群集状态的编排和维护。默认情况下,manager节点还运行任务。

在向集群中添加节点之前,必须在主机上安装Docker引擎1.12或更高版本。
Docker引擎根据你提供给Docker swarm join命令的join-token连接令牌加入集群。节点仅在连接时使用令牌。如果你随后轮转了标记,它不会影响现有的集群节点。请参考集群模式下运行Docker引擎。
注意:Docker引擎允许非fips节点加入支持fips的集群。
虽然混合FIPS环境使升级或更改状态更容易,但Docker建议不要在生产环境中运行混合FIPS环境。

Join as a worker node做为工作节点添加

要检索包含工作节点的连接令牌的连接命令,请在管理器节点上运行以下命令:

$ docker swarm join-token worker

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

    docker swarm join \
--token SWMTKN--49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100:

运行来自工作节点连接集群的输出命令:

$ docker swarm join \
--token SWMTKN--49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
192.168.99.100: This node joined a swarm as a worker.

docker swarm join命令执行以下操作:

  • 将当前节点上的Docker引擎切换到集群模式。
  • 向管理器请求TLS证书。
  • 用机器主机名命名节点
  • 根据集群令牌在管理器侦听地址将当前节点连接到集群。
  • 将当前节点设置为Active可用性,这意味着它可以从调度程序接收任务。
  • 将ingress覆盖网络扩展到当前节点。

Join as a manager node作为管理节点加入

当你运行docker swarm join并传递manager令牌时,docker引擎将切换到与workers相同的swarm模式。Manager节点也参与了raft共识。新的节点应该是Reachable,但是现有的管理器仍然是集群的Leader。
Docker建议每个集群使用3到5个管理器节点来实现高可用性。由于集群模式管理器节点使用Raft共享数据,因此管理器的数量必须为奇数。只要管理器节点的一半以上的仲裁可用,集群就可以继续工作。
有关群管理器和管理群的详细信息,请参见Administer and maintain a swarm of Docker Engines
要检索包含管理节点的连接令牌的连接命令,请在管理节点上运行以下命令:

$ docker swarm join-token manager

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

    docker swarm join \
--token SWMTKN--61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
192.168.99.100:

在新管理节点的输出端运行命令,将其加入集群:

$ docker swarm join \
--token SWMTKN--61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
192.168.99.100: This node joined a swarm as a manager.

docker swarm英文文档学习-6-添加节点到集群的更多相关文章

  1. docker swarm英文文档学习-11-上锁你的集群来保护你的加密密钥

    Lock your swarm to protect its encryption key上锁你的集群来保护你的加密密钥 在Docker 1.13及更高版本中,默认情况下,群管理器使用的Raft日志在 ...

  2. docker swarm英文文档学习-3-开始

    https://docs.docker.com/engine/swarm/swarm-tutorial/ 1)Getting started with swarm mode 本教程向你介绍Docker ...

  3. docker swarm英文文档学习-8-在集群中部署服务

    Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...

  4. docker swarm英文文档学习-10-使用Docker密钥管理敏感数据

    Manage sensitive data with Docker secrets使用Docker secrets管理敏感数据 About secrets 对于Docker Swarm服务来说,sec ...

  5. docker swarm英文文档学习-4-swarm模式如何运行

    1)How nodes work Docker引擎1.12引入了集群模式,使你能够创建一个由一个或多个Docker引擎组成的集群,称为集群.集群由一个或多个节点组成:在群模式下运行Docker引擎1. ...

  6. docker swarm英文文档学习-5-在swarm模式中运行Docker引擎

    Run Docker Engine in swarm mode在swarm模式中运行Docker引擎 当你第一次安装并开始使用Docker引擎时,默认情况下禁用swarm模式.在启用集群模式时,需要处 ...

  7. docker swarm英文文档学习-1-概述

    参考https://docs.docker.com/engine/swarm/ Swarm mode overview群模式概述 Docker的当前版本包括集群模式,用于本地管理称为集群的Docker ...

  8. docker swarm英文文档学习-9-使用Docker Configs存储配置数据

    Store configuration data using Docker Configs 使用Docker Configs存储配置数据 Docker 17.06引入了集群服务配置,允许你在服务镜像或 ...

  9. docker swarm英文文档学习-7-在集群中管理节点

    Manage nodes in a swarm在集群中管理节点 List nodes列举节点 为了查看集群中的节点列表,可以在管理节点中运行docker node ls: $ docker node ...

随机推荐

  1. 【Java并发编程】7、线程池

    1. 为什么使用线程池 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过网络协 ...

  2. 撩课-Web大前端每天5道面试题-Day27

    1.浏览器缓存? 浏览器缓存分为强缓存和协商缓存.当客户端请求某个资源时,获取缓存的流程如下: 先根据这个资源的一些 http header 判断它是否命中强缓存, 如果命中,则直接从本地获取缓存资源 ...

  3. Boring Sum(hdu4961)hash

    Boring Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total S ...

  4. Python 多线程、多进程 (一)之 源码执行流程、GIL

    Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...

  5. PDO中的预处理

    PDO中的基本的原理和步骤和MySQL中的预处理都是一样的,只不过就是把MySQL中的预处理所有命令行的语法封装成了PDO对象的几个公开的方法而已! 1.发送预处理语句 此时,我们需要调用pdo对象的 ...

  6. <Android 基础(三十四)> TabLayout 从头到脚

    1. 简介 1.TabLayout给我们提供的是一排横向的标签页 2.#newTab()这个方法来创建新的标签页,然后用过#setText()和#setIcon方法分别修改标签页的文本和图标,创建完成 ...

  7. cordova app强制横屏

    非常简单,只需要在config.xml里加上这行: <preference name="Orientation" value="landscape" /& ...

  8. 常用的第三方模块 psutil url

    psutil 用Python来编写脚本简化日常的运维工作是Python的一个重要用途.在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等.要获取这些系统信息, ...

  9. cuda中threadIdx、blockIdx、blockDim和gridDim的使用

    threadIdx是一个uint3类型,表示一个线程的索引. blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程. blockDim是一个dim3类型,表示线程块的 ...

  10. 运维利器万能的 strace

    strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进程状态变更等. ...