Azure에서 VM 및 확장 집합에 대한 자동 확장 업그레이드

자동 확장 업그레이드는 Azure VM 및 Azure Virtual Machine Scale Sets에 사용할 수 있습니다. VM 또는 확장 집합에서 자동 확장 업그레이드를 사용하도록 설정하면 확장 게시자가 해당 확장에 대한 새 버전을 릴리스할 때마다 확장이 자동으로 업그레이드됩니다.

자동 확장 업그레이드의 기능은 다음과 같습니다.

  • Azure VM 및 Azure Virtual Machine Scale Sets에 지원됩니다.
  • 업그레이드는 가용성 우선 배포 모델에 적용됩니다.
  • Virtual Machine Scale Set의 경우 확장 집합 가상 머신의 20% 이하가 단일 일괄 처리로 업그레이드됩니다. 최소 일괄 처리 크기는 하나의 가상 머신입니다.
  • 모든 VM 크기와 Windows 및 Linux 확장 모두에서 작동합니다.
  • 자동 업그레이드는 언제든지 취소할 수 있습니다.
  • 자동 확장 업그레이드는 모든 크기의 Virtual Machine Scale Sets에서 사용하도록 설정할 수 있습니다.
  • 지원되는 각 확장은 개별적으로 등록되며, 자동으로 업그레이드할 확장을 선택할 수 있습니다.
  • 모든 퍼블릭 클라우드 지역에서 지원됩니다.

자동 확장 업그레이드는 어떻게 작동하나요?

확장 업그레이드 프로세스는 확장 게시자가 게시할 때 VM의 기존 확장 버전을 동일한 확장의 새 버전으로 바꿉니다. VM의 상태는 새 확장이 설치된 후 모니터링됩니다. 업그레이드 완료 후 5분 이내에 VM이 정상 상태가 아닌 경우 확장 버전은 이전 버전으로 롤백됩니다.

실패한 확장 업데이트가 자동으로 다시 시도됩니다. 재시도는 사용자 개입 없이 며칠마다 자동으로 시도됩니다.

가용성 우선 업데이트

플랫폼 오케스트레이션된 업데이트에 대한 가용성 우선 모델은 Azure의 가용성 구성이 여러 가용성 수준에서 준수되도록 합니다.

업데이트를 진행 중인 가상 머신 그룹의 경우 Azure 플랫폼은 업데이트를 오케스트레이션합니다.

지역 간:

  • 업데이트는 Azure 전체 배포 오류를 방지하기 위해 단계적으로 Azure 전역으로 이동합니다.
  • '단계'에는 지역이 하나 이상 존재할 수 있으며, 업데이트는 이전 단계의 적격 VM의 업데이트가 성공했을 때만 다른 단계로 이동합니다.
  • 지역 쌍을 이루는 지역은 동시에 업데이트되지 않으며 동일한 지역 단계에 있을 수 없습니다.
  • 업데이트 성공 여부는 VM 사후 업데이트의 상태를 추적하여 결정합니다. VM 상태는 VM에 대한 플랫폼 상태 표시기를 통해 추적됩니다. Virtual Machine Scale Sets의 경우 확장 집합에 적용되는 경우 VM 상태는 애플리케이션 상태 프로브 또는 애플리케이션 상태 확장을 통해 추적됩니다.

지역 내에서:

  • 서로 다른 가용성 영역에 있는 VM은 동일한 업데이트로 동시에 업데이트되지 않습니다.
  • 가용성 집합에 속하지 않는 단일 VM은 구독의 모든 VM에 대한 동시 업데이트를 방지하기 위해 최상의 노력으로 일괄 처리됩니다.

'집합' 내에서:

  • 공통 가용성 집합 또는 확장 집합의 모든 VM은 동시에 업데이트되지 않습니다.
  • 공통 가용성 집합의 VM은 업데이트 도메인 경계 내에서 업데이트되며, 여러 업데이트 도메인의 VM은 동시에 업데이트되지 않습니다.
  • 일반적인 가상 머신 확장 집합의 VM은 일괄 처리로 그룹화되고 Update Do기본 경계 내에서 업데이트됩니다.

Virtual Machine Scale Sets에 대한 업그레이드 프로세스

  1. 업그레이드 프로세스가 시작되기 전에 오케스트레이터는 전체 확장 집합에 있는 VM의 20% 이상이 비정상 상태인지 확인합니다(어떤 이유로든).

  2. 업그레이드 오케스트레이터는 업그레이드할 VM 인스턴스의 일괄 처리를 식별합니다. 업그레이드 일괄 처리는 가상 머신의 최소 일괄 처리 크기에 따라 총 VM 수의 최대 20%를 가질 수 있습니다.

  3. 구성된 애플리케이션 상태 프로브 또는 Application Health 확장이 있는 확장 집합의 경우 업그레이드는 다음 일괄 처리를 업그레이드하기 전에 VM이 정상 상태가 될 때까지 최대 5분(또는 정의된 상태 프로브 구성)을 기다립니다. 업그레이드 후 VM이 상태를 복구하지 않으면 기본적으로 VM의 이전 확장 버전이 다시 설치됩니다.

  4. 업그레이드 오케스트레이터는 업그레이드 후 비정상 상태가 되는 VM의 백분율도 추적합니다. 업그레이드 프로세스 중에 업그레이드된 인스턴스의 20% 이상이 비정상 상태가 되면 업그레이드가 중지됩니다.

확장 집합의 모든 인스턴스가 업그레이드될 때까지 위의 프로세스가 계속됩니다.

