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

阿里云_天翼家庭云app_9元

小七 141 0

游牧民族中的传播与仿射

Hashicorp nomad0.9引入了新的调度特性,允许应用程序所有者和操作员更细粒度地控制工作负载的放置位置。这篇文章更详细地描述了这些特性。»背景Nomad调度器使用装箱算法优化集群中的资源利用率。应用程序所有者可以使用constraint节来限制要放置的合格节点集。除了constraint节之外,nomad0.8和以前的版本没有向用户提供其他细粒度的控制,以确定他们的工作负载将放在集群中的什么位置。0.9中新的调度特性在表达布局首选项方面提供了额外的灵活性,并允许操作员增加其工作负载的容错能力。这些新功能支持以下用例:通过扩展节将作业的实例分布到多个数据中心或物理机架上,从而提高作业的容错能力。通过新的关联节针对特定的节点类进行专门的工作负载。»展开节Nomad的主要布局策略是装箱算法。装箱通过优化在运行现有工作负载的节点上的位置来降低总体基础设施成本。装箱的一个缺点是,即使作业被指定在多个数据中心运行,也可能导致同一工作负载的太多实例最终在一个数据中心中结束。如果数据中心级别出现灾难性故障,这可能会导致临时中断,直到Nomad重新安排到另一个数据中心。nomad0.9中引入的spread节通过允许操作员根据属性和/或客户机元数据以定制的方式分发工作负载来解决这个问题。通过在作业规范中使用扩展标准,Nomad作业操作员可以确保跨域(如数据中心或机架)的故障不会影响应用程序可用性。可以在作业级别和任务组级别指定展开节。作业中的所有任务组都会继承职务级别的排列条件。例子:作业"文档"{数据中心=["us-east1","us-east2"]#将分配分散到所有数据中心分散{属性="${节点数据中心}"}"测试"组{计数=10#基于所需百分比在每个机架上分配分散{属性="${金属支架}"目标"r1"{百分比=60}目标"r2"{百分比=40}}}}在上面的示例中,作业有一个基于节点的数据中心的扩展节。默认情况下,当排列节没有指定特定的目标百分比时,Nomad使用统一的排列策略。Nomad希望每个数据中心运行5个作业实例。传播节也可以有特定的目标百分比。上例中的任务组"test"为"r1"和"r2"指定了不同的目标百分比。Nomad将确保60%的实例调度到"r1"中的节点上,40%的实例调度到"r2"的节点上。当部分指定了目标时,扩展节也起作用。在同一个示例中,如果我们删除了"r2"的目标,并且有两个以上的机架,Nomad将调度"r1"中50%的实例,并将其余实例均匀地分布到所有其他机架上。扩展标准也被Nomad调度器视为软偏好。如果没有节点匹配给定的排列条件,只要满足约束和资源需求,布局仍然是成功的通过在作业规范中使用扩展标准,Nomad作业操作员可以确保跨域(如数据中心或机架)的故障不会影响应用程序可用性。有关更多细节和示例,请参阅我们的排列文档。»亲和节如上所述,Nomad的早期版本有一个constraint节,它根据属性和客户机元数据严格过滤运行作业的位置。如果没有找到匹配的节点,则放置不会成功。nomad0.9中的affinity节允许操作员在特定类型的节点affinity节的作用类似于一个"软约束",Nomad将尝试匹配所需的关联,但是即使没有节点匹配所需的条件,放置也会成功。当为放置的节点评分时,Nomad将考虑任何匹配的亲和力,以便匹配首选标准的节点得分更高。来自亲缘关系的评分与其他评分因素(如装箱)相结合。与约束节类似,关联节可以在作业级别以及任务组和任务级别指定。作业级别的关联由作业中的所有任务组继承。任务级亲和力与任务组级亲和力结合在一起。例子:作业"文档"{#首选m4.xlarge节点亲和力{属性="${属性平台.aws.instance类型}"value="m4.xlarge"重量=100}"示例"组{#首选"r1"机架亲和力{属性="${金属支架}"值="r1"重量=50}任务"服务器"{..}}在上面的示例中,作业与"m4.xlarge"节点有关联。此关联将应用于作业中的所有任务组。任务组还与特定机架"r1"具有亲和力。Nomad将为匹配这两个亲和力的节点的分数添加额外的提升因子,以便它们更适合放置。但是,如果没有找到与这些相似性匹配的节点,则布局仍然成功。负权重的作用类似于反仿射,并鼓励Nomad避免匹配节点。affinity节对于这样的用例很有用,比如为具有特殊需求的工作负载选择特定的节点类。有关更多详细信息和示例,请参阅我们的关联文档。»结论nomad0.9引入了两个新的小节,spread和affinity,允许使用高级布局策略和增加故障容忍度。有了这些特性,nomad0.9为操作员和作业规范作者提供了更细粒度的工作负载分配控制。