热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

将所有DockerSwarm节点作为Managers运行的优缺点?

如何解决《将所有DockerSwarm节点作为Managers运行的优缺点?》经验,为你挑选了1个好方法。

我正在考虑构建一个Docker Swarm集群.为了保持简单和相对容错的目的,我想简单地运行3个节点作为管理器.

不使用任何专用工作节点时有哪些权衡取舍?有什么我应该知道的可能不明显吗?

我发现这个Github问题提出了类似的问题,但答案对我来说有点模棱两可.它提到表现可能会更糟.它还提到需要更长时间才能达成共识.在实践中,哪些功能会更慢?"需要更长时间达成共识"实际上会产生什么影响?



1> Bret Fisher..:

TL; DR作为Swarm中的工作者的所有经理的利弊:

优点:

产品质量高,只有3或5台服务器

设计/管理简单

默认情况下仍然安全(秘密在磁盘上加密,相互TLS身份验证和控制平面上的网络加密)

任何节点都可以管理Swarm

缺点:

需要更严格的资源管理,以防止经理人挨饿

降低安全状态,存储在应用服务器上的机密/密钥

受损节点意味着整个Swarm很容易受到攻击

仅限于奇数个服务器,通常为3或5个

您的问题的完整答案

不使用任何专用工作节点时有哪些权衡取舍?有什么我应该知道的可能不明显吗?

使用仅限工作程序的节点没有硬性要求.如果你正在部署一个解决方案,你知道你需要什么资源,并且服务/任务的数量通常是相同的,那么只有三个经理做完所有工作的Swarm都没有错,只要你考虑过这三个受影响的地区:

    安全.在一个完美的世界中,您的经理不会在互联网上访问,只会在后端子网上,只做经理工作.管理员拥有Swarm的所有权限,保存所有加密的秘密,存储加密的Raft日志,并且(默认情况下)将加密密钥存储在磁盘上.工人只存储他们需要的秘密(并且只在记忆中),并且无权在Swarm中做任何工作,除了他们被领导者告知他们做的事情.如果一个工人受到了损害,你就不必"失去了Swarm".这种权力分离并不是一项硬性要求,许多环境都接受这种风险,只是将管理者作为向公众发布服务的主要服务器.这只是安全性/复杂性与成本的问题.

    节点数.冗余管理员的最小数量为3,而我大多数时候建议使用3或5.更多的经理人不等于更多的能力,因为任何时候只有一位经理是领导者,而且是管理者工作的唯一经理.领导者的资源能力决定了它可以同时完成多少工作.如果您的经理也在做应用程序工作,并且您需要更多的资源容量,那么3个节点可以处理,那么我建议第4个节点,而更高的只是工作人员.

    表现/规模.理想情况下,您的经理拥有快速完成所需的所有资源,例如领导者选举,任务调度,运行和对健康检查的反应等.他们的资源利用率将越大,总节点数,总服务数和新服务率他们必须执行的工作(服务/网络创建,任务更改,节点更改,健康检查等).如果您拥有少量服务器和少量服务/副本,那么只要您小心(使用服务上的资源限制)来防止您的应用程序(尤其是数据库)挨饿,您可能会让管理员也成为工作人员资源的docker守护进程如此糟糕以至于Swarm无法完成其工作.当您开始进行随机领导者更改或错误/失败时,您需要在简短的故障排除步骤列表中"检查管理员是否有可用资源".

其他问题:

在实践中,哪些功能会更慢?"需要更长时间达成共识"实际上会产生什么影响?

更多的管理人员=更长的经理人在一个人垮台时选出新的领导者.虽然没有领导者,但Swarm处于只读状态,无法启动新的副本任务,也不会发生服务更新.任何失败的容器都不会自动恢复,因为Swarm管理器无法正常工作.您正在运行应用程序,入口路由网格等等仍然可以正常运行.管理者健康和领导者选举的很大一部分性能与所有经理节点之间的网络延迟有关,与管理者的数量一样多.这就是为什么Docker通常建议单个Swarms管理器都在同一个区域,这样他们就可以在彼此之间进行低延迟的往返.这里没有硬盘规则.如果您在管理人员和测试失败之间测试200毫秒的延迟,并且对领导者选举的结果和速度很好,那就很酷.

背景资料:

Swarm管理员指南

Laura Frank的DockerCon谈Swarm/Raft内部和恢复

我的DockerCon谈论Swarm生产考虑/设计

Nico Kabar DockerCon谈企业Swarm考虑因素

(如果你要大的话)大规模运行Docker EE


推荐阅读
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
author-avatar
徐刚珠宝银饰_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有