다음을 통해 공유


Service Fabric 관리형 클러스터의 MaintenanceControl 소개

Service Fabric 관리형 클러스터에는 모든 클러스터를 업데이트된 상태로 유지하는 데 필요한 여러 백그라운드 작업이 있으므로 보안 및 안정성을 보장합니다. 이러한 작업은 중요하지만 백그라운드에서 실행하면 서비스 복제본이 다른 노드로 이동할 수 있습니다. 유지 관리 작업이 업무량이 가장 많은 시간에 실행되는 경우 이러한 장애 조치(failover)로 인해 원치 않는 불필요한 중단이 발생합니다. Service Fabric 관리형 클러스터에서 MaintenanceControl을 지원하면 고객은 필요에 따라 SFMC 클러스터 리소스에 대한 되풀이(매일, 매주, 매월) 및 사용자 지정 유지 관리 기간을 정의할 수 있습니다. 모든 백그라운드 유지 관리 작업은 이 유지 관리 기간 동안에만 실행할 수 있습니다. MaintenanceControl은 다음 백그라운드 작업에 적용할 수 있습니다.

  • 자동 OS 업그레이드
  • 자동 확장 업그레이드
  • 자동 SF 런타임 버전 업데이트
  • 자동 클러스터 인증서 업데이트

요구 사항:

  • 유지 관리 기간 구성은 Service Fabric 관리형 클러스터 리소스에 대해서만 정의해야 합니다.
  • 지원되는 최소 기간은 5시간입니다.

MaintenanceControl이 SFMC에서 작동하는 방식

  • 고객은 유지 관리 RP를 사용하여 유지 관리 구성 리소스를 만들어 유지 관리 기간에 대한 일정 및 되풀이 규칙을 포함하는 유지 관리 구성을 정의해야 합니다. 자세한 정보
  • 이 유지 관리 구성을 사용하여 SFMC 클러스터 리소스에 유지 관리 구성을 할당하기 위한 할당 리소스가 만들어집니다.
  • 할당 리소스를 만들 때 유지 관리 RP는 SFMC 클러스터에서 링크 및 유지 관리 제어를 사용하도록 설정되었음을 ServiceFabric RP에 알립니다. 유지 관리 기간 외에는 모든 백그라운드 유지 관리 작업이 차단됩니다.
  • 유지 관리 구성의 일정에 따라 유지 관리 기간이 활성화될 때마다 유지 관리 RP는 해당 SFMC 클러스터에서 유지 관리 기간을 활성화하는 ServiceFabric RP에 알립니다. 이 기간 동안 모든 백그라운드 작업을 실행할 수 있습니다.

배포 예제

다음은 유지 관리 제어를 사용하여 클러스터를 설정하는 단계별 프로세스입니다. 필요한 모든 리소스가 포함된 이 샘플을 다운로드합니다. 표준 SKU Service Fabric 관리형 클러스터 샘플

  1. 지역에서 리소스 그룹을 만듭니다.

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. 클러스터 리소스를 만듭니다.

    다음 명령을 실행하여 클러스터 리소스를 배포합니다.

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. 다음 유지 관리 구성을 사용하여 클러스터에서 유지 관리 제어를 구성합니다.

이 유지 관리 구성은 2023년 5월 30일부터 매일 오후 10시 PST에 5시간 동안 업데이트가 수행되는 일정을 정의합니다. 유지 관리 구성에 대한 자세한 내용

    "resources": [
        {
            "type": "Microsoft.Maintenance/maintenanceConfigurations",
            "apiVersion": "2022-07-01-preview",
            "name": "mc1",
            "location": "[parameters('location')]",
            "properties": {
                "maintenanceScope": "Resource",
                "extensionProperties": {
                   "maintenanceSubScope": "SFMC"
                },
                "maintenanceWindow": {
                    "startDateTime": "2023-05-30 22:00",
                    "duration": "05:00",
                    "timeZone": "Pacific Standard Time",
                    "expirationDateTime": null,
                    "recurEvery": "1Day"
                }
            }
        }

참고 항목

구성에 설명된 대로 SFMC 클러스터 리소스에 대한 유지 관리 구성에는 maintenanceScope: 'Resource' 및 maintenanceSubScope: 'SFMC'가 있어야 합니다.

유지 관리 구성을 만든 후에는 할당 리소스를 사용하여 SFMC 클러스터에 연결해야 합니다. 할당에 대한 자세한 내용:

    "resources": [
        { 
           "type": "Microsoft.Resources/deployments",
            "apiVersion": "2022-09-01",
            "name": "ConfigurationAssignmentsName",
            "dependsOn": [
                "[concat('Microsoft.Maintenance/maintenanceConfigurations/', 'mc1')]",
                "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
            ],
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                    "resources": [
                        {
                            "apiVersion": "2022-07-01-preview",
                            "type": "Microsoft.Maintenance/configurationAssignments",
                            "name": "mc1Assignment",
                            "location": "[parameters('location')]",
                            "scope": "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]",
                            "tags": {},
                            "properties": {
                                "maintenanceConfigurationId": "/subscriptions/<subId>/resourcegroups/<rgName>/providers/microsoft.maintenance/maintenanceconfigurations/mc1"
                            }
                        }
                    ]
                }
            },
            "subscriptionId": "<subId>",
            "resourceGroup": "<rgName>"
        }

참고 항목

  • 클러스터에서 유지 관리 제어를 사용하지 않도록 설정하려면 클러스터에 대한 할당을 삭제합니다.
  • 유지 관리 리소스와 SFMC 클러스터 리소스는 동일한 지역에 만들어야 합니다.

참고 항목

알려진 문제:

  • Service Fabric 관리형 클러스터에는 하나 이상의 유지 관리 구성 리소스가 할당되어야 합니다. 둘 이상의 유지 관리 구성 할당을 방지하기 위한 작업이 진행 중입니다. 그때까지 사용자는 동일한 클러스터에 대해 여러 구성 할당을 수행하지 않아야 합니다.
  • 유지 관리 구성 리소스만 삭제해도 MaintenanceControl이 비활성화되지는 않습니다. MaintenanceControl을 사용하지 않도록 설정하려면 유지 관리 구성 리소스를 삭제하기 전에 먼저 클러스터에 대한 configAssignment를 구체적으로 삭제해야 합니다.
  • SFMC를 사용한 유지 관리 제어를 위한 Azure Portal 환경 작업이 현재 진행 중이므로 고객은 포털에만 의존해서는 안 됩니다. SFMC 클러스터가 Virtual Machine 리소스로 표시되고 포털에서 SFMC 클러스터를 검색/할당할 수 없는 것과 같은 유지 관리 리소스와 관련된 문제가 알려져 있습니다.