다음을 통해 공유


Microsoft.ServiceFabric 클러스터 2019-11-01-preview

Bicep 리소스 정의

클러스터 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그를 참조하세요.

리소스 형식

Microsoft.ServiceFabric/clusters 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.

resource symbolicname 'Microsoft.ServiceFabric/clusters@2019-11-01-preview' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  properties: {
    addOnFeatures: [
      'string'
    ]
    applicationTypeVersionsCleanupPolicy: {
      maxUnusedVersionsToKeep: int
    }
    azureActiveDirectory: {
      clientApplication: 'string'
      clusterApplication: 'string'
      tenantId: 'string'
    }
    certificate: {
      thumbprint: 'string'
      thumbprintSecondary: 'string'
      x509StoreName: 'string'
    }
    certificateCommonNames: {
      commonNames: [
        {
          certificateCommonName: 'string'
          certificateIssuerThumbprint: 'string'
        }
      ]
      x509StoreName: 'string'
    }
    clientCertificateCommonNames: [
      {
        certificateCommonName: 'string'
        certificateIssuerThumbprint: 'string'
        isAdmin: bool
      }
    ]
    clientCertificateThumbprints: [
      {
        certificateThumbprint: 'string'
        isAdmin: bool
      }
    ]
    clusterCodeVersion: 'string'
    diagnosticsStorageAccountConfig: {
      blobEndpoint: 'string'
      protectedAccountKeyName: 'string'
      protectedAccountKeyName2: 'string'
      queueEndpoint: 'string'
      storageAccountName: 'string'
      tableEndpoint: 'string'
    }
    eventStoreServiceEnabled: bool
    fabricSettings: [
      {
        name: 'string'
        parameters: [
          {
            name: 'string'
            value: 'string'
          }
        ]
      }
    ]
    managementEndpoint: 'string'
    nodeTypes: [
      {
        applicationPorts: {
          endPort: int
          startPort: int
        }
        capacities: {
          {customized property}: 'string'
        }
        clientConnectionEndpointPort: int
        durabilityLevel: 'string'
        ephemeralPorts: {
          endPort: int
          startPort: int
        }
        httpGatewayEndpointPort: int
        isPrimary: bool
        name: 'string'
        placementProperties: {
          {customized property}: 'string'
        }
        reverseProxyEndpointPort: int
        vmInstanceCount: int
      }
    ]
    reliabilityLevel: 'string'
    reverseProxyCertificate: {
      thumbprint: 'string'
      thumbprintSecondary: 'string'
      x509StoreName: 'string'
    }
    reverseProxyCertificateCommonNames: {
      commonNames: [
        {
          certificateCommonName: 'string'
          certificateIssuerThumbprint: 'string'
        }
      ]
      x509StoreName: 'string'
    }
    upgradeDescription: {
      deltaHealthPolicy: {
        applicationDeltaHealthPolicies: {
          {customized property}: {
            defaultServiceTypeDeltaHealthPolicy: {
              maxPercentDeltaUnhealthyServices: int
            }
            serviceTypeDeltaHealthPolicies: {
              {customized property}: {
                maxPercentDeltaUnhealthyServices: int
              }
            }
          }
        }
        maxPercentDeltaUnhealthyApplications: int
        maxPercentDeltaUnhealthyNodes: int
        maxPercentUpgradeDomainDeltaUnhealthyNodes: int
      }
      forceRestart: bool
      healthCheckRetryTimeout: 'string'
      healthCheckStableDuration: 'string'
      healthCheckWaitDuration: 'string'
      healthPolicy: {
        applicationHealthPolicies: {
          {customized property}: {
            defaultServiceTypeHealthPolicy: {
              maxPercentUnhealthyServices: int
            }
            serviceTypeHealthPolicies: {
              {customized property}: {
                maxPercentUnhealthyServices: int
              }
            }
          }
        }
        maxPercentUnhealthyApplications: int
        maxPercentUnhealthyNodes: int
      }
      upgradeDomainTimeout: 'string'
      upgradeReplicaSetCheckTimeout: 'string'
      upgradeTimeout: 'string'
    }
    upgradeMode: 'string'
    vmImage: 'string'
  }
}

속성 값

clusters

Name Description
name 리소스 이름 string(필수)

문자 제한: 4-23

유효한 문자:
소문자, 숫자 및 하이픈

소문자로 시작합니다. 소문자 또는 숫자로 끝납니다.
위치 Azure 리소스 위치. string(필수)
tags Azure 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿의 태그를 참조하세요.
properties 클러스터 리소스 속성 ClusterProperties

ClusterProperties

Name Description
addOnFeatures 클러스터에서 사용하도록 설정할 추가 기능 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'BackupRestoreService'
'DnsService'
'RepairManager'
'ResourceMonitorService'
applicationTypeVersionsCleanupPolicy 사용되지 않는 버전을 클린 데 사용되는 정책입니다. ApplicationTypeVersionsCleanupPolicy
azureActiveDirectory 클러스터의 AAD 인증 설정입니다. AzureActiveDirectory
인증서(certificate) 클러스터 보안에 사용할 인증서입니다. 제공된 인증서는 클러스터 내 노드 간 보안, 클러스터 관리 엔드포인트용 SSL 인증서 및 기본 관리 클라이언트에 사용됩니다. CertificateDescription
certificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
clientCertificateCommonNames 클러스터를 관리할 수 있는 일반 이름으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateCommonName[]
clientCertificateThumbprints 클러스터를 관리할 수 있는 지문으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateThumbprint[]
clusterCodeVersion 클러스터의 Service Fabric 런타임 버전입니다. 이 속성은 upgradeMode 가 '수동'으로 설정된 경우에만 사용자를 설정할 수 있습니다. 새 클러스터에 사용 가능한 Service Fabric 버전 목록을 얻으려면 ClusterVersion API를 사용합니다. 기존 클러스터에 사용 가능한 버전 목록을 얻으려면 availableClusterVersions를 사용합니다. string
diagnosticsStorageAccountConfig Service Fabric 진단 로그를 저장하기 위한 스토리지 계정 정보입니다. DiagnosticsStorageAccountConfig
eventStoreServiceEnabled 이벤트 저장소 서비스를 사용할 수 있는지를 나타냅니다. bool
fabricSettings 클러스터를 구성할 사용자 지정 패브릭 설정 목록입니다. SettingsSectionDescription[]
managementEndpoint 클러스터의 http 관리 엔드포인트입니다. string(필수)
nodeTypes 클러스터의 노드 형식 목록입니다. NodeTypeDescription[] (필수)
reliabilityLevel 안정성 수준은 시스템 서비스의 복제본(replica) 집합 크기를 설정합니다. ReliabilityLevel에 대해 알아봅니다.

- 없음 - 대상 복제본(replica) 집합 수가 1인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Bronze - 대상 복제본(replica) 집합 수가 3인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Silver - 대상 복제본(replica) 집합 수가 5인 시스템 서비스를 실행합니다.
- 골드 - 대상 복제본(replica) 집합 수가 7인 시스템 서비스를 실행합니다.
- Platinum - 대상 복제본(replica) 집합 수가 9인 시스템 서비스를 실행합니다.
'브론즈'
'골드'
'None'
'플래티넘'
'실버'
reverseProxyCertificate 역방향 프록시에서 사용하는 서버 인증서입니다. CertificateDescription
reverseProxyCertificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
upgradeDescription 클러스터를 업그레이드할 때 사용할 정책입니다. ClusterUpgradePolicy
upgradeMode 새 Service Fabric 런타임 버전을 사용할 수 있는 경우 클러스터의 업그레이드 모드입니다.

