集群滚动功能增强现在可用

NetApp的Ocean Spot包含一个名为“群集滚动”的强大功能。该特性简化了对Kubernetes工作节点的更改应用。典型的更改包括应用新映像、修改或添加用户数据以及更新安全组。集群滚动应用这些更改,而不必禁用Ocean自动缩放器。它还无需手动连接新节点或从集群中删除已替换的节点。

集群滚转的性能与大多数用例的设计一致。但是,有时集群滚转过程不支持所需的更改。我们还遇到了一些集群滚动进入失败状态的情况。当这种情况发生时,没有记录足够的信息来快速识别和纠正潜在问题。

功能增强

我们很高兴分享以下集群滚动的特性增强列表。现在所有Ocean用户都可以使用这些功能,功能描述中提到了一些例外情况。

用多个实例替换一个实例

集群滚动能够用多个较小的实例替换单个实例。当Ocean集群在启动滚转之前只配置了较小的实例类型时,这避免了集群滚转失败。Ocean将在集群滚动期间提供最相关的基础设施,而不是用一个相同类型的实例替换每个现有实例。这基于所选滚动节点上当前运行的工作负载。当您修改了允许的实例类型列表,或者您的目标是删除特定的实例类型并用多个较小的实例类型替换它时,这种改进尤其有用。当无法缩减整个节点时,它还可以提高利用率水平。相反,可以用较小的实例替换未充分利用的节点。请注意:在Microsoft Azure上运行的Ocean集群尚未启用此功能。雷竞技地址ray

中断的实例被考虑在内

在滚动过程中,实例可能被中断。我们已经改进了Ocean处理这种情况的方式。Ocean对哪些替换实例与中断实例相关联具有额外的跟踪功能。结果是,在滚动期间的这种中断不会导致集群滚动失败。这极大地改善了使用集群滚动时的整体体验。

每个旧实例的详细输出

我们为每个实例实现了四种状态:

  1. 取代—实例被新实例替换成功。
  2. TO_BE_REPLACEDOcean还没有尝试替换实例。这通常是因为实例不是当前批处理的一部分。
  3. COULD_NOT_BE_REPLACED—实例未被替换。这种情况通常发生在以下情况:在宽限期内没有恢复正常的替代实例,或者因为自动缩放器无法启动节点以满足工作负载。
  4. NOT_REPLACED_DUE_TO_PDB -替换实例违反了运行在节点上的一个Pod上的PDB (Pod中断预算)配置。注意:此状态仅在以下情况下相关respectPdb设置为"真正的”。

在滚动过程中支持PDB

有一个新的参数叫做respectPdb可以使用API或UI指定。当设置为"真正的,如果违反PDB, Ocean将不会替换节点。

滚动特定的VNG/节点

在某些用例中,您可能希望滚动跨多个vng(虚拟节点组)运行的特定工作负载。您可以选择一个或多个vng一起滚动。当选择多个VNG时,Ocean将创建一个集群滚动,其中包括所有指定VNG中的所有节点。批处理大小应用于每个vng中所有受影响的节点。除了这个新功能,如果需要,还可以滚动特定的实例/节点。

最低健康百分比

的参数batchMinHealthyPercentage指示单个批处理中运行正常的实例的最小百分比。如果单个批处理中的正常实例数量低于此百分比,则集群滚转将失败。取值范围为1 ~ 100,如果参数值为时,默认值为50%。由于PDB而没有被替换的实例将被认为是正常的。您可以通过设置重写此行为respectPdb真正的“请注意:在Microsoft Azure上运行的Ocean集群尚未启用此功能。雷竞技地址ray

使用

Ocean文档已经更新,以反映这些新功能。

集群:滚https://docs.www.drvrless.com/ocean/features/roll

AWS中Kubernetes的滚动API:https://docs.www.drvrless.com/api/#operation/oceanAwsRollInit

AWS ECS的滚动API:https://docs.www.drvrless.com/api/#operation/oceanEcsRollInit

Kubernetes (GKE)在GCP的Roll API:https://docs.www.drvrless.com/api/#operation/oceanGkeRollInit

面向Microsoft Azure的Kubernetes (AKS雷竞技地址ray) Roll API:https://docs.www.drvrless.com/api/#operation/oceanAKSClusterCreate

总结

我们发布了对Ocean的集群滚动的多个增强,以提高可见性、性能和解决特定的用例。

请通过NetApp联系你的任何联系人联系我们与问题。