상태 비저장 노드 유형을 사용하여 Service Fabric 관리형 클러스터 배포

Service Fabric 노드 유형은 특정 시점에 상태 저장 서비스가 노드에 배치될 수 있다는 가정 하에 제공됩니다. 상태 비저장 노드 유형은 노드 유형에 대한 이러한 가정을 변경합니다. 이를 통해 노드 유형은 더 빠른 스케일 아웃 작업, 자동 OS 업그레이드 지원, 스폿 VM 및 한 노드 유형에 포함된 100개가 넘는 노드로의 스케일 아웃과 같은 기능을 활용할 수 있습니다.

  • 주 노드 유형은 상태 비저장으로 구성할 수 없습니다.
  • 상태 비저장 노드 유형에는 2021-05-01 이상의 API 버전이 필요합니다.
  • 그러면 multipleplacementgroup 속성이 자동으로 true로 설정되며 이에 대해서는 여기에서 자세히 알아볼 수 있습니다.
  • 이를 통해 주어진 노드 유형에 대해 최대 1000개의 노드를 지원할 수 있습니다.
  • 상태 비저장 노드 유형은 VM SKU 임시 디스크를 활용할 수 있습니다.

Service Fabric 관리형 클러스터에서 상태 비저장 노드 유형 사용

노드 유형 리소스에서 하나 이상의 노드 유형을 상태 비저장으로 설정하려면 isStateless 속성을 true로 설정합니다. 상태 비저장 노드 유형을 사용하여 Service Fabric 클러스터를 배포하는 경우 클러스터에 상태 비저장이 아닌 주 노드 유형이 하나 이상 있어야 합니다.

사용 가능한 샘플 템플릿: Service Fabric 상태 비저장 노드 유형 템플릿

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

Service Fabric 관리형 클러스터에서 스폿 VM을 사용하여 상태 비저장 노드 유형 사용(미리 보기)

확장 집합에 Azure Spot Virtual Machines를 사용하면 미사용 컴퓨팅 용량을 대폭 절감된 비용으로 활용할 수 있습니다. Azure에 용량이 다시 필요한 경우 언제든지 Azure 인프라에서 이러한 Azure Spot Virtual Machine 인스턴스를 제거합니다. 따라서 스폿 VM 노드 유형은 중단을 처리할 수 있고 특정 시간 프레임 내에 완료할 필요가 없는 워크로드에 적합합니다. 권장되는 워크로드에는 개발, 테스트, 일괄 처리 작업, 빅 데이터 또는 기타 대규모 상태 비지방 시나리오가 포함됩니다.

스폿 VM을 사용하도록 하나 이상의 상태 비저장 노드 유형을 설정하려면 isStatelessIsSpotVM 속성을 모두 true로 설정합니다. 상태 비저장 노드 유형을 사용하여 Service Fabric 클러스터를 배포하는 경우 클러스터에 상태 비저장이 아닌 주 노드 유형이 하나 이상 있어야 합니다. 스폿 VM을 사용하도록 구성된 상태 비저장 노드 유형에는 기본적으로 제거 정책이 ‘삭제’로 설정되어 있습니다. 고객은 'evictionPolicy'를 'Delete' 또는 'Deallocate'로 구성할 수 있지만 nodetype을 만들 때만 정의할 수 있습니다.

사용 가능한 샘플 템플릿: Service Fabric 스폿 노드 유형 템플릿

  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2022-06-01-preview 이상이어야 합니다.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "IsSpotVM": true,
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
  }
}

시도 및 복원으로 스폿 VM 사용

이 구성을 사용하면 플랫폼에서 제거된 스폿 VM을 자동으로 복원할 수 있습니다. 자세한 내용은 가상 머신 확장 집합 문서를 참조하세요. 이 구성은 30 & 2,880분 사이의 값을 갖는 ISO 8601 기간인 spotRestoreTimeout을 지정하여 새 스폿 노드 형식에서만 사용하도록 설정할 수 있습니다. 이 플랫폼은 제거 후 이 기간 동안 VM 복원을 시도합니다.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "IsSpotVM": true,
    "evictionPolicy": "deallocate",
    "spotRestoreTimeout": "PT30M",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
  }
}

영역 복원력을 위한 상태 비저장 노드 유형 구성

영역 복원력을 위해 상태 비저장 노드 유형을 구성하려면 클러스터 수준에서 관리형 클러스터 영역을 구성해야 합니다.

참고 항목

영역 복원력 속성은 클러스터 수준에서 설정해야 하며 이 속성은 현재 위치로 변경할 수 없습니다.

임시 디스크 지원

상태 비저장 노드 유형은 관리 디스크 대신 임시 디스크를 데이터 디스크로 사용하도록 구성할 수 있습니다. 임시 디스크를 사용하면 상태 비저장 워크로드에 대한 비용을 줄일 수 있습니다. 임시 디스크를 사용하도록 상태 비저장 노드 유형을 구성하려면 useTempDataDisk 속성을 true로 설정합니다.

  • 임시 디스크 크기는 32GB 이상이어야 합니다. 임시 디스크의 크기는 VM 크기에 따라 다릅니다.
  • 호스트에서 암호화를 사용하도록 설정하지 않으면 임시 디스크가 서버 쪽 암호화를 통해 암호화되지 않습니다.
  • Service Fabric 관리형 클러스터 리소스 apiVersion은 2022-01-01 이상이어야 합니다.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "useTempDataDisk": true
  }
}

클러스터에서 상태 비저장 노드 유형을 사용하도록 마이그레이션

모든 마이그레이션 시나리오에 대해 새로운 상태 비저장 노드 유형을 추가해야 합니다. 기존 노드 유형은 상태 비저장으로 마이그레이션할 수 없습니다. 기존 Service Fabric 관리형 클러스터에 새 상태 비저장 노드 유형을 추가하고 클러스터에서 원래 노드 유형을 제거할 수 있습니다.

다음 단계

Service Fabric 관리형 클러스터에 대해 자세히 알아보려면 다음을 참고하세요.