Share via


Service Fabric 관리형 클러스터 노드 형식

Service Fabric 관리형 클러스터의 각 노드 형식은 가상 머신 확장 집합에 의해 지원됩니다. 관리형 클러스터를 사용하면 Service Fabric 관리형 클러스터 리소스 공급자를 통해 필수 변경 사항을 수행합니다. 클러스터의 모든 기본 리소스는 사용자를 대신하여 관리형 클러스터 공급자가 만들고 추상화합니다. 리소스 공급자가 리소스를 관리하도록 하면 클러스터 노드 형식의 배포 및 관리를 간소화하고 시드 노드 삭제와 같은 작업 오류를 방지하고 VM SKU 유효성 검사와 같은 모범 사례를 적용하는 것이 안전합니다.

이 문서의 나머지 부분에서는 노드 형식 만들기, 노드 형식 인스턴스 수 조정, 자동 OS 이미지 업그레이드 사용, OS 이미지 변경 및 배치 속성 구성에서 다양한 설정을 조정하는 방법을 다룹니다. 또한 이 문서에서는 Azure Portal 또는 Azure Resource Manager 템플릿을 사용하여 변경하는 방법을 중점적으로 설명합니다.

Important

현재 Service Fabric 관리형 클러스터는 사용자 지정 OS 이미지를 지원하지 않습니다.

참고 항목

변경이 진행되는 동안 노드 형식을 수정할 수 없습니다. 다른 작업을 수행하기 전에 요청된 변경을 완료하는 것이 좋습니다.

노드 형식 추가

포털, Azure Resource Manager 템플릿 또는 PowerShell을 통해 노드 형식을 Service Fabric 관리형 클러스터에 추가할 수 있습니다.

포털을 사용하여 추가

참고 항목

포털을 사용하여 보조 노드 형식만 추가할 수 있습니다.

  1. Azure Portal에 로그인합니다.

  2. 클러스터 리소스 개요 페이지로 이동합니다. Sample Overview page

  3. 섹션 아래에서 Settings 선택 Node typesNode Types view

  4. 상단에서 Add를 클릭하고 필수 정보를 입력한 다음, 하단에서 추가를 클릭하면 됩니다!

  5. 새 노드 형식 추가가 완료될 때까지 기다립니다.

ARM 템플릿을 사용하여 추가

필요한 값으로 다른 리소스 종류 Microsoft.ServiceFabric/managedclusters/nodetypes를 추가하고 설정이 적용되도록 클러스터 배포를 수행합니다.

  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2021-05-01 이상이어야 합니다.
  • 기존의 기본 노드 형식을 바꾸려는 경우 isPrimarytrue로 설정해야 합니다.
{
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeType2Name'))]",
    "location": "[resourcegroup().location]",
    "dependsOn": [
        "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
    ],
    "properties": {
        "isPrimary": false,
        "vmImagePublisher": "[parameters('vmImagePublisher')]",
        "vmImageOffer": "[parameters('vmImageOffer')]",
        "vmImageSku": "[parameters('vmImageSku')]",
        "vmImageVersion": "[parameters('vmImageVersion')]",
        "vmSize": "[parameters('nodeType2VmSize')]",
        "vmInstanceCount": "[parameters('nodeType2VmInstanceCount')]",
        "dataDiskSizeGB": "[parameters('nodeType2DataDiskSizeGB')]",
        "dataDiskType": "[parameters('nodeType2managedDataDiskType')]"
    }
}

두 가지 노드 형식 구성의 예는 샘플 2개 노드 형식 ARM 템플릿을 참조하세요.

PowerShell을 사용하여 추가

새 노드 형식을 만들려면 다음 속성을 정의해야 합니다.

  • 리소스 그룹: 클러스터가 속한 리소스 그룹
  • 클러스터 이름: 관리형 클러스터 이름
  • 노드 형식 이름: 클러스터의 기존 노드 형식의 고유한 이름입니다.
  • 인스턴스 수: 새 노드 형식의 초기 노드 수입니다.
  • VM 크기: 노드에 대한 VM SKU입니다. 지정하지 않으면 Standard_D2 기본값이 사용됩니다.

참고 항목

기본 노드 형식을 추가하는 경우 -Primary 속성을 사용해야 합니다.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "nt2"
$vmSize = "Standard_D2_v2"

New-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName -InstanceCount 3 -vmSize $vmSize

노드 형식 제거

포털 또는 PowerShell을 사용하여 Service Fabric 관리형 클러스터 노드 형식을 제거할 수 있습니다.

참고 항목

Service Fabric 관리형 클러스터에서 기본 노드 형식을 제거하려면 PowerShell을 사용해야 하며 사용 가능한 기본 노드 형식이 두 개 이상 있어야 합니다.

