问题描述

因证书过期导致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文档,使用命令进行发布模板

文档链接:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-security-update-certs-azure#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)的更多相关文章

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

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

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

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

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

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

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

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

  5. 【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式

    前提条件 当我们观察到SF中某一个节点出现CPU不正常的情况,但是由于不能肉眼长期观察,所以可以通过开启Performance Monitor的方式来获取每一个进程的%Processer Time的方 ...

  6. 【一起学源码-微服务】Nexflix Eureka 源码十二:EurekaServer集群模式源码分析

    前言 前情回顾 上一讲看了Eureka 注册中心的自我保护机制,以及里面提到的bug问题. 哈哈 转眼间都2020年了,这个系列的文章从12.17 一直写到现在,也是不容易哈,每天持续不断学习,输出博 ...

  7. 【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务

    问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...

  8. 【Azure 微服务】PowerShell中,用Connect-ServiceFabricCluster命令无法连接到sf-test.chinaeast2.cloudapp.chinacloudapi.cn:19000 问题分析

    问题描述 Azure Service Fabric提供了PowerShell的指令来进行创建,管理资源,如Get-ServiceFabricClusterHealth 获取当前集群的健康状态,但这些命 ...

  9. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

随机推荐

  1. hdu 6806 Equal Sentences 找规律

    题意: 给你一个有n个单词的单词串S,对这n个单词进行排列组合形成新的一个单词串T,如果在S中任意某个单词所在位置,和这个单词在T中所在位置之差的绝对值小于等于1,那么就说S和T串相等 让你求S一共有 ...

  2. 2020ICPC·小米 网络选拔赛第一场 A.Intelligent Warehouse (DP)

    题意:给你一组数,选一些数出来组成一个排列,使得每个数都能被前一个数整除,求排列的最大元素. 题解:我们先用欧拉筛筛出\(1e7\)的质数,设\(dp[i]\)表示当前选的数都是\(i\)的约数且合法 ...

  3. CodeForces - 13E(分块)

    Little Petya likes to play a lot. Most of all he likes to play a game «Holes». This is a game for on ...

  4. C# 类 (8) - 抽象方法

    抽象 抽象方法 只能 定义在抽象类 里,并且抽象方法里没有具体的代码,像这种 为啥要定义一个空空如也的函数呢?这是为了用来约束 它的派生类 的行为, 这个例子,建立了一个数组,放了cat和dog,这两 ...

  5. JavaScript常见笔试题分析

      1.Javascript的typeof可能返回的结果有哪些? 答:共6种,具体为number ,boolean,string,undefined,function,object(对象或者null返 ...

  6. CSS 检测 IE 浏览器

    CSS 检测 IE 浏览器 <!--[if IE]> <link href="ie.css" rel="stylesheet"> < ...

  7. App Store Previewer

    App Store Previewer App Store 模拟器 https://www.storepreviewer.com/ xgqfrms 2012-2020 www.cnblogs.com ...

  8. CSS Shapes

    CSS Shapes shape-outside & shape-image-threshold <img class="element" src="ima ...

  9. js clear copy

    js clear copy window.getSelection().empty() & window.getSelection().removeAllRanges() & docu ...

  10. vue农历日历

    <template> <div class="calendar-main"> <div class="choose_year"&g ...