- 자동 - 클러스터가 사용 가능한 즉시 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드됩니다.
- 수동 - 클러스터가 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드되지 않습니다. 클러스터 리소스에서 clusterCodeVersion 속성을 설정하여 클러스터를 업그레이드합니다.
'Automatic'
'수동'
vmImage VM 이미지 VMSS가 구성되었습니다. Windows 또는 Linux와 같은 제네릭 이름을 사용할 수 있습니다. string

ApplicationTypeVersionsCleanupPolicy

Name Description
maxUnusedVersionsToKeep 유지할 애플리케이션 유형당 사용되지 않는 버전 수입니다. int(필수)

제약 조건:
최소값 = 0

AzureActiveDirectory

Name Description
clientApplication Azure Active Directory 클라이언트 애플리케이션 ID입니다. 문자열
clusterApplication Azure Active Directory 클러스터 애플리케이션 ID입니다. string
tenantId Azure Active Directory 테넌트 ID입니다. string

CertificateDescription

Name Description
thumbprint 기본 인증서의 지문입니다. string(필수)
thumbprintSecondary 보조 인증서의 지문입니다. string
x509StoreName 로컬 인증서 저장소 위치입니다. 'AddressBook'
'AuthRoot'
'CertificateAuthority'
'허용되지 않음'
'My'
'Root'
'TrustedPeople'
'TrustedPublisher'

ServerCertificateCommonNames

Name Description
commonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록입니다. ServerCertificateCommonName[]
x509StoreName 로컬 인증서 저장소 위치입니다. 'AddressBook'
'AuthRoot'
'CertificateAuthority'
'허용되지 않음'
'My'
'Root'
'TrustedPeople'
'TrustedPublisher'

ServerCertificateCommonName

Name Description
certificateCommonName 서버 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 서버 인증서의 발급자 지문입니다. string(필수)

ClientCertificateCommonName

Name Description
certificateCommonName 클라이언트 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 클라이언트 인증서의 발급자 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업만 수행할 수 있습니다. bool(필수)

ClientCertificateThumbprint

Name Description
certificateThumbprint 클라이언트 인증서의 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업만 수행할 수 있습니다. bool(필수)

DiagnosticsStorageAccountConfig

Name Description
blobEndpoint Azure Storage 계정의 Blob 엔드포인트입니다. string(필수)
protectedAccountKeyName 보호된 진단 스토리지 키 이름입니다. string(필수)
protectedAccountKeyName2 보조 보호된 진단 스토리지 키 이름입니다. 스토리지 계정 키 중 하나가 회전되면 클러스터는 다른 키를 사용하는 것으로 대체됩니다. string
queueEndpoint Azure Storage 계정의 큐 엔드포인트입니다. string(필수)
storageAccountName Azure 스토리지 계정 이름. string(필수)
tableEndpoint Azure Storage 계정의 테이블 엔드포인트입니다. string(필수)

SettingsSectionDescription

Name Description
name 패브릭 설정의 섹션 이름입니다. string(필수)
매개 변수 섹션의 매개 변수 컬렉션입니다. SettingsParameterDescription[] (필수)

SettingsParameterDescription

Name Description
name 패브릭 설정의 매개 변수 이름입니다. string(필수)
패브릭 설정의 매개 변수 값입니다. string(필수)

NodeTypeDescription

Name Description
applicationPorts 클러스터가 Service Fabric 애플리케이션에 포트를 할당한 포트 범위입니다. EndpointRangeDescription
capacities 노드 유형의 노드에 적용되는 용량 태그인 클러스터 리소스 관리자는 이러한 태그를 사용하여 노드에 있는 리소스의 양을 이해합니다. NodeTypeDescriptionCapacities
clientConnectionEndpointPort TCP 클러스터 관리 엔드포인트 포트입니다. int(필수)
durabilityLevel 노드 형식의 내구성 수준입니다. DurabilityLevel에 대해 알아봅니다.

- 브론즈 - 권한이 없습니다. 이것이 기본값입니다.
- Silver - 인프라 작업은 UD당 10분 동안 일시 중지할 수 있습니다.
- 골드 - 인프라 작업은 UD당 2시간 동안 일시 중지할 수 있습니다. 골드 지속성은 D15_V2, G5 등과 같이 전체 노드 VM sku에서만 사용되도록 설정할 수 있습니다.
'Bronze'
'골드'
'Silver'
ephemeralPorts 이 노드 형식의 노드를 구성해야 하는 임시 포트의 범위입니다. EndpointRangeDescription
httpGatewayEndpointPort HTTP 클러스터 관리 엔드포인트 포트입니다. int(필수)
isPrimary 시스템 서비스가 실행될 노드 유형입니다. 하나의 노드 형식만 기본으로 표시되어야 합니다. 기본 노드 유형은 기존 클러스터에 대해 삭제하거나 변경할 수 없습니다. bool(필수)
name 노드 형식의 이름입니다. string(필수)
placementProperties 노드 형식의 노드에 적용된 배치 태그로, 특정 서비스(워크로드)가 실행되어야 하는 위치를 나타내는 데 사용할 수 있습니다. NodeTypeDescriptionPlacementProperties
reverseProxyEndpointPort 역방향 프록시에서 사용하는 엔드포인트입니다. int
vmInstanceCount 노드 형식의 노드 수입니다. 이 개수는 해당 VirtualMachineScaleSet 리소스의 용량 속성과 일치해야 합니다. int(필수)

제약 조건:
최소값 = 1
최대값 = 2147483647

EndpointRangeDescription

Name Description
endPort 포트 범위의 끝 포트 int(필수)
startPort 포트 범위의 시작 포트 int(필수)

NodeTypeDescriptionCapacities

Name Description
{사용자 지정 속성} 문자열

NodeTypeDescriptionPlacementProperties

Name Description
{사용자 지정 속성} 문자열

ClusterUpgradePolicy

Name Description
deltaHealthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 델타 상태 정책입니다. ClusterUpgradeDeltaHealthPolicy
forceRestart true이면 코드 버전이 변경되지 않은 경우에도 업그레이드 중에 프로세스가 강제로 다시 시작됩니다(업그레이드는 구성 또는 데이터만 변경됨). bool
healthCheckRetryTimeout 업그레이드가 롤백되기 전에 애플리케이션 또는 클러스터가 비정상일 때 상태 평가를 다시 시도하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckStableDuration 업그레이드가 다음 업그레이드 도메인으로 진행되기 전에 애플리케이션 또는 클러스터가 정상 상태로 유지되어야 하는 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckWaitDuration 상태 검사를 수행하기 전에 업그레이드 도메인을 완료한 후 대기할 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 상태 정책입니다. ClusterHealthPolicy (필수)
upgradeDomainTimeout 업그레이드가 롤백되기 전에 각 업그레이드 도메인을 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeReplicaSetCheckTimeout 예기치 않은 문제가 있을 때 업그레이드 도메인의 처리를 차단하고 가용성의 손실을 방지하는 최대 시간입니다. 이 시간 제한이 만료되면 가용성 손실 문제와 상관없이 업그레이드 도메인 처리가 진행됩니다. 시간 제한은 각 업그레이드 도메인의 시작 시 다시 설정됩니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeTimeout 업그레이드가 롤백되기 전에 전체 업그레이드를 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)

ClusterUpgradeDeltaHealthPolicy

