【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

简介: 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致。

可靠性级别是 Service Fabric 群集资源的一个属性。 对于各个节点类型,此属性的配置必须相同。 该属性控制群集系统服务的复制因子,是群集资源级别的设置。

可靠性级别决定了主节点类型必须具有的节点数下限。 可靠性层可以采用以下值:

  • 白金:运行包含 7 个目标副本集和 9 个种子节点的系统服务。
  • 金:运行包含 7 个目标副本集和 7 个种子节点的系统服务。
  • 银:运行包含 5 个目标副本集和 5 个种子节点的系统服务。
  • 铜:运行包含 3 个目标副本集和 3 个种子节点的系统服务。

建议的最低可靠性级别为“银”级。

 

在使用Service Fabric的过程中,有时会遇见某个节点出现问题,一般情况下,SF集群被设计为高可用集群,当单个节点停机期间会有其他的节点来接管。但是有时候也需要把种子节点转移出去,当有这种需求的时候,可以参考一下步骤:

准备条件:

执行步骤:

一:确保node type下的虚机数量满足reliability tier的最低需求,并同时满足至少有一个以上的none-seed node

二:使用powershell 或者 sfctl 停用要移除的seed node (以_nt1vm_5为例)

# power shell
Disable-ServiceFabricNode -NodeName _nt1vm_5 -Intent RemoveNode -Force

# sfctl
sfctl node disable --node-name _nt1vm_5  --deactivation-intent RemoveNode

三:等待seed node状态由 ‘disabling’ 转换为 ‘disabled’ (等待时间30分钟以上)

等待操作触发的cluster upgrade 完成,以及_nt1vm_5 转换为none-seed node

四:在VMSS界面直接移除对应的虚机 (运行在Linux上的Service Fabric Cluster不支持sfctl node transition命令)

五:使用powershell 或者 sfctl 移除node state

#power shell
Remove-ServiceFabricNodeState -NodeName "_nt1vm_5"
#sfctl
sfctl node remove-state --node-name _nt1vm_5


参考资料:

导致群集故障的随机故障https://docs.azure.cn/zh-cn/service-fabric/service-fabric-disaster-recovery#random-failures-that-lead-to-cluster-failures

Service Fabric 具有种子节点的概念 。 种子节点可以维护基础群集的可用性。

种子节点可以与其他节点签署租约,在发生某些类型的故障时充当断路器,这样可确保群集保持启动状态。 如果随机故障删除了群集中的大部分种子节点并且无法快速将其恢复,则群集会自动关闭。 群集随后会发生故障。

在 Azure 中,Service Fabric 资源提供程序管理 Service Fabric 群集配置。 默认情况下,资源提供程序在主节点类型的容错域和升级域之间分配种子节点 。 如果将主节点类型标记为“银”或“金”级耐久性,则在通过缩减主节点类型或手动删除种子节点的方式删除种子节点时,群集会尝试从主节点类型的可用容量中提升另一个非种子节点。 如果你的可用容量少于群集可靠性级别对主节点类型的要求,则此尝试会失败。

在独立 Service Fabric 群集和 Azure 中,主节点类型是运行种子的节点类型。 定义主节点类型时,Service Fabric 会自动利用为每个系统服务创建最多九个种子节点和七个副本时提供的节点数。 如果一组随机故障同时导致其中的大部分副本关闭,则系统服务会进入仲裁丢失状态。 如果大部分种子节点丢失,群集会在不久之后关闭。

 

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-best-practices-capacity-scaling#scaling-in

 

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity

 

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-scale-in-out#manually-remove-vms-from-a-node-typevirtual-machine-scale-set

相关文章
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
465 73
|
JSON 缓存 数据格式
【Azure Fabric Service】分享使用Visual Studio 2022发布中国区Service Fabric服务应用的办法
本文介绍了在Visual Studio 2022中无法直接创建Service Fabric Cluster服务时的替代方案。通过使用PowerShell命令或修改Cloud.xml文件,可将应用部署到已创建的SF Cluster。具体步骤包括:1) 在Azure门户创建Service Fabric服务并安装客户端证书;2) 获取服务端和客户端证书指纹;3) 修改Cloud.xml中的ClusterConnectionParameters后发布应用。最后附有参考资料以供进一步学习。
378 4
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
274 11
【Azure Fabric Service】Service Fabric部署失败问题 Provisioning of VM extension ConfigureVM has timed out.
【Azure Fabric Service】Service Fabric部署失败问题 Provisioning of VM extension ConfigureVM has timed out.
201 0
|
安全 网络安全
【Service Fabric】Service Fabric删不掉的问题
【Service Fabric】Service Fabric删不掉的问题
252 0
|
JavaScript Linux
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
430 0
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
3761 11
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
1298 155
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。

热门文章

最新文章