docker swarm英文文档学习-2-关键概念

参考https://docs.docker.com/engine/swarm/key-concepts/

Swarm mode key concepts集群模式关键概念

本主题介绍Docker Engine 1.12集群管理和编配特性特有的一些概念。

What is a swarm?

  Docker引擎中嵌入的集群管理和编配功能是使用swarmkit构建的。Swarmkit是一个独立的项目,它实现了Docker的编配层,并直接在Docker中使用。
  集群由多台以集群模式运行的Docker主机组成,它们分别充当管理员managers(管理成员和委托)和工作者workers(运行群服务services)。给定的Docker主机可以是经理manager、工人worker,也可以同时扮演这两个角色。创建服务service时,需要定义其最佳状态(副本数量、可用的网络和存储资源、服务对外公开的端口,等等)。Docker的工作是维护所需的状态。例如,如果一个工作节点变得不可用,Docker将在其他节点上调度该节点的任务。任务task是一个运行的容器container,它是集群服务service的一部分,由集群管理器manager管理,而不是一个独立的容器。

  集群服务相对于独立容器的一个关键优势是,你可以修改服务的配置,包括它所连接的网络和卷,而不需要手动重新启动服务。Docker将更新配置,使用过期配置停止服务任务,并创建与所需配置匹配的新任务。
  当Docker以集群模式运行时,你仍然可以在参与集群的任何Docker主机以及集群服务上运行独立容器。独立容器和集群服务之间的一个关键区别是,只有群管理器才能管理群,而独立容器可以在任何守护进程上启动。Docker守护进程可以作为管理人员、工人或两者兼而有之地参与到集群中。

  就像你可以使用 Docker Compose来定义和运行容器一样,你也可以定义和运行集群服务栈(swarm service stacks)。
      请继续阅读有关Docker集群服务的概念的详细信息,包括节点 nodes、服务services、任务tasks和负载平衡load balancing。

Nodes节点

  节点是参与集群的Docker引擎的实例。你也可以将其视为Docker节点。你可以在一台物理计算机或云服务器上运行一个或多个节点,但是生产集群部署通常包括分布在多个物理和云机器上的Docker节点。
  要将应用程序部署到集群中,需要向manager节点提交服务定义。管理器manager节点将称为任务task的工作单元分派给工作节点node。
  Manager节点还执行维护集群所需状态所需的编配和集群管理功能。Manager节点选择一个leader来执行编排任务。

  工作节点接收并执行从管理节点分派的任务。默认情况下,管理器节点也作为工作节点运行服务,但是你可以将它们配置为只运行管理器任务且仅作为管理器节点。代理在每个工作节点上运行,并报告分配给它的任务。工作节点将其分配的任务的当前状态通知管理节点,以便管理器能够维护每个工作人员所需的状态。

Services and tasks 服务和任务

  服务service是要在管理器或工作节点上执行的任务的定义。它是集群体系的中心结构,是用户与集群交互的主要根源。
  在创建服务时,要指定要使用哪个容器镜像,以及在运行的容器中执行哪些命令。
  在副本服务模型中,集群管理器manager根据你在所需状态下设置的规模在节点之间分发特定数量的副本任务。

  对于全局服务,swarm在集群中的每个可用节点上为服务运行一个任务task。
  任务task携带Docker容器和在容器中运行的命令。它是集群的原子调度单元。管理节点根据服务级别中设置的副本数量将任务task分配给工作节点。一旦将任务分配给一个节点,它就不能移动到另一个节点。它只能在指定的节点上运行或失败。

Load balancing负载均衡

  swarm管理器使用入口负载平衡公开你希望向集群外部提供的服务。集群管理器manager可以自动为服务service分配一个发布端口,也可以为服务配置一个发布端口。你可以指定任何未使用的端口。如果你没有指定端口,群管理器将为服务分配一个端口,范围为30000-32767。
  外部组件(如云负载平衡器)可以访问集群中任何节点的PublishedPort上的服务,无论该节点当前是否运行该服务的任务。集群中的所有节点都将连接路由到正在运行的任务实例。
  swarm模式有一个内部DNS组件,它自动为集群中的每个服务分配一个DNS条目。集群管理器使用内部负载平衡,根据服务的DNS名称在集群中的服务之间分发请求。