Name Description
applicationDeltaHealthPolicies 클러스터를 업그레이드할 때 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 델타 상태 정책 맵을 정의합니다. ApplicationDeltaHealthPolicyMap
maxPercentDeltaUnhealthyApplications 클러스터 업그레이드 중에 허용되는 최대 애플리케이션 상태 저하 비율입니다.
델타는 업그레이드 시작 시 애플리케이션의 상태와 상태 평가 시 애플리케이션 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다. 시스템 서비스는 이에 포함되지 않습니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 노드 상태와 상태 평가 시 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUpgradeDomainDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 업그레이드 도메인 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 업그레이드 도메인 노드 상태와 상태 평가 시 업그레이드 도메인 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 완료된 업그레이드 도메인에 대한 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100

ApplicationDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ApplicationDeltaHealthPolicy

ApplicationDeltaHealthPolicy

Name Description
defaultServiceTypeDeltaHealthPolicy 기본적으로 클러스터를 업그레이드할 때 서비스 유형의 상태를 평가하는 데 사용되는 델타 상태 정책입니다. ServiceTypeDeltaHealthPolicy
serviceTypeDeltaHealthPolicies 서비스 유형 유형 이름당 델타 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeDeltaHealthPolicyMap

ServiceTypeDeltaHealthPolicy

Name Description
maxPercentDeltaUnhealthyServices 클러스터 업그레이드 중에 허용되는 최대 서비스 상태 저하 비율입니다.
델타는 업그레이드 시작 시 서비스 상태와 상태 평가 시 서비스 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ServiceTypeDeltaHealthPolicy

ClusterHealthPolicy

Name Description
applicationHealthPolicies 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 상태 정책 맵을 정의합니다. ApplicationHealthPolicyMap
maxPercentUnhealthyApplications 오류를 보고하기 전에 허용되는 비정상 애플리케이션의 최대 백분율입니다. 예를 들어 애플리케이션의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 애플리케이션의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 애플리케이션이 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 값은 클러스터에 있는 애플리케이션 인스턴스의 총 수를 비정상 애플리케이션의 수로 나눠 계산합니다. 이 때 ApplicationTypeHealthPolicyMap에 포함된 애플리케이션 형식의 애플리케이션은 제외합니다.
계산값은 적은 수의 애플리케이션에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.
int

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUnhealthyNodes 오류를 보고하기 전에 허용되는 비정상 노드의 최대 백분율입니다. 예를 들어 노드의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 노드의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 노드가 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 백분율은 클러스터에 있는 노드 총 수를 비정상 노드 수로 나눠 계산합니다.
계산값은 적은 수의 노드에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.

대형 클러스터에는 항상 복구를 위해 다운되거나 중단되는 노드가 있으므로 이를 감안하여 이 비율을 구성해야 합니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ApplicationHealthPolicyMap

Name Description
{사용자 지정 속성} ApplicationHealthPolicy

ApplicationHealthPolicy

Name Description
defaultServiceTypeHealthPolicy 기본적으로 서비스 유형의 상태를 평가하는 데 사용되는 상태 정책입니다. ServiceTypeHealthPolicy
serviceTypeHealthPolicies 서비스 유형 이름당 서비스 유형 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeHealthPolicyMap

ServiceTypeHealthPolicy

Name Description
maxPercentUnhealthyServices 애플리케이션이 오류로 간주되기 전에 비정상으로 허용되는 서비스의 최대 비율입니다. int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeHealthPolicyMap

Name Description
{사용자 지정 속성} ServiceTypeHealthPolicy

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플릿 Description
5 노드 Ubuntu Service Fabric 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 Standard_D2_V2 크기 VMSS에서 Ubuntu를 실행하는 보안 5 노드 Service Fabric 클러스터를 배포할 수 있습니다.
5 노드 보안 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 windows Server 2019 Datacenter를 실행하는 보안 5노드 Service Fabric 클러스터를 Standard_D2_v2 크기 VMSS에 배포할 수 있습니다.
NSG를 사용하도록 설정된 3 Nodetype 보안 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 windows server 2016 Data center를 실행하는 보안 3 nodetype Service Fabric 클러스터를 Standard_D2 크기 VM에 배포할 수 있습니다. 이 템플릿을 사용하면 네트워크 보안 그룹을 사용하여 인바운드 및 아웃바운드 네트워크 트래픽을 로 제어할 수 있습니다.

ARM 템플릿 리소스 정의

클러스터 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그를 참조하세요.

리소스 형식

Microsoft.ServiceFabric/clusters 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.

{
  "type": "Microsoft.ServiceFabric/clusters",
  "apiVersion": "2019-11-01-preview",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "addOnFeatures": [ "string" ],
    "applicationTypeVersionsCleanupPolicy": {
      "maxUnusedVersionsToKeep": "int"
    },
    "azureActiveDirectory": {
      "clientApplication": "string",
      "clusterApplication": "string",
      "tenantId": "string"
    },
    "certificate": {
      "thumbprint": "string",
      "thumbprintSecondary": "string",
      "x509StoreName": "string"
    },
    "certificateCommonNames": {
      "commonNames": [
        {
          "certificateCommonName": "string",
          "certificateIssuerThumbprint": "string"
        }
      ],
      "x509StoreName": "string"
    },
    "clientCertificateCommonNames": [
      {
        "certificateCommonName": "string",
        "certificateIssuerThumbprint": "string",
        "isAdmin": "bool"
      }
    ],
    "clientCertificateThumbprints": [
      {
        "certificateThumbprint": "string",
        "isAdmin": "bool"
      }
    ],
    "clusterCodeVersion": "string",
    "diagnosticsStorageAccountConfig": {
      "blobEndpoint": "string",
      "protectedAccountKeyName": "string",
      "protectedAccountKeyName2": "string",
      "queueEndpoint": "string",
      "storageAccountName": "string",
      "tableEndpoint": "string"
    },
    "eventStoreServiceEnabled": "bool",
    "fabricSettings": [
      {
        "name": "string",
        "parameters": [
          {
            "name": "string",
            "value": "string"
          }
        ]
      }
    ],
    "managementEndpoint": "string",
    "nodeTypes": [
      {
        "applicationPorts": {
          "endPort": "int",
          "startPort": "int"
        },
        "capacities": {
          "{customized property}": "string"
        },
        "clientConnectionEndpointPort": "int",
        "durabilityLevel": "string",
        "ephemeralPorts": {
          "endPort": "int",
          "startPort": "int"
        },
        "httpGatewayEndpointPort": "int",
        "isPrimary": "bool",
        "name": "string",
        "placementProperties": {
          "{customized property}": "string"
        },
        "reverseProxyEndpointPort": "int",
        "vmInstanceCount": "int"
      }
    ],
    "reliabilityLevel": "string",
    "reverseProxyCertificate": {
      "thumbprint": "string",
      "thumbprintSecondary": "string",
      "x509StoreName": "string"
    },
    "reverseProxyCertificateCommonNames": {
      "commonNames": [
        {
          "certificateCommonName": "string",
          "certificateIssuerThumbprint": "string"
        }
      ],
      "x509StoreName": "string"
    },
    "upgradeDescription": {
      "deltaHealthPolicy": {
        "applicationDeltaHealthPolicies": {
          "{customized property}": {
            "defaultServiceTypeDeltaHealthPolicy": {
              "maxPercentDeltaUnhealthyServices": "int"
            },
            "serviceTypeDeltaHealthPolicies": {
              "{customized property}": {
                "maxPercentDeltaUnhealthyServices": "int"
              }
            }
          }
        },
        "maxPercentDeltaUnhealthyApplications": "int",
        "maxPercentDeltaUnhealthyNodes": "int",
        "maxPercentUpgradeDomainDeltaUnhealthyNodes": "int"
      },
      "forceRestart": "bool",
      "healthCheckRetryTimeout": "string",
      "healthCheckStableDuration": "string",
      "healthCheckWaitDuration": "string",
      "healthPolicy": {
        "applicationHealthPolicies": {
          "{customized property}": {
            "defaultServiceTypeHealthPolicy": {
              "maxPercentUnhealthyServices": "int"
            },
            "serviceTypeHealthPolicies": {
              "{customized property}": {
                "maxPercentUnhealthyServices": "int"
              }
            }
          }
        },
        "maxPercentUnhealthyApplications": "int",
        "maxPercentUnhealthyNodes": "int"
      },
      "upgradeDomainTimeout": "string",
      "upgradeReplicaSetCheckTimeout": "string",
      "upgradeTimeout": "string"
    },
    "upgradeMode": "string",
    "vmImage": "string"
  }
}

