다음을 통해 공유


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. 클러스터 리소스 개요 페이지로 이동합니다.

  3. Settings 섹션에서 Node types를 선택합니다. 노드 형식 보기

  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. 클러스터 리소스 개요 페이지로 이동합니다. ! [샘플 개요 페이지][개요]

  3. Settings 섹션에서 Node types를 선택합니다. 노드 형식 보기

  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. 클러스터 리소스 개요 페이지로 이동합니다. ! [샘플 개요 페이지][개요]

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

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

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

노드 수 증가를 보여주는 샘플

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

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

      자동 크기 조정 설정을 보여 주는 샘플

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

      수동 크기 조정 설정을 보여 주는 샘플

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

  2. Provisioning state는 완료될 때까지 Updating 상태를 표시합니다. 완료되면 Succeeded가 다시 표시됩니다. 노드 형식 업데이트를 보여주는 샘플

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

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 이미지 업그레이드는 마켓플레이스 및 사용자 지정 이미지 모두에 대해 지원됩니다.

자동 OS 업그레이드를 사용하도록 설정하려면:

  • apiVersion 2021-05-01 이상 버전의 Microsoft.ServiceFabric/managedclustersMicrosoft.ServiceFabric/managedclusters/nodetypes 리소스 사용
  • 클러스터의 속성 enableAutoOSUpgradetrue로 설정합니다.
  • 클러스터 nodeTypes의 리소스 속성 vmImageVersionlatest로 설정합니다.

예시:

    {
      "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은 24시간 후에 최대 3번의 다시 시도를 위해 다시 시도합니다. 클래식(관리되지 않는) Service Fabric 업그레이드와 마찬가지로 비정상 앱 또는 노드가 OS 이미지 업그레이드를 차단할 수 있습니다.

이미지 업그레이드에 대한 자세한 내용은 Azure Virtual Machine Scale Sets를 사용한 자동 OS 이미지 업그레이드를 참조하세요.

노드 형식에 대한 OS SKU 수정

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

포털을 사용하여 OS SKU 수정

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

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

  2. 클러스터 리소스 개요 페이지로 이동합니다. ! [샘플 개요 페이지][개요]

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

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

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

  6. Provisioning stateUpdating 상태를 표시하고 한 번에 하나의 업그레이드 도메인을 수행합니다. 완료되면 Succeeded가 다시 표시됩니다. 노드 형식 업데이트를 보여주는 샘플

템플릿을 사용하여 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. 클러스터 리소스 개요 페이지로 이동합니다. ! [샘플 개요 페이지][개요]

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

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

  5. Placement properties 섹션에서 원하는 이름과 값을 추가하고 하단에서 Apply를 선택합니다. 이 스크린샷에서는 Name SSD_PremiumtrueValue로 사용되었습니다. 배치 속성 추가를 보여주는 샘플

  6. Provisioning state는 완료될 때까지 Updating 상태를 표시합니다. 완료되면 Succeeded가 다시 표시됩니다. 노드 형식 업데이트를 보여주는 샘플

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

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 또는 1을 사용할 수 없습니다.
  • 디스크 문자는 예약된 문자 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": "2",
      "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"
    }
  }
}

컴퓨터 이름 접두사 설정

더 자세한 설명을 위해 노드 형식에 더 긴 이름이 필요한 고객은 컴퓨터 이름 접두사의 혜택을 누릴 수 있습니다.

참고 항목

컴퓨터 이름 접두사는 Service Fabric API 버전 2024-04-01 or later에서만 작동합니다.

컴퓨터 이름 접두사를 설정하려면 다음 ARM 템플릿 변경 내용을 구현합니다.

{
  "apiVersion": "2024-04-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', 'BE-testResourceGroup-testRegion-test')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
      "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isPrimary": false,
    "dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('vmSize')]",
    "vmInstanceCount": "[parameters('vmInstanceCount')]",
    "computerNamePrefix": "computerNamePrefix"
  }
} 

다음 단계