포털을 사용하여 제거

  1. Azure Portal에 로그인합니다.

  2. 클러스터 리소스 개요 페이지로 이동합니다. Sample Overview page

  3. 섹션 아래에서 Settings 선택 Node typesNode Types view

  4. 제거할 Node Type을 선택하고 상단의 Delete를 클릭합니다.

PowerShell을 사용하여 제거

참고 항목

SKU 업그레이드와 같은 시나리오에서 기본 노드 형식을 제거하는 경우 몇 시간이 걸릴 수 있으며 SFX를 사용하여 진행률을 모니터링할 수 있습니다. 시드 노드는 UD(업그레이드 도메인) 워크당 한 번에 하나의 노드를 마이그레이션합니다.

노드 형식을 제거하려면 다음 속성을 정의해야 합니다.

  • 리소스 그룹: 클러스터가 속한 리소스 그룹
  • 클러스터 이름: 관리형 클러스터 이름
  • 노드 형식 이름: 클러스터의 기존 노드 형식의 고유한 이름입니다.
$resourceGroup = "myResourceGroup"
$clusterName = "myCluster"
$nodeTypeName = "nt2"

Remove-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName  -Name $nodeTypeName

노드 형식 크기 조정

포털, ARM 템플릿 또는 PowerShell을 사용하여 Service Fabric 관리형 클러스터 노드 형식의 크기를 조정할 수 있습니다. 완전히 자동화된 솔루션을 원하는 경우 보조 노드 형식에 대한 자동 크기 조정을 구성할 수도 있습니다.

참고 항목

  • 주 노드 유형은 자동 크기 조정으로 설정할 수 없으며 수동 크기 조정으로만 설정할 수 있습니다.
  • 주 노드 형식의 경우 기본 SKU 클러스터의 경우 3개 노드 및 표준 SKU 클러스터의 경우 5개 노드 아래로 갈 수 없습니다.

포털을 사용하여 크기 조정

이 연습을 통해 포털을 사용하여 노드 형식에 대한 노드 수를 수정하는 방법을 배웁니다.

  1. Azure Portal에 로그인합니다.

  2. 클러스터 리소스 개요 페이지로 이동합니다. Sample Overview page

  3. Settings 섹션에서 Node Types를 선택합니다.

  4. 수정할 Node type name을 선택합니다.

  5. 필요한 경우 노드 유형 속성을 검토하고 업데이트합니다.

Sample showing a node count increase

  1. 크기 조정 설정을 구성하고 사용자 지정 자동 크기 조정 및 수동 크기 조정 옵션 중에서 선택하려면 Manage node type scaling을 선택합니다. 자동 크기 조정은 수요가 변경될 때 애플리케이션이 최상의 성능을 발휘하도록 도와주는 기본 제공 기능입니다. 특정 인스턴스 수로 수동으로 리소스 크기를 조정하거나, 메트릭 임계값에 따라 크기가 조정되는 사용자 지정 자동 크기 조정 정책을 통해 리소스 크기를 조정하거나, 지정된 기간 동안 크기가 조정되는 인스턴스 수를 예약하도록 선택할 수 있습니다. Azure 자동 크기 조정에 대해 자세히 알아보기 또는 방법 비디오 보기.

    • 사용자 지정 자동 크기 조정: 사용자 지정 자동 크기 조정 정책을 정의할 적절한 scale mode를 선택합니다(Scale to a specific instance count 또는 Scale based on a metric). 후자는 메트릭 트리거 규칙을 기반으로 합니다(예: CPU 백분율이 70%를 초과하는 경우 인스턴스 수 1씩 증가). 정책을 정의한 후 상단에서 Save를 선택합니다.

      Sample showing auto scaling setting

    • Manual scale: 원하는 새 값으로 Node count를 조정하고 상단에서 Save를 선택합니다. 이 스크린샷에서 값은 3이었고 5로 조정되었습니다.

      Sample showing manual scaling setting

    노드 유형에서 이러한 저장된 설정을 구성하려면 하단에서 Apply를 선택합니다.

  2. 이제 Provisioning state가 완료될 때까지 Updating 상태를 표시합니다. 작업이 완료되면 다시 Succeeded로 표시됩니다. Sample showing a node type updating

템플릿을 사용하여 노드 형식 크기 조정

ARM 템플릿을 사용하여 노드 형식에 대한 노드 수를 조정하려면 vmInstanceCount 속성을 새 값으로 조정하고 설정이 적용되도록 클러스터 배포를 수행합니다. 클러스터가 자동으로 업그레이드를 시작하고 업그레이드가 완료되면 추가 노드가 표시됩니다.

  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2021-05-01 이상이어야 합니다.

참고 항목

관리형 클러스터 공급자는 크기 조정 요청이 필요한 최솟값을 위반하는 경우 크기 조정을 차단하고 오류를 반환합니다.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    ...
  }
}