속성 값

clusters

Name Description
형식 리소스 종류 'Microsoft.ServiceFabric/clusters'
apiVersion 리소스 api 버전 '2019-11-01-preview'
name 리소스 이름 string(필수)

문자 제한: 4-23

유효한 문자:
소문자, 숫자 및 하이픈

소문자로 시작합니다. 소문자 또는 숫자로 끝납니다.
위치 Azure 리소스 위치. string(필수)
tags Azure 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿의 태그를 참조하세요.
properties 클러스터 리소스 속성 ClusterProperties

ClusterProperties

Name Description
addOnFeatures 클러스터에서 사용하도록 설정할 추가 기능 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'BackupRestoreService'
'DnsService'
'RepairManager'
'ResourceMonitorService'
applicationTypeVersionsCleanupPolicy 사용되지 않는 버전을 클린 데 사용되는 정책입니다. ApplicationTypeVersionsCleanupPolicy
azureActiveDirectory 클러스터의 AAD 인증 설정입니다. AzureActiveDirectory
인증서(certificate) 클러스터 보안에 사용할 인증서입니다. 제공된 인증서는 클러스터 내 노드 간 보안, 클러스터 관리 엔드포인트용 SSL 인증서 및 기본 관리 클라이언트에 사용됩니다. CertificateDescription
certificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
clientCertificateCommonNames 클러스터를 관리할 수 있는 일반 이름으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateCommonName[]
clientCertificateThumbprints 클러스터를 관리할 수 있는 지문으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateThumbprint[]
clusterCodeVersion 클러스터의 Service Fabric 런타임 버전입니다. 이 속성은 upgradeMode 가 '수동'으로 설정된 경우에만 사용자를 설정할 수 있습니다. 새 클러스터에 사용 가능한 Service Fabric 버전 목록을 얻으려면 ClusterVersion API를 사용합니다. 기존 클러스터에 사용 가능한 버전 목록을 얻으려면 availableClusterVersions를 사용합니다. string
diagnosticsStorageAccountConfig Service Fabric 진단 로그를 저장하기 위한 스토리지 계정 정보입니다. DiagnosticsStorageAccountConfig
eventStoreServiceEnabled 이벤트 저장소 서비스를 사용할 수 있는지를 나타냅니다. bool
fabricSettings 클러스터를 구성할 사용자 지정 패브릭 설정 목록입니다. SettingsSectionDescription[]
managementEndpoint 클러스터의 http 관리 엔드포인트입니다. string(필수)
nodeTypes 클러스터의 노드 형식 목록입니다. NodeTypeDescription[](필수)
reliabilityLevel 안정성 수준은 시스템 서비스의 복제본(replica) 집합 크기를 설정합니다. ReliabilityLevel에 대해 알아봅니다.

- 없음 - 대상 복제본(replica) 집합 수가 1인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Bronze - 대상 복제본(replica) 집합 수가 3인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Silver - 대상 복제본(replica) 집합 수가 5인 시스템 서비스를 실행합니다.
- 골드 - 대상 복제본(replica) 집합 수가 7인 시스템 서비스를 실행합니다.
- Platinum - 대상 복제본(replica) 집합 수가 9인 시스템 서비스를 실행합니다.
'Bronze'
'골드'
'None'
'플래티넘'
'Silver'
reverseProxyCertificate 역방향 프록시에서 사용하는 서버 인증서입니다. CertificateDescription
reverseProxyCertificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
upgradeDescription 클러스터를 업그레이드할 때 사용할 정책입니다. ClusterUpgradePolicy
upgradeMode 새 Service Fabric 런타임 버전을 사용할 수 있는 경우 클러스터의 업그레이드 모드입니다.

- 자동 - 클러스터가 사용 가능한 즉시 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드됩니다.
- 수동 - 클러스터가 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드되지 않습니다. 클러스터 리소스에서 clusterCodeVersion 속성을 설정하여 클러스터를 업그레이드합니다.
'Automatic'
'수동'
vmImage VM 이미지 VMSS가 구성되었습니다. Windows 또는 Linux와 같은 제네릭 이름을 사용할 수 있습니다. string

ApplicationTypeVersionsCleanupPolicy

Name Description
maxUnusedVersionsToKeep 유지할 애플리케이션 유형당 사용되지 않는 버전 수입니다. int(필수)

제약 조건:
최소값 = 0

AzureActiveDirectory

Name Description
clientApplication Azure Active Directory 클라이언트 애플리케이션 ID입니다. 문자열
clusterApplication Azure Active Directory 클러스터 애플리케이션 ID입니다. 문자열
tenantId Azure Active Directory 테넌트 ID입니다. 문자열

CertificateDescription

Name Description
thumbprint 기본 인증서의 지문입니다. string(필수)
thumbprintSecondary 보조 인증서의 지문입니다. string
x509StoreName 로컬 인증서 저장소 위치입니다. 'AddressBook'
'AuthRoot'
'CertificateAuthority'
'허용되지 않음'
'My'
'Root'
'TrustedPeople'
'TrustedPublisher'

ServerCertificateCommonNames

Name Description
commonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록입니다. ServerCertificateCommonName[]
x509StoreName 로컬 인증서 저장소 위치입니다. 'AddressBook'
'AuthRoot'
'CertificateAuthority'
'허용되지 않음'
'My'
'Root'
'TrustedPeople'
'TrustedPublisher'

ServerCertificateCommonName

Name Description
certificateCommonName 서버 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 서버 인증서의 발급자 지문입니다. string(필수)

ClientCertificateCommonName

Name Description
certificateCommonName 클라이언트 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 클라이언트 인증서의 발급자 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업을 수행할 수 있습니다. bool(필수)

ClientCertificateThumbprint

Name Description
certificateThumbprint 클라이언트 인증서의 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업을 수행할 수 있습니다. bool(필수)

DiagnosticsStorageAccountConfig

Name Description
blobEndpoint Azure Storage 계정의 Blob 엔드포인트입니다. string(필수)
protectedAccountKeyName 보호된 진단 스토리지 키 이름입니다. string(필수)
protectedAccountKeyName2 보조 보호된 진단 스토리지 키 이름입니다. 스토리지 계정 키 중 하나가 회전되면 클러스터는 다른 키를 사용하는 것으로 대체됩니다. string
queueEndpoint Azure Storage 계정의 큐 엔드포인트입니다. string(필수)
storageAccountName Azure 스토리지 계정 이름. string(필수)
tableEndpoint Azure Storage 계정의 테이블 엔드포인트입니다. string(필수)

