注意:在对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’

等待操作触发的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

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

  1. .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(二)

    重温Consul最少化集群的搭建  

  2. 如何使用Istio 1.6管理多集群中的微服务?

    假如你正在一家典型的企业里工作,需要与多个团队一起工作,并为客户提供一个独立的软件,组成一个应用程序.你的团队遵循微服务架构,并拥有由多个Kubernetes集群组成的广泛基础设施. 由于微服务分布在 ...

  3. docker swarm英文文档学习-8-在集群中部署服务

    Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运 ...

  4. 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障

    3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...

  5. 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)

    问题描述 创建Service Fabric时,证书在整个集群中是非常重要的部分,有着用户身份验证,节点之间通信,SF升级时的身份及授权认证等功能.如果证书过期则会导致节点受到影响集群无法正常工作. 当 ...

  6. 【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题

    问题描述 1) 当成功的在Service Fabric集群中部署了应用后,如何来访问呢?如果是一个Web服务,它的URL又是什么呢? 2) 当Service Fabric集群中,服务之间如需要相互访问 ...

  7. 【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

    问题描述 在使用Service Fabric的快速入门文档: 将 Windows 容器部署到 Service Fabric. 其中在创建Service Fabric时候,示例代码中使用的是PowerS ...

  8. 微服务应用新趋势:Service Mesh、AIOps和中台化

    微服务技术由于天生支持快速迭代.弹性扩展的特点,使企业能够在不确定性下提升发展速度及抗风险能力,受到了越来越多的关注.当前,云服务商纷纷试水微服务产品,最为典型的,当属推出轻舟微服务平台.剑指整个微服 ...

  9. Kubernetes集群中Service的滚动更新

    Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足 ...

随机推荐

  1. 3.CDN加速简介

    什么是CDN CDN的全称是Content Delivery Network,即内容分发网络.CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问 ...

  2. 集群实战(2):K8S集群节点退出加入操作

    以下报错网上其实也可以找到并解决,但是偏零碎我只是根据自己的在使用中遇到的问题做个汇总. 文章目录 首先删掉节点 node重新加入 参考文档 首先删掉节点 注意:以下操作都是在master下操作. 一 ...

  3. 3.Channel详解

  4. CentOS7使用yum时File contains no section headers.解决办法

    本文转载于  https://blog.csdn.net/trokey/article/details/84908838 安装好CenOS7后,自带的yum不能直接使用,使用会出现如下问题: 原因是没 ...

  5. 关于button和submit的form提交以及 页面跳转问题

    最近在做官网的注册登录form提交时遇到了这个问题,1.0时因为使用普通的模板并没有出现页面跳转失败问题 由于2.0时更换了注册模板,此时按钮样式是以下样式 而在css样式的模板里使用的是button ...

  6. 将SublimeText3打造成简易Java IDE

    简介与优点 使用该教程,你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在 ...

  7. 在Linux系统下搭建和配置一个minio文件服务器(一)

    1.minio文件服务器的介绍 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日 ...

  8. 理解vue与MVVM三要素

    MVVM到底是什么,跟Jquery有什么区别? MVVM理解,跟MVC区别 Model View Controller,一般是用户操作view视图按钮,触发controller内方法,cotrolle ...

  9. 《SpringCloudDubbo开发日记》(一)Nacos连官方文档都没写好

    背景 现在的微服务框架一般分dubbo和springcloud两套服务治理体系,dubbo是基于zookeeper为注册中心,springcloud是基于eureka作为注册中心. 但是现在eurek ...

  10. C#方法Extra

    C#方法Extra 上次说的只是方法的一些基本东西,今天讲讲重载和 Lambda 表达式. 重载 方法的重载(overload)指的是同一个名字的方法,有着不一样的方法签名(method signat ...