PowerShell을 사용하여 노드 형식 크기 조정

크기를 조정하려는 노드 유형의 노드 수를 늘리거나 줄이려면 인스턴스 수를 변경합니다. 클러스터 배포 또는 Service Fabric Explorer에서 ARM 템플릿(Azure Resource Manager 템플릿)에서 노드 형식 이름을 찾을 수 있습니다.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "FE"
$instanceCount = "7"

Set-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -name $nodeTypeName -InstanceCount $instanceCount -Verbose

클러스터가 자동으로 업그레이드를 시작하고 업그레이드가 완료되면 추가 노드가 표시됩니다.

자동 OS 이미지 업그레이드 사용

관리형 클러스터 노드를 실행하는 가상 머신으로 자동 OS 이미지 업그레이드를 사용하도록 선택할 수 있습니다. 가상 머신 확장 집합 리소스는 Service Fabric 관리형 클러스터를 대신하여 관리되지만 클러스터 노드에 대해 자동 OS 이미지 업그레이드를 사용하도록 설정하는 것이 좋습니다. 클래식 Service Fabric 클러스터와 마찬가지로 관리형 클러스터 노드는 클러스터에 의도하지 않은 중단을 방지하기 위해 기본적으로 업그레이드되지 않습니다.

자동 OS 업그레이드를 사용하도록 설정하려면 다음을 수행합니다.

  • apiVersion 2021-05-01 이상 버전의 Microsoft.ServiceFabric/managedclustersMicrosoft.ServiceFabric/managedclusters/nodetypes 리소스 사용
  • 클러스터의 속성을 enableAutoOSUpgrade true로 설정
  • 클러스터 nodeTypes의 리소스 속성을 vmImageVersion 최신으로 설정

예시:

    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters",
      ...
      "properties": {
        ...
        "enableAutoOSUpgrade": true
      },
    },
    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       ...
      "properties": {
        ...
        "vmImageVersion": "latest",
        ...
      }
    }
}

사용하도록 설정되면 Service Fabric은 관리되는 클러스터에서 OS 이미지 버전을 쿼리하고 추적하기 시작합니다. 새 OS 버전을 사용할 수 있는 경우 클러스터 노드 유형(가상 머신 확장 집합)이 한 번에 하나씩 업그레이드됩니다. Service Fabric 런타임 업그레이드는 클러스터 노드 OS 이미지 업그레이드가 진행 중이 아니라는 것을 확인한 후에만 수행됩니다.

업그레이드에 실패하면 Service Fabric은 최대 3번의 재시도를 위해 24시간 후에 다시 시도합니다. 클래식(관리되지 않는) Service Fabric 업그레이드와 마찬가지로 비정상 앱 또는 노드는 OS 이미지 업그레이드를 차단할 수 있습니다.

이미지 업그레이드에 대한 자세한 내용은 Azure 가상 머신 확장 집합을 사용한 자동 OS 이미지 업그레이드를 참조 하세요.

노드 형식에 대한 OS SKU 수정

Service Fabric 관리형 클러스터를 사용하면 노드 형식에 맞게 OS SKU를 수정할 수 있습니다. 이는 Windows 2019에서 Windows 2022로 마이그레이션하는 것과 같은 시나리오나 Server(Core) SKU 및 데스크톱 환경 SKU 포함 서버로 전환하려는 경우 유용합니다.

포털을 사용하여 OS SKU 수정

이 연습을 통해 포털을 사용하여 노드 형식에 대한 OS 이미지를 수정하는 방법을 배웁니다.

  1. Azure Portal에 로그인합니다.

  2. 클러스터 리소스 개요 페이지로 이동합니다. Sample Overview page

  3. Settings 섹션에서 Node Types를 선택합니다.

  4. 수정할 Node type name을 선택합니다.

  5. 원하는 새 값으로 OS Image를 조정하고 하단에서 Apply를 선택합니다. ![OS 이미지 변경을 보여주는 샘플][change-os-image]

  6. 이제 Provisioning stateUpdating 상태를 표시하고 한 번에 하나의 업그레이드 도메인을 진행합니다. 작업이 완료되면 다시 Succeeded로 표시됩니다. Sample showing a node type updating

템플릿을 사용하여 OS SKU 수정

ARM 템플릿을 사용하여 노드 형식에 사용되는 OS 이미지를 수정하려면 vmImageSku 속성을 새 값으로 조정하고 설정이 적용되도록 클러스터 배포를 수행합니다. 관리형 클러스터 공급자는 업그레이드 도메인별로 각 인스턴스를 이미지로 다시 설치합니다.

  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2021-05-01 이상이어야 합니다.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    ...
  }
}

노드 형식에 대한 배치 속성 구성