SettingsSectionDescription

Name Description
name 패브릭 설정의 섹션 이름입니다. string(필수)
매개 변수 섹션의 매개 변수 컬렉션입니다. SettingsParameterDescription[] (필수)

SettingsParameterDescription

Name Description
name 패브릭 설정의 매개 변수 이름입니다. string(필수)
패브릭 설정의 매개 변수 값입니다. string(필수)

NodeTypeDescription

Name Description
applicationPorts 클러스터가 Service Fabric 애플리케이션에 포트를 할당한 포트 범위입니다. EndpointRangeDescription
capacities 노드 유형의 노드에 적용된 용량 태그인 클러스터 리소스 관리자는 이러한 태그를 사용하여 노드에 얼마나 많은 리소스가 있는지 이해합니다. NodeTypeDescriptionCapacities
clientConnectionEndpointPort TCP 클러스터 관리 엔드포인트 포트입니다. int(필수)
durabilityLevel 노드 유형의 내구성 수준입니다. DurabilityLevel에 대해 알아봅니다.

- 브론즈 - 권한이 없습니다. 이것이 기본값입니다.
- Silver - 인프라 작업은 UD당 10분 동안 일시 중지할 수 있습니다.
- 골드 - 인프라 작업은 UD당 2시간 동안 일시 중지할 수 있습니다. 골드 지속성은 D15_V2, G5 등과 같이 전체 노드 VM sku에서만 사용되도록 설정할 수 있습니다.
'브론즈'
'골드'
'실버'
ephemeralPorts 이 노드 형식의 노드를 구성해야 하는 임시 포트의 범위입니다. EndpointRangeDescription
httpGatewayEndpointPort HTTP 클러스터 관리 엔드포인트 포트입니다. int(필수)
isPrimary 시스템 서비스가 실행될 노드 유형입니다. 하나의 노드 형식만 기본으로 표시되어야 합니다. 기본 노드 유형은 기존 클러스터에 대해 삭제하거나 변경할 수 없습니다. bool(필수)
name 노드 형식의 이름입니다. string(필수)
placementProperties 노드 형식의 노드에 적용된 배치 태그로, 특정 서비스(워크로드)가 실행되어야 하는 위치를 나타내는 데 사용할 수 있습니다. NodeTypeDescriptionPlacementProperties
reverseProxyEndpointPort 역방향 프록시에서 사용하는 엔드포인트입니다. int
vmInstanceCount 노드 형식의 노드 수입니다. 이 개수는 해당 VirtualMachineScaleSet 리소스의 용량 속성과 일치해야 합니다. int(필수)

제약 조건:
최소값 = 1
최대값 = 2147483647

EndpointRangeDescription

Name Description
endPort 포트 범위의 끝 포트 int(필수)
startPort 포트 범위의 시작 포트 int(필수)

NodeTypeDescriptionCapacities

Name Description
{사용자 지정 속성} 문자열

NodeTypeDescriptionPlacementProperties

Name Description
{사용자 지정 속성} 문자열

ClusterUpgradePolicy

Name Description
deltaHealthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 델타 상태 정책입니다. ClusterUpgradeDeltaHealthPolicy
forceRestart true이면 코드 버전이 변경되지 않은 경우에도 업그레이드 중에 프로세스가 강제로 다시 시작됩니다(업그레이드는 구성 또는 데이터만 변경됨). bool
healthCheckRetryTimeout 업그레이드가 롤백되기 전에 애플리케이션 또는 클러스터가 비정상일 때 상태 평가를 다시 시도하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckStableDuration 업그레이드가 다음 업그레이드 도메인으로 진행되기 전에 애플리케이션 또는 클러스터가 정상 상태로 유지되어야 하는 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckWaitDuration 상태 검사를 수행하기 전에 업그레이드 도메인을 완료한 후 대기할 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 상태 정책입니다. ClusterHealthPolicy (필수)
upgradeDomainTimeout 업그레이드가 롤백되기 전에 각 업그레이드 도메인을 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeReplicaSetCheckTimeout 예기치 않은 문제가 있을 때 업그레이드 도메인의 처리를 차단하고 가용성의 손실을 방지하는 최대 시간입니다. 이 시간 제한이 만료되면 가용성 손실 문제와 상관없이 업그레이드 도메인 처리가 진행됩니다. 시간 제한은 각 업그레이드 도메인의 시작 시 다시 설정됩니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeTimeout 업그레이드가 롤백되기 전에 전체 업그레이드를 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)

ClusterUpgradeDeltaHealthPolicy

Name Description
applicationDeltaHealthPolicies 클러스터를 업그레이드할 때 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 델타 상태 정책 맵을 정의합니다. ApplicationDeltaHealthPolicyMap
maxPercentDeltaUnhealthyApplications 클러스터 업그레이드 중에 허용되는 최대 애플리케이션 상태 저하 비율입니다.
델타는 업그레이드 시작 시 애플리케이션의 상태와 상태 평가 시 애플리케이션 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다. 시스템 서비스는 이에 포함되지 않습니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 노드 상태와 상태 평가 시 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUpgradeDomainDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 업그레이드 도메인 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 업그레이드 도메인 노드 상태와 상태 평가 시 업그레이드 도메인 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 완료된 업그레이드 도메인에 대한 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100

ApplicationDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ApplicationDeltaHealthPolicy

ApplicationDeltaHealthPolicy

Name Description
defaultServiceTypeDeltaHealthPolicy 기본적으로 클러스터를 업그레이드할 때 서비스 유형의 상태를 평가하는 데 사용되는 델타 상태 정책입니다. ServiceTypeDeltaHealthPolicy
serviceTypeDeltaHealthPolicies 서비스 유형 유형 이름당 델타 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeDeltaHealthPolicyMap

ServiceTypeDeltaHealthPolicy

Name Description
maxPercentDeltaUnhealthyServices 클러스터 업그레이드 중에 허용되는 최대 서비스 상태 저하 비율입니다.
델타는 업그레이드 시작 시 서비스 상태와 상태 평가 시 서비스 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ServiceTypeDeltaHealthPolicy

ClusterHealthPolicy

Name Description
applicationHealthPolicies 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 상태 정책 맵을 정의합니다. ApplicationHealthPolicyMap
maxPercentUnhealthyApplications 오류를 보고하기 전에 허용되는 비정상 애플리케이션의 최대 백분율입니다. 예를 들어 애플리케이션의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 애플리케이션의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 애플리케이션이 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 값은 클러스터에 있는 애플리케이션 인스턴스의 총 수를 비정상 애플리케이션의 수로 나눠 계산합니다. 이 때 ApplicationTypeHealthPolicyMap에 포함된 애플리케이션 형식의 애플리케이션은 제외합니다.
계산값은 적은 수의 애플리케이션에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.
int

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUnhealthyNodes 오류를 보고하기 전에 허용되는 비정상 노드의 최대 백분율입니다. 예를 들어 노드의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 노드의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 노드가 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 백분율은 클러스터에 있는 노드 총 수를 비정상 노드 수로 나눠 계산합니다.
계산값은 적은 수의 노드에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.

대형 클러스터에는 항상 복구를 위해 다운되거나 중단되는 노드가 있으므로 이를 감안하여 이 비율을 구성해야 합니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ApplicationHealthPolicyMap

Name Description
{사용자 지정 속성} ApplicationHealthPolicy