原文地址:https://www.cnblogs.com/wanghui-garcia/p/10237998.html

时间: 2024-10-09 12:02:29

docker swarm英文文档学习-2-关键概念的相关文章

docker swarm英文文档学习-12-在集群模式中的Raft共识

Raft consensus in swarm mode 在集群模式中的Raft共识 当Docker引擎在集群模式下运行时,manager节点实现Raft 共识算法来管理全局集群状态.Docker swarm模式使用共识算法的原因是为了确保集群中负责管理和调度任务的所有manager节点都存储相同的一致性状态.跨集群具有相同的一致状态意味着在出现故障时,任何管理器节点都可以接收任务并将服务恢复到稳定状态.例如,如果集群中负责调度任务的Leader Manager意外死亡,那么任何其他Manage

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

Lock your swarm to protect its encryption key上锁你的集群来保护你的加密密钥 在Docker 1.13及更高版本中,默认情况下,群管理器使用的Raft日志在磁盘上加密.这种静止加密保护你的服务的配置和数据不受获得加密Raft日志访问权的攻击者的攻击.引入该特性的原因之一是支持新的Docker secrets特性. 当Docker重新启动时,用于加密集群节点间通信的TLS密钥和用于加密和解密磁盘Raft日志的密钥都被加载到每个管理器节点的内存中.Dock

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

参考https://docs.docker.com/engine/swarm/ Swarm mode overview群模式概述 Docker的当前版本包括集群模式,用于本地管理称为集群的Docker引擎集群.使用Docker CLI创建一个集群,将应用程序服务部署到一个集群,并管理集群行为. 1.突出特性: 1)与Docker引擎集成的集群管理 : 使用Docker引擎CLI创建一组Docker引擎的集群,你可以在其中部署应用程序服务.你不需要额外的编配软件来创建或管理集群. 2)去中心化设计

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

Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运行服务容器的镜像名称和标记有多少容器参与服务是否有任何端口暴露给集群之外的客户端当Docker启动时,服务是否应该自动启动重启服务时发生的特定行为(例如是否使用滚动重启)服务可以运行的节点的特征(例如资源约束和位置首选项)有关群模式的概述,请参见 Swarm mode key concepts.有关

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

Store configuration data using Docker Configs 使用Docker Configs存储配置数据 Docker 17.06引入了集群服务配置,允许你在服务镜像或运行的容器之外存储非敏感信息,如配置文件.这允许你尽可能保持镜像的通用性,而不需要将配置文件绑定到容器中或使用环境变量.Configs的操作方式与secret类似,不同的是它们没有在静止时加密,而是直接挂载到容器的文件系统中,而不使用RAM磁盘.配置可以在任何时候从服务中添加或删除,服务可以共享配置

py爬取英文文档学习单词

最近开始看一些整本整本的英文典籍,虽然能看个大概,但是作为四级都没过的我来说还是有些吃力,总还有一部分很关键的单词影响我对句子的理解,因为看的是纸质的,所以查询也很不方便,于是想来个突击,我想把程序单词收拢在一起学习一下,希望这样的更有针对性一些,因为你想,arbitrary (任意的,武断的)这样的单词不太可能会出现在技术文档上,学了这样的单词对理解英文技术文档没有太大帮助.所以今天花了几个小时研究了一下,发现是很可行的,实现也不算难.步骤主要是以下几点,第一:先搞定翻译接口.翻译的来源分为接

Android 英文文档下载地址

通过英文Android API学习Android技术是一个不错选择,当然养鸡的专业户要小心了,下面分享一些下载英文文档的链接(请使用迅雷下载): https://dl-ssl.google.com/android/repository/docs-16_r03.zip        https://dl-ssl.google.com/android/repository/docs-17_r02.zip        https://dl-ssl.google.com/android/reposit

对英文文档中的单词与词组进行频率统计

一.程序分析 1.以只读模式读取文件到字符串 def process_file(path): try: with open(path, 'r') as file: text = file.read() except IOError: print("Read File Error!") return None return text 2.对字符串进行数据清洗,返回一个字典 import re word_list = re.sub('[^a-zA-Z0-9n]', ' ', textStr

Nagios 插件开发英文文档网址

http://nagios-plugins.org/doc/guidelines.html#PREFACE Nagios 插件开发英文文档网址,布布扣,bubuko.com