배치 속성은 특정 워크로드가 클러스터의 특정 노드 형식에서만 실행되도록 하는 데 사용됩니다. Service Fabric 관리형 클러스터는 포털, ARM 템플릿 또는 PowerShell을 통해 이러한 속성의 구성을 지원합니다.

포털을 사용하여 배치 속성 구성

이 연습을 통해 포털을 사용하여 노드 형식에 대한 배치 속성을 수정하는 방법을 배웁니다.

  1. Azure Portal에 로그인합니다.

  2. 클러스터 리소스 개요 페이지로 이동합니다. Sample Overview page

  3. Settings 섹션에서 Node Types를 선택합니다.

  4. 수정할 Node type name을 선택합니다.

  5. Placement properties 섹션에서 원하는 이름과 값을 추가하고 하단에서 Apply를 선택합니다. 이 스크린샷에서는 NameSSD_PremiumtrueValue로 사용되었습니다. Sample showing adding a placement property

  6. 이제 Provisioning state가 완료될 때까지 Updating 상태를 표시합니다. 작업이 완료되면 다시 Succeeded로 표시됩니다. Sample showing a node type updating

템플릿을 사용하여 배치 속성 구성

ARM 템플릿을 사용하여 노드 형식에 대한 배치 속성을 조정하려면 placementProperties 속성을 새 값으로 조정하고 설정이 적용되도록 클러스터 배포를 수행합니다. 아래 샘플은 노드 형식에 대해 설정되는 세 가지 값을 보여줍니다.

  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2021-05-01 이상이어야 합니다.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "placementProperties": {
      "PremiumSSD": "true",
      "NodeColor": "green",
      "SomeProperty": "5"
    }
  }
}

PowerShell을 사용하여 배치 속성 구성

다음 예제에서는 주어진 노드 형식에 대한 기존 배치 속성을 업데이트하고 덮어씁니다.

$rgName = "testRG"
$clusterName = "testCluster"
$NodeTypeName = "nt1"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $rgName -ClusterName $clusterName -name $NodeTypeName -PlacementProperty @{NodeColor="Red";SomeProperty="6";} -Verbose

노드 형식에 대한 VM SKU 수정

ARM 템플릿을 사용하여 노드 형식에 사용되는 VM SKU 크기를 수정하려면 vmSize 속성을 새 값으로 조정하고 설정이 적용되도록 클러스터 배포를 수행합니다. 관리형 클러스터 공급자는 업그레이드 도메인별로 각 인스턴스를 이미지로 다시 설치합니다. SKU 옵션 목록은 VM 크기 - Azure Virtual Machines | Microsoft Learn을 참조하세요.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmSize": "[parameters('vmImageVersion')]",
    ...
  }
}

여러 관리 디스크 구성

Service Fabric 관리형 클러스터는 기본적으로 하나의 관리 디스크를 구성합니다. 다음 선택적 속성 및 값을 구성하여 클러스터 내의 노드 형식에 더 많은 관리 디스크를 추가할 수 있습니다. 드라이브 문자, 디스크 유형 및 디스크당 크기를 지정할 수 있습니다.

다음과 같이 Resource Manager 템플릿에서 additionalDataDisks 속성 및 필수 매개 변수를 선언하여 더 많은 관리 디스크를 구성합니다.

기능 요구 사항

  • Lun은 디스크별로 고유해야 하며 예약된 lun 0을 사용할 수 없습니다.
  • 디스크 문자는 예약 문자 C 또는 D를 사용할 수 없으며 생성된 후에는 수정할 수 없습니다. 지정하지 않은 경우 S가 기본값으로 사용됩니다.
  • 지원되는 디스크 유형을 지정해야 합니다.
  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2022-01-01 이상이어야 합니다.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "additionalDataDisks": {
      "lun": "1",
      "diskSizeGB": "50",
      "diskType": "Standard_LRS",
      "diskLetter": "S" 
    }
  }
}

사용 가능한 매개 변수의 전체 목록 참조

Service Fabric 데이터 디스크 드라이브 문자 구성

Service Fabric 관리형 클러스터는 기본적으로 Service Fabric 데이터 디스크를 구성하고 노드 형식의 모든 노드에서 드라이브 문자를 자동으로 구성합니다. 이 선택적 속성 및 값을 구성하면 드라이브 문자 매핑에 대한 특정 요구 사항이 있는 경우 Service Fabric 데이터 디스크 문자를 지정하고 검색할 수 있습니다.

기능 요구 사항

  • 디스크 문자는 예약 문자 C 또는 D를 사용할 수 없으며 생성된 후에는 수정할 수 없습니다. 지정하지 않은 경우 S가 기본값으로 사용됩니다.
  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2022-01-01 이상이어야 합니다.
{
  {
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
    "location": "[resourcegroup().location]",
    "properties": {
      "dataDiskLetter": "S"
    }
  }
}

다음 단계