ApplicationHealthPolicy

Name Description
defaultServiceTypeHealthPolicy 기본적으로 서비스 유형의 상태를 평가하는 데 사용되는 상태 정책입니다. ServiceTypeHealthPolicy
serviceTypeHealthPolicies 서비스 유형 이름당 서비스 유형 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeHealthPolicyMap

ServiceTypeHealthPolicy

Name Description
maxPercentUnhealthyServices 애플리케이션이 오류로 간주되기 전에 비정상으로 허용되는 서비스의 최대 비율입니다. int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeHealthPolicyMap

Name Description
{사용자 지정 속성} ServiceTypeHealthPolicy

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플릿 Description
5 노드 Ubuntu Service Fabric 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 Standard_D2_V2 크기 VMSS에서 Ubuntu를 실행하는 보안 5 노드 Service Fabric 클러스터를 배포할 수 있습니다.
5 노드 보안 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 windows Server 2019 Datacenter를 실행하는 보안 5노드 Service Fabric 클러스터를 Standard_D2_v2 크기 VMSS에 배포할 수 있습니다.
NSG를 사용하도록 설정된 3 Nodetype 보안 클러스터 배포

Azure에 배포
이 템플릿을 사용하면 windows server 2016 Data center를 실행하는 보안 3 nodetype Service Fabric 클러스터를 Standard_D2 크기 VM에 배포할 수 있습니다. 이 템플릿을 사용하면 네트워크 보안 그룹을 사용하여 인바운드 및 아웃바운드 네트워크 트래픽을 로 제어할 수 있습니다.

Terraform(AzAPI 공급자) 리소스 정의

클러스터 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

  • 리소스 그룹

각 API 버전에서 변경된 속성 목록은 변경 로그를 참조하세요.

리소스 형식

Microsoft.ServiceFabric/clusters 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ServiceFabric/clusters@2019-11-01-preview"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      addOnFeatures = [
        "string"
      ]
      applicationTypeVersionsCleanupPolicy = {
        maxUnusedVersionsToKeep = int
      }
      azureActiveDirectory = {
        clientApplication = "string"
        clusterApplication = "string"
        tenantId = "string"
      }
      certificate = {
        thumbprint = "string"
        thumbprintSecondary = "string"
        x509StoreName = "string"
      }
      certificateCommonNames = {
        commonNames = [
          {
            certificateCommonName = "string"
            certificateIssuerThumbprint = "string"
          }
        ]
        x509StoreName = "string"
      }
      clientCertificateCommonNames = [
        {
          certificateCommonName = "string"
          certificateIssuerThumbprint = "string"
          isAdmin = bool
        }
      ]
      clientCertificateThumbprints = [
        {
          certificateThumbprint = "string"
          isAdmin = bool
        }
      ]
      clusterCodeVersion = "string"
      diagnosticsStorageAccountConfig = {
        blobEndpoint = "string"
        protectedAccountKeyName = "string"
        protectedAccountKeyName2 = "string"
        queueEndpoint = "string"
        storageAccountName = "string"
        tableEndpoint = "string"
      }
      eventStoreServiceEnabled = bool
      fabricSettings = [
        {
          name = "string"
          parameters = [
            {
              name = "string"
              value = "string"
            }
          ]
        }
      ]
      managementEndpoint = "string"
      nodeTypes = [
        {
          applicationPorts = {
            endPort = int
            startPort = int
          }
          capacities = {
            {customized property} = "string"
          }
          clientConnectionEndpointPort = int
          durabilityLevel = "string"
          ephemeralPorts = {
            endPort = int
            startPort = int
          }
          httpGatewayEndpointPort = int
          isPrimary = bool
          name = "string"
          placementProperties = {
            {customized property} = "string"
          }
          reverseProxyEndpointPort = int
          vmInstanceCount = int
        }
      ]
      reliabilityLevel = "string"
      reverseProxyCertificate = {
        thumbprint = "string"
        thumbprintSecondary = "string"
        x509StoreName = "string"
      }
      reverseProxyCertificateCommonNames = {
        commonNames = [
          {
            certificateCommonName = "string"
            certificateIssuerThumbprint = "string"
          }
        ]
        x509StoreName = "string"
      }
      upgradeDescription = {
        deltaHealthPolicy = {
          applicationDeltaHealthPolicies = {
            {customized property} = {
              defaultServiceTypeDeltaHealthPolicy = {
                maxPercentDeltaUnhealthyServices = int
              }
              serviceTypeDeltaHealthPolicies = {
                {customized property} = {
                  maxPercentDeltaUnhealthyServices = int
                }
              }
            }
          }
          maxPercentDeltaUnhealthyApplications = int
          maxPercentDeltaUnhealthyNodes = int
          maxPercentUpgradeDomainDeltaUnhealthyNodes = int
        }
        forceRestart = bool
        healthCheckRetryTimeout = "string"
        healthCheckStableDuration = "string"
        healthCheckWaitDuration = "string"
        healthPolicy = {
          applicationHealthPolicies = {
            {customized property} = {
              defaultServiceTypeHealthPolicy = {
                maxPercentUnhealthyServices = int
              }
              serviceTypeHealthPolicies = {
                {customized property} = {
                  maxPercentUnhealthyServices = int
                }
              }
            }
          }
          maxPercentUnhealthyApplications = int
          maxPercentUnhealthyNodes = int
        }
        upgradeDomainTimeout = "string"
        upgradeReplicaSetCheckTimeout = "string"
        upgradeTimeout = "string"
      }
      upgradeMode = "string"
      vmImage = "string"
    }
  })
}

속성 값

clusters

Name Description
형식 리소스 종류 "Microsoft.ServiceFabric/clusters@2019-11-01-preview"
name 리소스 이름 string(필수)

문자 제한: 4-23

유효한 문자:
소문자, 숫자 및 하이픈

소문자로 시작합니다. 소문자 또는 숫자로 끝납니다.
위치 Azure 리소스 위치. string(필수)
parent_id 리소스 그룹에 배포하려면 해당 리소스 그룹의 ID를 사용합니다. string(필수)
tags Azure 리소스 태그. 태그 이름 및 값의 사전입니다.
properties 클러스터 리소스 속성 ClusterProperties

ClusterProperties

Name Description
addOnFeatures 클러스터에서 사용하도록 설정할 추가 기능 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
"BackupRestoreService"
"DnsService"
"RepairManager"
"ResourceMonitorService"
applicationTypeVersionsCleanupPolicy 사용되지 않는 버전을 클린 데 사용되는 정책입니다. ApplicationTypeVersionsCleanupPolicy
azureActiveDirectory 클러스터의 AAD 인증 설정입니다. AzureActiveDirectory
인증서(certificate) 클러스터 보안에 사용할 인증서입니다. 제공된 인증서는 클러스터 내 노드 간 보안, 클러스터 관리 엔드포인트용 SSL 인증서 및 기본 관리 클라이언트에 사용됩니다. CertificateDescription
certificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
clientCertificateCommonNames 클러스터를 관리할 수 있는 일반 이름으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateCommonName[]
clientCertificateThumbprints 클러스터를 관리할 수 있는 지문으로 참조되는 클라이언트 인증서 목록입니다. ClientCertificateThumbprint[]
clusterCodeVersion 클러스터의 Service Fabric 런타임 버전입니다. 이 속성은 upgradeMode 가 '수동'으로 설정된 경우에만 사용자를 설정할 수 있습니다. 새 클러스터에 사용 가능한 Service Fabric 버전 목록을 얻으려면 ClusterVersion API를 사용합니다. 기존 클러스터에 사용 가능한 버전 목록을 얻으려면 availableClusterVersions를 사용합니다. string
diagnosticsStorageAccountConfig Service Fabric 진단 로그를 저장하기 위한 스토리지 계정 정보입니다. DiagnosticsStorageAccountConfig
eventStoreServiceEnabled 이벤트 저장소 서비스를 사용할 수 있는지를 나타냅니다. bool
fabricSettings 클러스터를 구성할 사용자 지정 패브릭 설정 목록입니다. SettingsSectionDescription[]
managementEndpoint 클러스터의 http 관리 엔드포인트입니다. string(필수)
nodeTypes 클러스터의 노드 형식 목록입니다. NodeTypeDescription[](필수)
reliabilityLevel 안정성 수준은 시스템 서비스의 복제본(replica) 집합 크기를 설정합니다. ReliabilityLevel에 대해 알아봅니다.

