azure-service-fabric - 如何重新启动 Service Fabric 规模集计算机
问题描述
我们有一个带有 5 个节点的规模集(主要)的服务结构集群。我们的一项服务中存在内存泄漏,耗尽了节点上的所有可用内存,最终其他服务失败。例如,一些 Powershell 命令现在不起作用。在 Service Fabric Explorer 中,一切正常,没有任何错误或警告。是否可以重新启动机器,最好的方法是什么,以便我们可以将机器恢复到所有服务都在工作的初始状态?
在缩小规模时,它会在规模集中删除索引最高的节点,因此按照文档进行放大然后删除有故障的节点将无济于事。
如果我们重启规模集节点一买一,会发生什么?我看到服务结构处理它 - 禁用节点并在之后激活它。但是从银层的文档来看,我们需要有 5 个节点一直运行。因此,在重新启动任何节点之前,我们是否应该扩大规模,再添加一个节点,然后继续重新启动?
解决方案
如果故障节点的健康服务仍在运行,最好的方法是先使用Disable-ServiceFabricNode
命令禁用该节点,以便将任何健康服务移出该节点,尽可能减少影响。
一旦服务被移动,在某些情况下,只需一个Restart-ServiceFabricNode
命令就可以杀死所有锁定的服务并恢复健康,而无需实际重新启动 VM。
在最后一种情况下,您可能需要通过 Powershell 或 Azure 门户重新启动 VM 以重新启动节点。
如果您的集群在高密度负载上运行,您可能需要先扩展以将容量带到集群重新分配服务。