Service Fabric 클러스터 주 노드가 아닌 노드 유형 스케일 업

이 문서에서는 가동 중지 시간을 최소화하면서 Service Fabric 클러스터 주 노드가 아닌 노드 유형을 스케일 업하는 방법을 설명합니다. 현재 위치 SKU 업그레이드는 Service Fabric 클러스터 노드에서 지원되지 않습니다. 이 작업에는 잠재적으로 데이터 및 가용성 손실이 발생할 수 있습니다. Service Fabric 노드 형식을 확장하는 가장 안전하고 안정적이며 권장되는 방법은 다음과 같습니다.

  1. 업그레이드된(또는 수정된) 가상 머신 확장 집합 SKU 및 구성에 의해 지원되는 Service Fabric 클러스터에 새 노드 형식을 추가합니다. 또한 이 단계는 확장 집합에 대한 새 부하 분산 디바이스, 서브넷 및 공용 IP를 설정하는 작업을 포함합니다.

  2. 원래 확장 집합과 업그레이드된 확장 집합이 함께 실행되면 애플리케이션에 대한 배치 제약 조건을 새 노드 유형으로 설정하여 워크로드를 마이그레이션합니다.

  3. 클러스터가 정상인지 확인하고 삭제된 노드에 대한 원래 확장 집합(및 관련 리소스) 및 노드 상태를 제거합니다.

다음은 보조 노드 유형으로 사용되는 5개 노드가 포함된 단일 확장 집합에 의해 지원되는 실버 내구성이 있는 샘플 클러스터의 주 노드가 아닌 노드 유형 VM의 VM 크기 및 운영 체제를 업데이트하는 프로세스를 안내합니다. Service Fabric 시스템 서비스를 사용하는 주 노드 유형은 그대로 유지됩니다. 다음과 같이 주 노드가 아닌 노드 유형을 업그레이드할 예정입니다.

  • VM 크기 Standard_D2_V2에서 Standard D4_V2로 및
  • VM 운영 체제 Windows Server 2019 Datacenter에서 Windows Server 2022 Datacenter로.

Warning

프로덕션 클러스터에서 이 절차를 시도하기 전에 먼저 샘플 템플릿을 알아보고 테스트 클러스터에 대한 프로세스를 확인하는 것이 좋습니다.

클러스터 상태가 비정상인 경우 주 노드가 아닌 노드 유형 스케일 업 절차를 시도하지 마세요. 이렇게 하면 클러스터를 더 불안정하게 만들 뿐입니다. Service Fabric 클러스터 주 노드 유형 스케일 업 가이드에서 사용되는 단계별 Azure 배포 템플릿을 사용합니다. 그러나 주 노드 유형과 관련이 없도록 수정합니다. 템플릿은 GitHub에서 사용할 수 있습니다.

테스트 클러스터 설정

초기 Service Fabric 테스트 클러스터를 설정해보겠습니다. 먼저 이 시나리오를 완료하는 데 사용할 Azure Resource Manager 샘플 템플릿을 다운로드합니다.

다음으로, Azure 계정에 로그인합니다.

# Sign in to your Azure account
Login-AzAccount -SubscriptionId "<subscription ID>"

그런 다음, parameters.json 파일을 열고 clusterName의 값을 Azure 내에서 고유한 값으로 업데이트합니다.

다음 명령은 자체 서명된 새 인증서를 생성하고 테스트 클러스터를 배포하는 과정을 안내합니다. 사용하려는 인증서가 이미 있는 경우 기존 인증서를 사용하여 클러스터 배포로 건너뜁니다.

자체 서명된 인증서 생성 및 클러스터 배포

먼저 Service Fabric 클러스터 배포에 필요한 변수를 할당합니다. 특정 계정 및 환경에 대한 resourceGroupName, certSubjectName, parameterFilePathtemplateFilePath의 값을 조정합니다.