- 없음 - 대상 복제본(replica) 집합 수가 1인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Bronze - 대상 복제본(replica) 집합 수가 3인 시스템 서비스를 실행합니다. 테스트 클러스터에만 사용해야 합니다.
- Silver - 대상 복제본(replica) 집합 수가 5인 시스템 서비스를 실행합니다.
- 골드 - 대상 복제본(replica) 집합 수가 7인 시스템 서비스를 실행합니다.
- Platinum - 대상 복제본(replica) 집합 수가 9인 시스템 서비스를 실행합니다.
"Bronze"
"골드"
“None”
"Platinum"
"실버"
reverseProxyCertificate 역방향 프록시에서 사용하는 서버 인증서입니다. CertificateDescription
reverseProxyCertificateCommonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록을 설명합니다. ServerCertificateCommonNames
upgradeDescription 클러스터를 업그레이드할 때 사용할 정책입니다. ClusterUpgradePolicy
upgradeMode 새 Service Fabric 런타임 버전을 사용할 수 있는 경우 클러스터의 업그레이드 모드입니다.

- 자동 - 클러스터가 사용 가능한 즉시 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드됩니다.
- 수동 - 클러스터가 최신 Service Fabric 런타임 버전으로 자동으로 업그레이드되지 않습니다. 클러스터 리소스에서 clusterCodeVersion 속성을 설정하여 클러스터를 업그레이드합니다.
"자동"
"수동"
vmImage VM 이미지 VMSS가 구성되었습니다. Windows 또는 Linux와 같은 제네릭 이름을 사용할 수 있습니다. string

ApplicationTypeVersionsCleanupPolicy

Name Description
maxUnusedVersionsToKeep 유지할 애플리케이션 유형당 사용되지 않는 버전 수입니다. int(필수)

제약 조건:
최소값 = 0

AzureActiveDirectory

Name Description
clientApplication Azure Active Directory 클라이언트 애플리케이션 ID입니다. 문자열
clusterApplication Azure Active Directory 클러스터 애플리케이션 ID입니다. 문자열
tenantId Azure Active Directory 테넌트 ID입니다. 문자열

CertificateDescription

Name Description
thumbprint 기본 인증서의 지문입니다. string(필수)
thumbprintSecondary 보조 인증서의 지문입니다. string
x509StoreName 로컬 인증서 저장소 위치입니다. "AddressBook"
"AuthRoot"
"CertificateAuthority"
"허용되지 않음"
"My"
"Root"
"TrustedPeople"
"TrustedPublisher"

ServerCertificateCommonNames

Name Description
commonNames 클러스터를 보호하는 데 사용되는 일반 이름으로 참조되는 서버 인증서 목록입니다. ServerCertificateCommonName[]
x509StoreName 로컬 인증서 저장소 위치입니다. "AddressBook"
"AuthRoot"
"CertificateAuthority"
"허용되지 않음"
"My"
"Root"
"TrustedPeople"
"TrustedPublisher"

ServerCertificateCommonName

Name Description
certificateCommonName 서버 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 서버 인증서의 발급자 지문입니다. string(필수)

ClientCertificateCommonName

Name Description
certificateCommonName 클라이언트 인증서의 일반 이름입니다. string(필수)
certificateIssuerThumbprint 클라이언트 인증서의 발급자 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업을 수행할 수 있습니다. bool(필수)

ClientCertificateThumbprint

Name Description
certificateThumbprint 클라이언트 인증서의 지문입니다. string(필수)
isAdmin 클라이언트 인증서에 클러스터에 대한 관리자 액세스 권한이 있는지를 나타냅니다. 관리자가 아닌 클라이언트는 클러스터에서 읽기 전용 작업을 수행할 수 있습니다. bool(필수)

DiagnosticsStorageAccountConfig

Name Description
blobEndpoint Azure Storage 계정의 Blob 엔드포인트입니다. string(필수)
protectedAccountKeyName 보호된 진단 스토리지 키 이름입니다. string(필수)
protectedAccountKeyName2 보조 보호된 진단 스토리지 키 이름입니다. 스토리지 계정 키 중 하나가 회전되면 클러스터는 다른 키를 사용하는 것으로 대체됩니다. string
queueEndpoint Azure Storage 계정의 큐 엔드포인트입니다. string(필수)
storageAccountName Azure 스토리지 계정 이름. string(필수)
tableEndpoint Azure Storage 계정의 테이블 엔드포인트입니다. string(필수)

SettingsSectionDescription

Name Description
name 패브릭 설정의 섹션 이름입니다. string(필수)
매개 변수 섹션의 매개 변수 컬렉션입니다. SettingsParameterDescription[] (필수)

SettingsParameterDescription

Name Description
name 패브릭 설정의 매개 변수 이름입니다. string(필수)
패브릭 설정의 매개 변수 값입니다. string(필수)

NodeTypeDescription

Name Description
applicationPorts 클러스터가 Service Fabric 애플리케이션에 포트를 할당한 포트 범위입니다. EndpointRangeDescription
capacities 노드 유형의 노드에 적용되는 용량 태그인 클러스터 리소스 관리자는 이러한 태그를 사용하여 노드에 있는 리소스의 양을 이해합니다. NodeTypeDescriptionCapacities
clientConnectionEndpointPort TCP 클러스터 관리 엔드포인트 포트입니다. int(필수)
durabilityLevel 노드 형식의 내구성 수준입니다. DurabilityLevel에 대해 알아봅니다.

- 브론즈 - 권한이 없습니다. 이것이 기본값입니다.
- Silver - 인프라 작업은 UD당 10분 동안 일시 중지할 수 있습니다.
- 골드 - 인프라 작업은 UD당 2시간 동안 일시 중지할 수 있습니다. 골드 지속성은 D15_V2, G5 등과 같이 전체 노드 VM sku에서만 사용되도록 설정할 수 있습니다.
"Bronze"
"골드"
"실버"
ephemeralPorts 이 노드 형식의 노드를 구성해야 하는 임시 포트의 범위입니다. EndpointRangeDescription
httpGatewayEndpointPort HTTP 클러스터 관리 엔드포인트 포트입니다. int(필수)
isPrimary 시스템 서비스가 실행될 노드 유형입니다. 하나의 노드 형식만 기본으로 표시되어야 합니다. 기존 클러스터에 대해 기본 노드 유형을 삭제하거나 변경할 수 없습니다. bool(필수)
name 노드 형식의 이름입니다. string(필수)
placementProperties 노드 형식의 노드에 적용되는 배치 태그로, 특정 서비스(워크로드)가 실행되어야 하는 위치를 나타내는 데 사용할 수 있습니다. NodeTypeDescriptionPlacementProperties
reverseProxyEndpointPort 역방향 프록시에서 사용하는 엔드포인트입니다. int
vmInstanceCount 노드 형식의 노드 수입니다. 이 개수는 해당 VirtualMachineScaleSet 리소스의 용량 속성과 일치해야 합니다. int(필수)

