【问题标题】:Service Fabric Cluster VMSS OS upgrade from 2016 to 2019Service Fabric 群集 VMSS 操作系统从 2016 年升级到 2019 年
【发布时间】:2020-10-15 11:56:28
【问题描述】:

我的目标是将 Service Fabric VMSS 操作系统从 2016 年升级到 2019 年。

关注Scale up a Service Fabric cluster primary node type上的微软文档

  • 使用这些示例 templatesparameter 文件部署了具有两种节点类型和两个规模集(每个节点类型一个规模集)的初始集群。两个规模集都是标准 D2_V2 大小并运行 Windows Server 2012 R2 Datacenter
  • 使用这些样本templateparameters 文件将新的规模集部署到主节点类型。新规模集 VM 的大小为 Standard D4_V2,运行 Windows Server 2016 Datacenter with Containers

面临以下问题

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

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

有什么想法吗? (或)执行 VMSS 操作系统从 windows 2016 升级到 windows 2019 的任何其他替代方法

【问题讨论】:

  • 没有看到你的模板就不可能知道你做错了什么
  • 我没有修改模板中的任何内容,修改了与证书相关的参数文件。休息仍然如此。根据部署 Windows 2016 VMSS 后的文档。新的 VMSS 应该是当前 SFC 的一部分。但它没有反映
  • 你看到this的答案了吗?
  • 我尝试使用 Update-AzVmss -ResourceGroupName "RG Name" -VMScaleSetName "VMSS NAME" -ImageReferenceSku "2016-Datacenter-with-Containers" -ImageReferenceVersion "Latest"。种子节点挂在“禁用”状态。等了很久。没有变化。

标签: azure azure-service-fabric azure-vm-scale-set


【解决方案1】:

Scale up a Service Fabric cluster primary node type 上的 Microsoft 参考链接

我对上述查询的发现。我已成功将 Service Fabric Cluster VMSS 操作系统从 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
}

通过初始成功执行上述命令,节点将在一段时间后处于禁用状态,它将处于禁用状态。这可以使用服务结构资源管理器进行监控

-下一步是删除我们在上一步中禁用的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 建议将此用于生产环境。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 2017-08-18
    • 2018-11-14
    • 2017-05-16
    • 2017-06-07
    • 2019-10-12
    • 2021-12-01
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多