# Assign deployment variables
$resourceGroupName = "sftestupgradegroup"
$certOutputFolder = "c:\certificates"
$certPassword = "Password!1" | ConvertTo-SecureString -AsPlainText -Force
$certSubjectName = "sftestupgrade.southcentralus.cloudapp.azure.com"
$parameterFilePath = "C:\parameters.json"
$templateFilePath = "C:\Initial-TestClusterSetup.json"

참고 항목

새 Service Fabric 클러스터를 배포하는 명령을 실행하기 전에 로컬 머신에 certOutputFolder 위치가 있는지 확인합니다. 그런 다음, Service Fabric 테스트 클러스트를 배포합니다.

# Deploy the initial test cluster
New-AzServiceFabricCluster `
    -ResourceGroupName $resourceGroupName `
    -CertificateOutputFolder $certOutputFolder `
    -CertificatePassword $certPassword `
    -CertificateSubjectName $certSubjectName `
    -TemplateFile $templateFilePath `
    -ParameterFile $parameterFilePath

배포가 완료되면 로컬 머신에서 .pfx 파일($certPfx)을 찾아서 인증서 저장소로 가져옵니다.

cd c:\certificates
$certPfx = ".\sftestupgradegroup20200312121003.pfx"
Import-PfxCertificate `
     -FilePath $certPfx `
     -CertStoreLocation Cert:\CurrentUser\My `
     -Password (ConvertTo-SecureString Password!1 -AsPlainText -Force)

이 작업은 새 클러스터에 연결하고 상태를 확인하는 데 사용하는 인증서 지문을 반환합니다. (클러스터 배포에 대한 대체 방법인 다음 섹션을 건너뜁니다.)

기존 인증서를 사용하여 클러스터 배포

또는 기존 Azure Key Vault 인증서를 사용하여 테스트 클러스터를 배포할 수 있습니다. 이렇게 하려면 Key Vault 및 인증서 지문에 대한 참조를 가져와야 합니다.

# Key Vault variables
$certUrlValue = "https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
$sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"

다음으로 클러스터에 대한 리소스 그룹 이름을 지정하고 templateFilePathparameterFilePath 위치를 설정합니다.

참고 항목

지정된 리소스 그룹이 이미 존재하고 Key Vault와 동일한 지역에 있어야 합니다.

$resourceGroupName = "sftestupgradegroup"
$templateFilePath = "C:\Initial-TestClusterSetup.json"
$parameterFilePath = "C:\parameters.json"

마지막으로 다음 명령을 실행하여 초기 테스트 클러스터를 배포합니다.

# Deploy the initial test cluster
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

새 클러스터에 연결하고 성능 상태 확인

클러스터에 연결하고 5개의 노드가 모두 정상인지 확인합니다(자신의 값을 갖는 clusterNamethumb 변수 대체).

# Connect to the cluster
$clusterName = "sftestupgrade.southcentralus.cloudapp.azure.com:19000"
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
Connect-ServiceFabricCluster `
    -ConnectionEndpoint $clusterName `
    -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCertThumbprint $thumb  `
    -FindType FindByThumbprint `
    -FindValue $thumb `
    -StoreLocation CurrentUser `
    -StoreName My
# Check cluster health
Get-ServiceFabricClusterHealth

이제 업그레이드 절차를 시작할 준비가 되었습니다.

업그레이드된 확장 집합을 사용하여 새로운 주 노드가 아닌 노드 유형 배포

노드 형식을 업그레이드(수직으로 크기 조정)하기 위해 먼저 새 확장 집합 및 지원 리소스에 의해 지원되는 새 노드 형식을 배포해야 합니다. 새 확장 집합은 원래 확장 집합처럼 주 노드가 아닌 노드로 표시됩니다(isPrimary: false). 주 노드 유형을 스케일 업하려면 Service Fabric 클러스터 주 노드 유형 스케일 업을 참조하세요. 다음 섹션에서 만든 리소스는 궁극적으로 클러스터의 새 노드 유형이 되며 원래 주 노드 유형 리소스가 삭제됩니다.

업그레이드된 확장 집합으로 클러스터 템플릿 업데이트

새 노드 유형 및 지원 리소스를 추가하기 위한 원래 클러스터 배포 템플릿의 섹션별 수정 사항은 다음과 같습니다.

이 단계에 필요한 대부분의 변경 내용은 Step1-AddPrimaryNodeType.json 템플릿 파일에서 이미 적용되었습니다. 그러나 템플릿 파일이 주 노드가 아닌 노드 유형에서 작동하도록 추가 변경이 이루어져야 합니다. 다음 섹션에서는 이 변경 내용을 자세히 설명하고 변경해야 할 경우 설명이 제공됩니다.

참고 항목

원래 주 노드가 아닌 노드 유형의 원래 노드 유형, 확장 집합, 부하 분산 장치, 공용 IP 및 서브넷에서 고유한 이름을 사용해야 합니다. 이러한 리소스는 프로세스의 이후 단계에서 삭제됩니다.

기존 가상 네트워크에 새 서브넷 만들기

{
    "name": "[variables('subnet1Name')]",
    "properties": {
        "addressPrefix": "[variables('subnet1Prefix')]"
    }
}

고유한 domainNameLabel을 사용하여 새 공용 IP 만들기

{
    "apiVersion": "[variables('publicIPApiVersion')]",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[concat(variables('lbIPName'),'-',variables('vmNodeType1Name'))]",
    "location": "[variables('computeLocation')]",
    "properties": {
        "dnsSettings": {
            "domainNameLabel": "[concat(variables('dnsName'),'-','nt1')]"
        },
        "publicIPAllocationMethod": "Dynamic"
    },
    "tags": {
        "resourceType": "Service Fabric",
        "clusterName": "[parameters('clusterName')]"
    }
}

공용 IP에 대한 새 부하 분산 디바이스 만들기

"dependsOn": [
    "[concat('Microsoft.Network/publicIPAddresses/',concat(variables('lbIPName'),'-',variables('vmNodeType1Name')))]"
]

새 가상 머신 확장 집합 만들기(업그레이드된 VM 및 OS SkU 사용)

노드 유형 참조

"nodeTypeRef": "[variables('vmNodeType1Name')]"

VM SKU

"sku": {
    "name": "[parameters('vmNodeType1Size')]",
    "capacity": "[parameters('nt1InstanceCount')]",
    "tier": "Standard"
}

OS SKU

"imageReference": {
    "publisher": "[parameters('vmImagePublisher1')]",
    "offer": "[parameters('vmImageOffer1')]",
    "sku": "[parameters('vmImageSku1')]",
    "version": "[parameters('vmImageVersion1')]"
}

또한 워크로드에 필요한 추가 확장을 포함해야 합니다.

클러스터에 새로운 주 노드가 아닌 노드 유형 추가

이제 새 노드 유형(vmNodeType1Name)에 고유한 이름, 서브넷, IP, 부하 분산 장치 및 확장 집합이 있으므로 원래 노드 유형의 다른 모든 변수를 다시 사용할 수 있습니다(예: nt0applicationEndPort, nt0applicationStartPortnt0fabricTcpGatewayPort).

기존 템플릿 파일에서 isPrimary 매개 변수는 Service Fabric 클러스터 주 노드 유형 스케일 업 가이드에 대해 true로 설정되어 있습니다. 주 노드가 아닌 노드 유형에 대해 isPrimaryfalse로 변경합니다.

"name": "[variables('vmNodeType1Name')]",
"applicationPorts": {
    "endPort": "[variables('nt0applicationEndPort')]",
    "startPort": "[variables('nt0applicationStartPort')]"
},
"clientConnectionEndpointPort": "[variables('nt0fabricTcpGatewayPort')]",
"durabilityLevel": "Bronze",
"ephemeralPorts": {
    "endPort": "[variables('nt0ephemeralEndPort')]",
    "startPort": "[variables('nt0ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[variables('nt0fabricHttpGatewayPort')]",
"isPrimary": false,
"reverseProxyEndpointPort": "[variables('nt0reverseProxyEndpointPort')]",
"vmInstanceCount": "[parameters('nt1InstanceCount')]"

템플릿 및 매개 변수 파일의 모든 변경 내용을 구현한 후 다음 섹션으로 이동하여 Key Vault 참조를 가져오고 클러스터에 업데이트를 배포합니다.

Key Vault 참조 가져오기

업데이트된 구성을 배포하려면 Key Vault에 저장된 클러스터 인증서에 대한 몇 가지 참조가 필요합니다. 이러한 값을 찾는 가장 쉬운 방법은 Azure Portal을 통하는 것입니다. 필요한 사항:

  • 클러스터 인증서의 Key Vault URL입니다. Azure Portal의 Key Vault에서 인증서>원하는 인증서>비밀 식별자를 선택합니다.

    $certUrlValue="https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
    
  • 클러스터 인증서의 지문입니다. (초기 클러스터에 연결하여 상태를 확인한 경우 이미 이 기능이 있을 수 있습니다.) Azure Portal의 동일한 인증서 블레이드(인증서>원하는 인증서)에서 X.509 SHA-1 지문(16진수)을 복사합니다.

    $thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
    
  • Key Vault의 리소스 ID입니다. Azure Portal의 Key Vault에서 속성>리소스 ID를 선택합니다.

    $sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
    

업데이트된 템플릿 배포

필요에 따라 templateFilePath를 조정하고 다음 명령을 실행합니다.

# Deploy the new node type and its resources
$templateFilePath = "C:\Step1-AddPrimaryNodeType.json"
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

배포가 완료되면 클러스터 상태를 다시 확인하고 두 노드 형식의 노드가 모두 정상인지 확인합니다.

Get-ServiceFabricClusterHealth

워크로드를 새 노드 유형으로 마이그레이션

모든 애플리케이션이 새 노드 유형으로 이동하고 정상 상태가 될 때까지 기다립니다.

원래 노드 형식 확장 집합의 노드 사용 안 함

모든 시드 노드가 새 확장 집합으로 마이그레이션되면 원래 확장 집합의 노드를 사용하지 않도록 설정할 수 있습니다.

# Disable the nodes in the original scale set.
$nodeType = "nt0vm"
$nodes = Get-ServiceFabricNode
Write-Host "Disabling nodes..."
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName
    Disable-ServiceFabricNode -Intent RemoveNode -NodeName $node.NodeName -Force
  }
}

Service Fabric Explorer를 사용하여 원래 확장 집합의 노드 진행을 사용하지 않도록 설정 중에서 사용 안 함 상태로 모니터링합니다. 모든 노드가 사용 안 함 상태에 도달할 때까지 기다립니다.

사용할 수 없는 노드에서 데이터 중지

이제 사용할 수 없는 노드에서 데이터를 중지할 수 있습니다.

# Stop data on the disabled nodes.
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName
    Start-ServiceFabricNodeTransition -Stop -OperationId (New-Guid) -NodeInstanceId $node.NodeInstanceId -NodeName $node.NodeName -StopDurationInSeconds 10000
  }
}

원래 노드 유형을 제거하고 해당 리소스 정리

수직 크기 조정 프로시저를 종료하기 위해 원래 노드 형식과 연결된 리소스를 제거할 준비가 되었습니다.

원래 확장 집합 제거

먼저 노드 형식의 지원 확장 집합을 제거합니다.

$scaleSetName = "nt0vm"
$scaleSetResourceType = "Microsoft.Compute/virtualMachineScaleSets"
Remove-AzResource -ResourceName $scaleSetName -ResourceType $scaleSetResourceType -ResourceGroupName $resourceGroupName -Force

원래 IP 및 부하 분산 디바이스 리소스 삭제

이제 원래 IP 및 부하 분산 디바이스 리소스를 삭제할 수 있습니다. 이 단계에서는 DNS 이름도 업데이트합니다.

참고 항목

표준 SKU 공용 IP 및 부하 분산 디바이스를 이미 사용하고 있는 경우 이 단계는 선택 사항입니다. 이 경우 동일한 부하 분산 디바이스에 여러 확장 집합/노드 형식을 포함할 수 있습니다. 필요에 따라 $lbname 값을 수정하여 다음 명령을 실행합니다.

# Delete the original IP and load balancer resources
$lbName = "LB-sftestupgrade-nt0vm"
$lbResourceType = "Microsoft.Network/loadBalancers"
$ipResourceType = "Microsoft.Network/publicIPAddresses"
$oldPublicIpName = "PublicIP-LB-FE-nt0vm"
$newPublicIpName = "PublicIP-LB-FE-nt1vm"
$oldPublicIP = Get-AzPublicIpAddress -Name $oldPublicIpName  -ResourceGroupName $resourceGroupName
$nonPrimaryDNSName = $oldNonPrimaryPublicIP.DnsSettings.DomainNameLabel
$nonPrimaryDNSFqdn = $oldNonPrimaryPublicIP.DnsSettings.Fqdn
Remove-AzResource -ResourceName $lbName -ResourceType $lbResourceType -ResourceGroupName $resourceGroupName -Force
Remove-AzResource -ResourceName $oldPublicIpName -ResourceType $ipResourceType -ResourceGroupName $resourceGroupName -Force
$PublicIP = Get-AzPublicIpAddress -Name $newPublicIpName  -ResourceGroupName $resourceGroupName
$PublicIP.DnsSettings.DomainNameLabel = $nonPrimaryDNSName
$PublicIP.DnsSettings.Fqdn = $nonPrimaryDNSFqdn
Set-AzPublicIpAddress -PublicIpAddress $PublicIP

원래 노드 형식에서 노드 상태 제거

이제 원래 노드 형식 노드에는 해당 성능 상태에 대한 오류가 표시됩니다. 클러스터에서 노드 상태를 제거합니다.

# Remove state of the obsolete nodes from the cluster
$nodeType = "nt0vm"
$nodes = Get-ServiceFabricNode
Write-Host "Removing node state..."
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName
    Remove-ServiceFabricNodeState -NodeName $node.NodeName -Force
  }
}

Service Fabric Explorer는 이제 새 노드 형식(nt1vm)의 5개 노드만 반영해야 하며, 성능 상태 값은 모두 양호입니다. 최신 변경 내용을 반영하도록 템플릿을 업데이트하고 다시 배포하여 다음을 수정합니다.

새로 스케일 업된 주 노드가 아닌 노드 유형을 반영하도록 배포 템플릿 업데이트

이 단계에 필요한 대부분의 변경 내용은 Step3-CleanupOriginalPrimaryNodeType.json 템플릿 파일에서 이미 적용되었습니다. 그러나 템플릿 파일이 주 노드가 아닌 노드 유형에서 작동하도록 추가 변경이 이루어져야 합니다. 다음 섹션에서는 이 변경 내용을 자세히 설명하고 변경해야 할 경우 설명이 제공됩니다.

클러스터 관리 엔드포인트 업데이트

새 IP를 참조하도록 vmNodeType0NamevmNodeType1Name로 업데이트하여 배포 템플릿의 클러스터 managementEndpoint를 업데이트합니다.

  "managementEndpoint": "[concat('https://',reference(concat(variables('lbIPName'),'-',variables('vmNodeType1Name'))).dnsSettings.fqdn,':',variables('nt0fabricHttpGatewayPort'))]",

원래 노드 형식 참조 제거

배포 템플릿의 Service Fabric 리소스에서 원래 노드 유형 참조를 제거합니다.

기존 템플릿 파일에서 isPrimary 매개 변수는 Service Fabric 클러스터 주 노드 유형 스케일 업 가이드에 대해 true로 설정되어 있습니다. 주 노드가 아닌 노드 유형에 대해 isPrimaryfalse로 변경합니다.

"name": "[variables('vmNodeType0Name')]",
"applicationPorts": {
    "endPort": "[variables('nt0applicationEndPort')]",
    "startPort": "[variables('nt0applicationStartPort')]"
},
"clientConnectionEndpointPort": "[variables('nt0fabricTcpGatewayPort')]",
"durabilityLevel": "Bronze",
"ephemeralPorts": {
    "endPort": "[variables('nt0ephemeralEndPort')]",
    "startPort": "[variables('nt0ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[variables('nt0fabricHttpGatewayPort')]",
"isPrimary": false,
"reverseProxyEndpointPort": "[variables('nt0reverseProxyEndpointPort')]",
"vmInstanceCount": "[parameters('nt0InstanceCount')]"

기존 오류를 무시하도록 상태 정책 구성

실버 이상의 내구성이 있는 클러스터의 경우에만 템플릿의 클러스터 리소스를 업데이트하고 아래 지정된 대로 클러스터 리소스 속성 아래에 applicationDeltaHealthPolicies를 추가하여 fabric:/System 애플리케이션 상태를 무시하도록 상태 정책을 구성합니다. 아래 정책은 기존 오류는 무시하지만 새 상태 오류는 허용하지 않습니다.

"upgradeDescription":  
{ 
 "forceRestart": false, 
 "upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807", 
 "healthCheckWaitDuration": "00:05:00", 
 "healthCheckStableDuration": "00:05:00", 
 "healthCheckRetryTimeout": "00:45:00", 
 "upgradeTimeout": "12:00:00", 
 "upgradeDomainTimeout": "02:00:00", 
 "healthPolicy": { 
   "maxPercentUnhealthyNodes": 100, 
   "maxPercentUnhealthyApplications": 100 
 }, 
 "deltaHealthPolicy":  
 { 
   "maxPercentDeltaUnhealthyNodes": 0, 
   "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0, 
   "maxPercentDeltaUnhealthyApplications": 0, 
   "applicationDeltaHealthPolicies":  
   { 
       "fabric:/System":  
       { 
           "defaultServiceTypeDeltaHealthPolicy":  
           { 
                   "maxPercentDeltaUnhealthyServices": 0 
           } 
       } 
   } 
 } 
}

원본 노드 형식에 대한 지원 리소스 제거

ARM 템플릿 및 매개 변수 파일에서 원래 노드 형식과 관련된 다른 모든 리소스를 제거합니다. 다음 내용을 삭제합니다.

    "vmImagePublisher": {
      "value": "MicrosoftWindowsServer"
    },
    "vmImageOffer": {
      "value": "WindowsServer"
    },
    "vmImageSku": {
      "value": "2019-Datacenter"
    },
    "vmImageVersion": {
      "value": "latest"
    },

완료된 템플릿 배포

마지막으로 수정된 Azure Resource Manager 템플릿을 배포합니다.

# Deploy the updated template file
$templateFilePath = "C:\Step3-CleanupOriginalPrimaryNodeType"
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

참고 항목

이 단계는 시간이 오래 걸립니다(일반적으로 최대 2시간). 업그레이드는 설정이 InfrastructureService로 변경되므로 노드를 다시 시작해야 합니다. 이 경우 forceRestart는 무시됩니다. 매개 변수 upgradeReplicaSetCheckTimeout은 아직 안전한 상태가 아닌 경우 Service Fabric에서 파티션이 안전한 상태가 될 때까지 대기하는 최대 시간을 지정합니다. 노드의 모든 파티션에서 안전 검사가 통과되면 Service Fabric은 해당 노드에 대한 업그레이드를 진행합니다. 매개 변수 upgradeTimeout의 값은 6시간으로 줄일 수 있지만 안전이 최대화되도록 12시간을 사용해야 합니다.

배포가 완료되면 Service Fabric 리소스 상태가 준비되었는지 Azure Portal을 확인합니다. 새 Service Fabric Explorer 엔드포인트에 연결할 수 있는지, 클러스터 성능 상태양호한지 및 배포된 애플리케이션이 제대로 작동하는지 확인합니다.

이를 통해 클러스터 주 노드 유형을 세로로 스케일링했습니다.

다음 단계