제약 조건:
최소값 = 1
최대값 = 2147483647

EndpointRangeDescription

Name Description
endPort 포트 범위의 끝 포트 int(필수)
startPort 포트 범위의 시작 포트 int(필수)

NodeTypeDescriptionCapacities

Name Description
{customized property} 문자열

NodeTypeDescriptionPlacementProperties

Name Description
{customized property} 문자열

ClusterUpgradePolicy

Name Description
deltaHealthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 델타 상태 정책입니다. ClusterUpgradeDeltaHealthPolicy
forceRestart true이면 코드 버전이 변경되지 않은 경우에도 업그레이드 중에 프로세스가 강제로 다시 시작됩니다(업그레이드는 구성 또는 데이터만 변경됨). bool
healthCheckRetryTimeout 업그레이드가 롤백되기 전에 애플리케이션 또는 클러스터가 비정상일 때 상태 평가를 다시 시도하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckStableDuration 업그레이드가 다음 업그레이드 도메인으로 진행되기 전에 애플리케이션 또는 클러스터가 정상 상태로 유지되어야 하는 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthCheckWaitDuration 상태 검사를 수행하기 전에 업그레이드 도메인을 완료한 후 대기할 시간입니다. 기간은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
healthPolicy 클러스터를 업그레이드할 때 사용되는 클러스터 상태 정책입니다. ClusterHealthPolicy (필수)
upgradeDomainTimeout 업그레이드가 롤백되기 전에 각 업그레이드 도메인을 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeReplicaSetCheckTimeout 예기치 않은 문제가 있을 때 업그레이드 도메인의 처리를 차단하고 가용성의 손실을 방지하는 최대 시간입니다. 이 시간 제한이 만료되면 가용성 손실 문제와 상관없이 업그레이드 도메인 처리가 진행됩니다. 시간 제한은 각 업그레이드 도메인의 시작 시 다시 설정됩니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)
upgradeTimeout 업그레이드가 롤백되기 전에 전체 업그레이드를 완료해야 하는 시간입니다. 시간 제한은 hh:mm:ss 또는 d.hh:mm:ss.ms 형식일 수 있습니다. string(필수)

ClusterUpgradeDeltaHealthPolicy

Name Description
applicationDeltaHealthPolicies 클러스터를 업그레이드할 때 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 델타 상태 정책 맵을 정의합니다. ApplicationDeltaHealthPolicyMap
maxPercentDeltaUnhealthyApplications 클러스터 업그레이드 중에 허용되는 최대 애플리케이션 상태 저하 비율입니다.
델타는 업그레이드 시작 시 애플리케이션의 상태와 상태 평가 시 애플리케이션 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다. 시스템 서비스는 이에 포함되지 않습니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 노드 상태와 상태 평가 시 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUpgradeDomainDeltaUnhealthyNodes 클러스터를 업그레이드하는 동안 허용되는 업그레이드 도메인 노드 상태 저하의 최대 비율입니다.
델타는 업그레이드 시작 시 업그레이드 도메인 노드 상태와 상태 평가 시 업그레이드 도메인 노드 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 완료된 업그레이드 도메인에 대한 검사가 수행됩니다.
int(필수)

제약 조건:
최소값 = 0
최대값 = 100

ApplicationDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ApplicationDeltaHealthPolicy

ApplicationDeltaHealthPolicy

Name Description
defaultServiceTypeDeltaHealthPolicy 기본적으로 클러스터를 업그레이드할 때 서비스 유형의 상태를 평가하는 데 사용되는 델타 상태 정책입니다. ServiceTypeDeltaHealthPolicy
serviceTypeDeltaHealthPolicies 서비스 유형 유형 이름당 델타 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeDeltaHealthPolicyMap

ServiceTypeDeltaHealthPolicy

Name Description
maxPercentDeltaUnhealthyServices 클러스터 업그레이드 중에 허용되는 최대 서비스 상태 저하 비율입니다.
델타는 업그레이드 시작 시 서비스 상태와 상태 평가 시 서비스 상태 간에 측정됩니다.
클러스터의 전역 상태를 허용 한도 내로 유지하기 위해 업그레이드 도메인 업그레이드가 완료될 때마다 검사가 수행됩니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeDeltaHealthPolicyMap

Name Description
{사용자 지정 속성} ServiceTypeDeltaHealthPolicy

ClusterHealthPolicy

Name Description
applicationHealthPolicies 애플리케이션 또는 해당 자식 엔터티 중 하나의 상태를 평가하는 데 사용되는 애플리케이션 상태 정책 맵을 정의합니다. ApplicationHealthPolicyMap
maxPercentUnhealthyApplications 오류를 보고하기 전에 허용되는 비정상 애플리케이션의 최대 백분율입니다. 예를 들어 애플리케이션의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 애플리케이션의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 애플리케이션이 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 값은 클러스터에 있는 애플리케이션 인스턴스의 총 수를 비정상 애플리케이션의 수로 나눠 계산합니다. 이 때 ApplicationTypeHealthPolicyMap에 포함된 애플리케이션 형식의 애플리케이션은 제외합니다.
계산값은 적은 수의 애플리케이션에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.
int

제약 조건:
최소값 = 0
최대값 = 100
maxPercentUnhealthyNodes 오류를 보고하기 전에 허용되는 비정상 노드의 최대 백분율입니다. 예를 들어 노드의 10%를 비정상 상태가 되도록 허용하면 값은 10입니다.

비율은 클러스터에서 오류로 처리하기 전에 비정상 상태로 있을 수 있는 노드의 최대 허용 비율을 나타냅니다.
비율은 지켜지나 비정상 노드가 적어도 하나 있다면 상태는 경고로 평가됩니다.
이 백분율은 클러스터에 있는 노드 총 수를 비정상 노드 수로 나눠 계산합니다.
계산값은 적은 수의 노드에서 오류 하나를 허용할 수 있도록 반올림됩니다. 기본 비율은 0입니다.

대형 클러스터에는 항상 복구를 위해 다운되거나 중단되는 노드가 있으므로 이를 감안하여 이 비율을 구성해야 합니다.
int

제약 조건:
최소값 = 0
최대값 = 100

ApplicationHealthPolicyMap

Name Description
{customized property} ApplicationHealthPolicy

ApplicationHealthPolicy

Name Description
defaultServiceTypeHealthPolicy 기본적으로 서비스 유형의 상태를 평가하는 데 사용되는 상태 정책입니다. ServiceTypeHealthPolicy
serviceTypeHealthPolicies 서비스 유형 이름당 서비스 유형 상태 정책이 있는 맵입니다. 맵은 기본적으로 비어 있습니다. ServiceTypeHealthPolicyMap

ServiceTypeHealthPolicy

Name Description
maxPercentUnhealthyServices 애플리케이션이 오류로 간주되기 전에 비정상 상태가 될 수 있는 서비스의 최대 백분율입니다. int

제약 조건:
최소값 = 0
최대값 = 100

ServiceTypeHealthPolicyMap

Name Description
{customized property} ServiceTypeHealthPolicy