【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)
问题描述
因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricClusterCertificate 或az sf cluster certificate add 来添加证书为辅助证书(secondary cluster certificate) 并通过SF门户页面中的交换主要/辅助证书功能把新上传的证书作与旧证书进行交换。
在本文中,介绍通过ARM Template的修改来实现辅助证书的添加。
执行步骤
测试环境为:SF Silver, 5 Nodes
步骤一:在Key Vault中添加新的Certificate,完成后截图如下

步骤二:在SF的resource group这页面中,选择SF和cluster资源,并导出模板(export template), 进入步骤三的Template View页面

步骤三:在Template view,选择Deploy,直接进入第四步的编辑模板页面

步骤四:在Edit模板的页面中,修改如下内容(非常重要)
- 查找第一个Certificate Thumbprint,并增加红框中内容。需要增加Thumbprint的位置共有3处
|
|
|
- 查找certificateStore,并在所有查到的地方增加如下内容(本例中需要修改certificateStore的位置一共有6个)。
![]() |
步骤五:修改完后Save并返回template view,而后勾选底部的checkbox后点击Purchase,进行cluster upgrade
步骤六:在SF Cluster Upgrade的过程中,可以通过SF 观察每一个UD (update domain)的情况。
- 期间,cluster upgrade的状态会在RollingForwardInProgress,RollingForwardPending间切换。直至RollingForwardCompleted,表示完成。
步骤七:在更新完的Node中,点开Details Tab,可以看到添加证书的指纹信息
步骤八:当所有Upgrade完成后,可以在SF门户上的Security页面上看到新添加的辅助证书信息

步骤九:交换主要/辅助证书(点击证书信息后面三点 ... 进行操作)
注:在此过程中建议采用先添加新的certificate,然后做swap to primary,而不是一开始就直接替换certificate的策略,这样就算这个过程发生些异常,也不会影响当前的cluster及业务的运行。
附录:参考Deploy the template to Azure文档,使用命令进行发布模板
#登录到Azure中
Connect-AzAccount
Select-AzSubscription -SubscriptionId <Subscription ID>
#验证模板是否正确
Test-AzResourceGroupDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>
#部署模板
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>
参考资料
Edit your Resource Manager template:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-security-update-certs-azure#edit-your-resource-manager-template
【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)的更多相关文章
- 【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题
问题描述 1) 当成功的在Service Fabric集群中部署了应用后,如何来访问呢?如果是一个Web服务,它的URL又是什么呢? 2) 当Service Fabric集群中,服务之间如需要相互访问 ...
- 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)
问题描述 创建Service Fabric时,证书在整个集群中是非常重要的部分,有着用户身份验证,节点之间通信,SF升级时的身份及授权认证等功能.如果证书过期则会导致节点受到影响集群无法正常工作. 当 ...
- 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)
注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致. 可靠性级别是 Service Fabric 群 ...
- 【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群
问题描述 在使用Service Fabric的快速入门文档: 将 Windows 容器部署到 Service Fabric. 其中在创建Service Fabric时候,示例代码中使用的是PowerS ...
- 【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式
前提条件 当我们观察到SF中某一个节点出现CPU不正常的情况,但是由于不能肉眼长期观察,所以可以通过开启Performance Monitor的方式来获取每一个进程的%Processer Time的方 ...
- 【一起学源码-微服务】Nexflix Eureka 源码十二:EurekaServer集群模式源码分析
前言 前情回顾 上一讲看了Eureka 注册中心的自我保护机制,以及里面提到的bug问题. 哈哈 转眼间都2020年了,这个系列的文章从12.17 一直写到现在,也是不容易哈,每天持续不断学习,输出博 ...
- 【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务
问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...
- 【Azure 微服务】PowerShell中,用Connect-ServiceFabricCluster命令无法连接到sf-test.chinaeast2.cloudapp.chinacloudapi.cn:19000 问题分析
问题描述 Azure Service Fabric提供了PowerShell的指令来进行创建,管理资源,如Get-ServiceFabricClusterHealth 获取当前集群的健康状态,但这些命 ...
- Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
随机推荐
- 洛谷 P5057 [CQOI2006]简单题 (树状数组,位运算)
题意:有一个长度为\(n\)的数组,进行\(m\)次操作,每次读入一个值\(t\),如果\(t=1\),则将区间\([l,r]\)的数字反转,若\(t=2\),则查询下标为\(i\)的值. 题解:树状 ...
- 获取csc.exe路径
using System.Runtime.InteropServices; var frameworkPath = RuntimeEnvironment.GetRuntimeDirectory(); ...
- Java 在Word中添加多行图片水印
Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页 ...
- Pyqt5使用
一.帮助文档 二.PyQt5库结构 三. 面向对象的编程模式 class Windows(QWidget): def __init__(self): #继承父类的QWidget的方法 super(). ...
- woj1018(HDU4384)KING KONG 循环群
title: woj1018(HDU4384)KING KONG 循环群 date: 2020-03-19 09:43:00 categories: [acm] tags: [acm,woj,数学] ...
- involution 内卷化
involution 内卷化 虽然不熟悉 involution,但是我想起另外两个常用词:evolution(进化)和 revolution(革命). 它们共同的词根volute,拉丁语原意是&quo ...
- Linux kill All In One
Linux kill All In One kill -9 kill $ kill <PID> $ ps -ef | grep node $ sudo kill -9 <PID> ...
- vue-parent-child-lifecycle-order
vue-parent-child-lifecycle-order vue parent child lifecycle order live demo https://99kyx.csb.app/ h ...
- Apple Watch Series 6 全天候视网膜显示屏和全天候高度计是什么鬼
Apple Watch Series 6 全天候视网膜显示屏和全天候高度计是什么鬼 Apple Watch Series 6 / Apple Watch Series 5 全天候视网膜显示屏 LTPO ...
- Java Hipster
Java Hipster JHipster JHipster is a development platform to quickly generate, develop, & deploy ...



