Service Fabric 集群 VMSS OS 从 2016 升级到 2019

Service Fabric Cluster VMSS OS upgrade from 2016 to 2019

我的目标是将 Service Fabric VMSS OS 从 2016 年升级到 2019 年。

已在 Scale up a Service Fabric cluster primary node type

上关注 Microsoft 文档

面临以下问题

  1. 根据文档,新规模集将成为 Service Fabric 集群的一部分,但新规模集并未反映在 Service Fabric Explore 中。

一旦 VMSS 成为服务结构集群的一部分,将禁用 windows 2012 节点规模集

有什么想法吗? (或)执行 VMSS OS 从 windows 2016 升级到 windows 2019

的任何其他替代方法

Scale up a Service Fabric cluster primary node type

上的 Microsoft 参考 link

我对上述查询的发现。我已成功将 Service Fabric Cluster VMSS OS 从 2016 升级到 2019

-在 ARM 模板中新创建的 VMSS 不是 Service Fabric 集群的一部分。在 nodeTypes

下执行以下更改
"managementEndpoint": "[concat('https://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]",
            "nodeTypes": [
                {
                    "name": "[parameters('vmNodeType2Name')]",
                    "applicationPorts": {
                    *
                    *
                },

当您部署具有上述更改的 ARM 模板时,新创建的 VMSS 将成为现有服务结构集群的一部分。

-使用以下命令连接服务结构集群

$clusterName = "Cluser-URL:19000"
$thumb = "xxxxxxxxxxx"    
Connect-ServiceFabricCluster `
-ConnectionEndpoint $clusterName `
-KeepAliveIntervalInSec 10 `
-X509Credential `
-ServerCertThumbprint $thumb  `
-FindType FindByThumbprint `
-FindValue $thumb `
-StoreLocation CurrentUser `
-StoreName My

-禁用需要删除的服务结构集群节点(即 2016 VMSS)

$nodeNames = @("_NTvm1_0","_NTvm1_1","_NTvm1_2","_NTvm1_3","_NTvm1_4")
Write-Host "Disabling nodes..."
foreach($name in $nodeNames){
Disable-ServiceFabricNode -NodeName $name -Intent RemoveNode -Force
}

通过最初成功执行上述命令,节点将处于禁用状态,一段时间后将处于禁用状态。这可以使用 service fabric explorer

进行监控

-下一步是删除我们在上一步中禁用的 VMSS

$scaleSetName = "NTvm1"
$resourceGroupName = "RG-NAME"
Remove-AzVmss `
-ResourceGroupName $resourceGroupName `
-VMScaleSetName $scaleSetName `
-Force
Write-Host "Removed scale set $scaleSetName"

-此时服务结构资源管理器以未找到页面错误结束。不要恐慌。需要将负载平衡设置更改为新创建的 VMSS

$lbname="Newly Created LB Name"
$oldPublicIpName="Old LB PublicIP"
$newPublicIpName="New LB PublicIP"

$oldprimaryPublicIP = Get-AzPublicIpAddress -Name $oldPublicIpName  -ResourceGroupName $groupname
$primaryDNSName = $oldprimaryPublicIP.DnsSettings.DomainNameLabel
$primaryDNSFqdn = $oldprimaryPublicIP.DnsSettings.Fqdn
Remove-AzLoadBalancer -Name $lbname -ResourceGroupName $groupname -Force
Remove-AzPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname -Force

-需要更新 DNS 设置

settings of Public IP address related to old Primary Node Type
$PublicIP = Get-AzPublicIpAddress -Name $newPublicIpName  -ResourceGroupName $groupname
$PublicIP.DnsSettings.DomainNameLabel = $primaryDNSName
$PublicIP.DnsSettings.Fqdn = $primaryDNSFqdn
Set-AzPublicIpAddress -PublicIpAddress $PublicIP

一旦完成,我们就可以开始了

-使用 Get-ServiceFabricClusterHealth 命令检查服务结构健康状态

注意 确保您的集群可靠性级别设置为“银”。 Microsoft 推荐将其用于生产环境。