확장 집합 업그레이드 오케스트레이터는 모든 일괄 처리를 업그레이드하기 전에 전체 확장 집합 상태에 대한 검사. 일괄 업그레이드 중에 확장 집합 가상 머신의 상태에 영향을 미칠 수 있는 다른 동시 계획 또는 계획되지 않은 기본 테넌트 작업이 있을 수 있습니다. 확장 집합 인스턴스의 20% 이상이 비정상 상태가 될 경우 현재 배치가 끝나면 확장 집합 업그레이드가 중지됩니다.

지원되는 확장

자동 확장 업그레이드는 다음 확장을 지원합니다(추가 확장이 주기적으로 추가됩니다).

자동 확장 업그레이드 사용 설정

확장에 대해 자동 확장 업그레이드를 사용하도록 설정하려면 enableAutomaticUpgrade 속성이 true로 설정되고 모든 확장 정의에 개별적으로 추가되었는지 확인해야 합니다.

Virtual Machines용 REST API

Azure VM에서 확장(이 예제에서는 종속성 에이전트 확장)에 대해 자동 확장 업그레이드를 사용하도록 설정하려면 다음 호출을 사용합니다.

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{    
    "name": "extensionName",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "<location>",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true, 
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5"
        }
}

Virtual Machine Scale Sets용 REST API

확장 집합 모델에 확장을 추가하려면 다음 호출을 사용합니다.

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
   "location": "<location>",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [
            	{
                "name": "<extensionName>",
            	  "properties": {
             		    "autoUpgradeMinorVersion": true,
             		    "enableAutomaticUpgrade": true,
              	    "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
              	    "type": "DependencyAgentWindows",
              	    "typeHandlerVersion": "9.5"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Virtual Machines용 Azure PowerShell

Set-AzVMExtension cmdlet 사용:

Set-AzVMExtension -ExtensionName "Microsoft.Azure.Monitoring.DependencyAgent" `
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
    -ExtensionType "DependencyAgentWindows" `
    -TypeHandlerVersion 9.5 `
    -Location WestUS `
    -EnableAutomaticUpgrade $true

Virtual Machine Scale Sets용 Azure PowerShell

Add-AzVmssExtension cmdlet을 사용하여 확장 집합 모델에 확장을 추가합니다.

Add-AzVmssExtension -VirtualMachineScaleSet $vmss
    -Name "Microsoft.Azure.Monitoring.DependencyAgent" `
    -Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
    -Type "DependencyAgentWindows" `
    -TypeHandlerVersion 9.5 `
    -EnableAutomaticUpgrade $true

확장을 추가한 후 Update-AzVmss를 사용하여 확장 집합을 업데이트합니다 .

Virtual Machines용 Azure CLI

az vm extension set cmdlet을 사용합니다.

az vm extension set \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --name DependencyAgentLinux \
    --publisher Microsoft.Azure.Monitoring.DependencyAgent \
    --version 9.5 \
    --enable-auto-upgrade true

Virtual Machine Scale Sets용 Azure CLI

az vmss extension set cmdlet을 사용하여 확장 집합 모델에 확장을 추가합니다.

az vmss extension set \
    --resource-group myResourceGroup \
    --vmss-name myVMSS \
    --name DependencyAgentLinux \
    --publisher Microsoft.Azure.Monitoring.DependencyAgent \
    --version 9.5 \
    --enable-auto-upgrade true

Virtual Machines용 ARM 템플릿

다음 예제에서는 Azure Resource Manager를 사용하여 Virtual Machine에서 확장에 대한 자동 확장 업그레이드(이 예제의 종속성 에이전트 확장)를 설정하는 방법을 설명합니다.

{
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[resourceGroup().location]",
    "name": "<extensionName>",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
    ],
    "properties": {
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5",
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true,
        "settings": {
            "enableAMA": "true"
        }
    }
}

Virtual Machine Scale Sets용 ARM 템플릿

다음 예제를 사용하여 확장 집합 모델 내의 확장에서 자동 확장 업그레이드를 설정합니다.

{
   "type": "Microsoft.Compute/virtualMachineScaleSets",
   "apiVersion": "2023-09-01",
   "name": "[variables('vmScaleSetName')]",
   "location": "[resourceGroup().location]",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [{
                     "name": "<extensionName>",
                     "properties": {
                          "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
                          "type": "DependencyAgentWindows",
                          "typeHandlerVersion": "9.5",
                          "autoUpgradeMinorVersion": true,
                          "enableAutomaticUpgrade": true,
                     }
                }]
    	    }
    	}
    }
}

여러 확장이 있는 확장 업그레이드

VM 또는 Virtual Machine Scale Set에는 자동 확장 업그레이드를 사용하도록 설정된 여러 확장이 있을 수 있습니다. 동일한 VM 또는 확장 집합에는 자동 확장 업그레이드를 사용하도록 설정하지 않고도 다른 확장이 있을 수 있습니다.

가상 머신에 여러 확장 업그레이드를 사용할 수 있는 경우 업그레이드가 함께 일괄 처리될 수 있지만 각 확장 업그레이드는 가상 머신에 개별적으로 적용됩니다. 한 확장의 오류는 업그레이드할 수 있는 다른 확장에 영향을 주지 않습니다. 예를 들어 두 개의 확장이 업그레이드를 위해 예약되고 첫 번째 확장 업그레이드가 실패하는 경우 두 번째 확장은 계속 업그레이드됩니다.

VM 또는 가상 머신 확장 집합에 확장 시퀀싱으로 구성된 여러 확장이 있는 경우에도 자동 확장 업그레이드를 적용할 수 있습니다. 확장 시퀀싱은 VM의 처음 배포에 적용되며 확장의 향후 확장 업그레이드는 독립적으로 적용됩니다.

다음 단계