云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

金山云_zuul负载均衡_高性价比

小七 141 0

使用Nomad构建弹性基础设施:调度和自我修复

这是我们使用Nomad构建弹性基础设施系列文章的第二篇。在本系列中,我们将探讨Nomad如何处理意外的故障、停机和集群基础设施的日常维护,通常不需要操作员干预。在这篇文章中,我们将了解Nomad客户机如何通过驱动程序健康检查和活动心跳来实现快速准确的调度以及自我修复。»Nomad客户端代理Nomad代理是一个长时间运行的进程,它在Nomad集群的每台机器上运行。代理的行为取决于它是在客户机模式还是服务器模式下运行。客户机负责运行任务,而服务器负责管理群集。每个集群通常有3到5个服务器节点代理和数千个客户机。客户机模式代理的主要目的是运行用户工作负载,如docker容器。为了实现这一点,客户机将对其环境进行指纹识别,以确定主机的功能和资源,并确定可用的驱动程序。一旦完成了这项工作,客户机就向服务器注册,并继续定期与服务器签入,以便提供节点信息、心跳信号以提供活动性,并运行分配给它们的任何任务。»行程安排调度是Nomad服务器的核心功能。它是将任务从作业分配到客户机的过程。此过程必须遵守作业文件中声明的约束,并针对资源利用率进行优化。在本系列的第1部分中,您会记得作业是对任务的声明性描述,包括任务的约束和所需的资源。作业由用户提交,表示所需的状态。作业中的任务组到客户端的映射是使用分配完成的。分配声明作业中的一组任务应在特定节点上运行。调度是确定适当分配的过程,是评估的一部分。在创建、更新作业或节点失败时创建求值。调度程序是Nomad服务器的一部分,负责处理评估和生成分配计划。Nomad中有三种调度程序类型,每种类型都针对特定类型的工作负载进行了优化:服务、批处理和系统。首先,调度程序将所需的状态(由作业文件指示)与集群的实际状态进行协调,以确定必须执行的操作。可能需要进行新的分配。可能需要更新、迁移或停止现有分配。配售分为两个不同的阶段:可行性检查和排名。在第一阶段中,调度程序通过过滤不正常的节点、缺少必要驱动程序的节点和未满足作业指定约束的节点来查找可行的节点。这就是Nomad使用node指纹和Nomad客户机提供的驱动程序信息的地方。第二个阶段是排序,调度程序对可行节点进行评分,以找到最佳匹配。计分是基于装箱和反亲和力的结合(不鼓励一个任务组的多个实例共用一个),它优化了密度,同时降低了相关失败的可能性。在nomad0.9.0(下一个主要版本)中,评分还将考虑用户指定的亲和力和反亲和力在传统的数据中心环境中,在哪里以及如何放置工作负载通常是一个手动操作,需要操作员进行决策和干预。使用Nomad,调度决策是自动的,并且针对所需的工作负载、集群的当前状态和功能进行了优化。»基于驾驶员健康状况限制工作安排Nomad客户端使用任务驱动程序执行任务并提供资源隔离。Nomad提供了一组可扩展的任务驱动程序,以支持所有主要操作系统的广泛工作负载。任务驱动程序的配置选项、可用于的环境以及可用的资源隔离机制各不相同。Nomad中的任务驱动程序类型有:Docker、isolated fork/exec、Java、LXC、Qemu、raw fork/exec、Rkt和用Go编写的自定义驱动程序(nomad0.9.0即将推出可插拔驱动程序系统)。nomad0.8中引入的驱动程序健康检查功能使Nomad能够根据驱动程序健康状态和向操作员呈现驱动程序健康状态来限制分配的放置。对于支持运行状况检查的任务驱动程序,Nomad将不向其驱动程序报告为不正常的节点分配作业。»从丢失的客户端节点恢复当Nomad客户机运行时,它通过服务器执行心跳以保持活跃。如果心跳失败,Nomad服务器将假定客户机节点出现故障,并停止分配新任务并开始创建替换分配。无法区分网络故障和Nomad代理崩溃,因此这两种情况的处理是相同的。一旦网络恢复或崩溃的代理重新启动,节点状态将更新并恢复正常操作。Nomad的两个自愈特性是基于驱动程序运行状况限制作业放置,并自动检测出故障的客户机节点并相应地重新安排作业,这两个功能不需要额外的监视、脚本编写或其他操作员干预。»摘要在本系列关于使用Nomad构建弹性基础设施的第二篇文章(第1部分)中,我们介绍了Nomad客户机服务器代理如何通过驱动程序健康检查和活动心跳来实现快速准确的调度以及自我修复。Nomad客户机代理负责确定其主机的资源和功能,包括哪些驱动程序可用,并负责运行任务。Nomad服务器代理负责维护集群状态和调度任务。客户机和服务器代理协同工作,以实现快速、准确的调度以及自我修复操作,例如自动重新安排故障节点上的任务,并将具有故障驱动程序的节点标记为没有资格接收需要这些驱动程序的任务。在下一篇文章中,我们将了解Nomad如何帮助操作员管理作业生命周期:更新、滚动部署(包括金丝雀和蓝绿色部署),以及作为客户机节点停用的一部分迁移任务。