Azure Virtual Machine Scale Sets 자동 OS 업그레이드
참고 항목
이 문서에 나열된 대부분의 단계는 균일한 오케스트레이션 모드를 사용하는 Virtual Machine Scale Sets에 적용됩니다. 새 워크로드에 유연한 오케스트레이션을 사용하는 것이 좋습니다. 자세한 내용은 Azure의 Virtual Machine Scale Sets에 대한 오케스트레이션 모드를 참조하세요.
확장 집합에서 자동 OS 이미지 업그레이드를 사용하도록 설정하면 확장 집합의 모든 인스턴스에 대해 OS 디스크를 안전하게 자동으로 업그레이드하여 업데이트를 쉽게 관리할 수 있습니다.
자동 OS 업그레이드의 특징은 다음과 같습니다.
- 구성이 완료되면 이미지 게시자가 게시한 최신 OS 이미지가 사용자 개입 없이 확장 집합에 자동으로 적용됩니다.
- 게시자가 새 이미지를 게시할 때마다 인스턴스의 일괄 처리를 롤링 방식으로 업그레이드합니다.
- 애플리케이션 상태 프로브 및 애플리케이션 상태 확장과 통합됩니다.
- 모든 가상 머신 크기 및 Azure Compute 갤러리를 통한 사용자 지정 이미지를 포함한 Windows 및 Linux 이미지 모두에 대해 작동합니다.
- 언제든지 자동 업그레이드를 옵트아웃할 수 있습니다(OS 업그레이드를 수동으로 시작 가능).
- 가상 머신의 OS 디스크는 최신 이미지 버전으로 만든 새 OS 디스크로 대체됩니다. 구성된 확장 및 사용자 지정 데이터 스크립트가 실행되고 지속형 데이터 디스크는 유지됩니다.
- 확장 시퀀스가 지원됩니다.
- 모든 크기의 확장 집합에서 사용하도록 설정할 수 있습니다.
참고 항목
자동 OS 이미지 업그레이드를 사용하도록 설정하기 전에 이 설명서의 요구 사항 섹션을 확인하세요.
자동 OS 이미지 업그레이드의 작동 방식
업그레이드는 가상 머신의 OS 디스크를 이미지 버전을 사용하여 만든 새 디스크로 바꿔서 작동합니다. 구성된 모든 확장 및 사용자 지정 데이터 스크립트가 OS 디스크에서 실행되고 데이터 디스크는 유지됩니다. 애플리케이션 가동 중지 시간을 최소화하기 위해 업그레이드는 배치 단위로 수행되며, 확장 집합에서 업그레이드되는 비율은 항상 20% 이하로 유지됩니다.
Azure Load Balancer 애플리케이션 상태 프로브 또는 애플리케이션 상태 확장을 통합하여 업그레이드 후 애플리케이션의 상태를 추적해야 합니다. 이를 통해 플랫폼은 가상 머신 상태의 유효성을 검사하여 안전한 방식으로 업데이트가 적용되는지 확인할 수 있습니다. 애플리케이션 하트비트를 통합하여 업그레이드 성공을 확인하는 것이 좋습니다.
가용성 우선 업데이트
아래 설명된 플랫폼 오케스트레이션 업데이트에 대한 가용성 우선 모델은 Azure의 가용성 구성이 여러 가용성 수준에서 적용되게 합니다.
지역 간:
- Azure 전역에서의 배포 실패를 방지하기 위해 업데이트는 Azure 전역에서 단계적으로 이동합니다.
- '단계'에는 하나 이상의 지역이 있을 수 있으며, 이전 단계의 적격 가상 머신이 성공적으로 업데이트된 경우에만 업데이트가 단계 간에 이동합니다.
- 지역 쌍을 이루는 지역은 동시에 업데이트되지 않으며 동일한 지역 단계에 있을 수 없습니다.
- 업데이트의 성공은 업데이트 후 가상 머신의 상태를 추적하여 측정됩니다.
지역 내에서:
- 다른 가용성 영역 가상 머신은 동일한 업데이트와 동시에 업데이트되지 않습니다.
'집합' 내에서:
- 공통 확장 집합의 모든 가상 머신은 동시에 업데이트되지 않습니다.
- 일반적인 Virtual Machine Scale Set의 가상 머신은 아래에 설명된 대로 일괄 처리로 그룹화되고 업데이트 도메인 경계 내에서 업데이트됩니다.
플랫폼 오케스트레이션 업데이트 프로세스는 매월 지원되는 OS 플랫폼 이미지 업그레이드를 롤아웃하기 위해 수행됩니다. Azure Compute Gallery를 통한 사용자 지정 이미지의 경우 새 이미지가 게시되고 해당 확장 집합의 지역에 복제될 때만 특정 Azure 지역에 대해 이미지 업그레이드가 시작됩니다.
확장 집합에서 가상 머신 업그레이드
확장 집합의 지역은 플랫폼 이미지에 대한 가용성 우선 프로세스를 통해 또는 Share Image Gallery에 대한 새 사용자 지정 이미지 버전을 복제하여 이미지 업그레이드를 받을 수 있습니다. 그런 다음, 이미지 업그레이드는 다음과 같이 일괄 처리된 방식으로 개별 확장 집합에 적용됩니다.
- 업그레이드 프로세스를 시작하기 전에 오케스트레이터는 전체 확장 집합에 있는 인스턴스의 20% 이상이 비정상 상태인지 확인합니다(어떤 이유로든).
- 업그레이드 오케스트레이터는 업그레이드할 가상 머신의 일괄 처리를 식별하며, 하나의 일괄 처리는 하나의 가상 머신의 최소 일괄 처리 크기에 따라 총 인스턴스 수의 최대 20%를 갖습니다. 최소 확장 집합 크기 요구 사항은 없으며 인스턴스 수가 5개 이하인 확장 집합에는 업그레이드 일괄 처리당 1개의 가상 머신(최소 일괄 처리 크기)이 있습니다.
- 선택한 업그레이드 일괄 처리에 있는 모든 가상 머신의 OS 디스크는 이미지에서 만든 새 OS 디스크로 바뀝니다. 확장 집합 모델의 지정된 모든 확장 및 구성이 업그레이드된 인스턴스에 적용됩니다.
- 구성된 애플리케이션 상태 프로브 또는 애플리케이션 상태 확장이 있는 확장 집합의 경우 업그레이드 작업은 인스턴스가 정상이 될 때까지 최대 5분 동안 기다렸다가 다음 배치 업그레이드를 진행합니다. 업그레이드 후 5분 안에 인스턴스가 상태를 복구하지 않으면 기본적으로 인스턴스의 이전 OS 디스크가 복원됩니다.
- 업그레이드 오케스트레이터는 업그레이드 후 비정상 상태가 되는 인스턴스의 백분율도 추적합니다. 업그레이드 프로세스 중에 업그레이드된 인스턴스의 20% 이상이 비정상 상태가 되면 업그레이드가 중지됩니다.
- 확장 집합의 모든 인스턴스가 업그레이드될 때까지 위의 프로세스가 계속됩니다.
확장 집합 OS 업그레이드 오케스트레이터는 전체 확장 집합 상태를 확인한 후에 모든 배치를 업그레이드합니다. 배치 업그레이드 중에 확장 집합 인스턴스의 상태에 영향을 줄 수 있는, 계획되었거나 계획되지 않은 다른 동시 유지 관리 활동이 있을 수 있습니다. 확장 집합 인스턴스의 20% 이상이 비정상 상태가 될 경우 현재 배치가 끝나면 확장 집합 업그레이드가 중지됩니다.
롤링 업그레이드와 관련된 기본 설정을 수정하려면 Azure의 롤링 업그레이드 정책을 검토합니다.
참고 항목
자동 OS 업그레이드는 확장 집합의 참조 이미지 Sku를 업그레이드하지 않습니다. Sku를 변경하려면(예를 들어 Ubuntu 18.04-LTS에서 20.04-LTS로 변경) 원하는 이미지 Sku를 사용하여 확장 집합 모델을 직접 업데이트해야 합니다. 기존 확장 집합에 대해 이미지 게시자 및 제품을 변경할 수 없습니다.
OS 이미지 업그레이드와 이미지로 다시 설치
OS 이미지 업그레이드와 이미지 이미지 모두 확장 집합 내에서 가상 머신을 업데이트하는 데 사용되는 방법이지만 서로 다른 용도로 사용되며 고유한 영향을 줍니다.
OS 이미지 업그레이드에는 확장 집합에서 새 인스턴스를 만드는 데 사용되는 기본 운영 체제 이미지를 업데이트하는 작업이 포함됩니다. OS 이미지 업그레이드를 수행할 때 Azure는 업데이트된 OS 이미지를 사용하여 새 가상 머신을 만들고 확장 집합의 이전 가상 머신을 새 가상 머신으로 점진적으로 바꿉니다. 이 프로세스는 높은 가용성을 보장하기 위해 보통 단계적으로 수행됩니다. OS 이미지 업그레이드는 확장 집합에서 가상 머신의 기본 OS에 업데이트 또는 변경 내용을 적용하는 방해가 아닌 방법입니다. 기존 가상 머신은 새 인스턴스로 교체될 때까지 영향을 받지 않습니다.
확장 집합에서 가상 머신을 이미지로 다시 설치하는 작업은 보다 즉각적이고 중단적인 작업입니다. 가상 머신을 이미지로 다시 설치하도록 선택하면 Azure에서 선택한 가상 머신을 중지하고 이미지 다시 설치 작업을 수행한 다음 동일한 OS 이미지를 사용하여 가상 머신을 다시 시작합니다. 이렇게 하면 해당 특정 가상 머신에 OS가 효과적으로 다시 설치됩니다. 이미지 다시 설치는 일반적으로 해당 인스턴스와 관련된 문제로 인해 특정 가상 머신의 문제를 해결하거나 다시 설정해야 하는 경우에 사용됩니다.
주요 차이점:
- OS 이미지 업그레이드는 시간을 두고 전체 가상 머신 확장 집합에 대한 OS 이미지를 업데이트하여 실행 중인 워크로드에 미치는 영향을 최소화하는 점진적이고 중단 없는 프로세스입니다.
- 이미지 다시 설치는 선택한 가상 머신에만 영향을 미치고 일시적으로 중지하고 OS를 다시 설치하는 보다 즉각적이고 파괴적인 작업입니다.
각 방식을 사용하는 경우:
- 높은 가용성을 유지하면서 전체 확장 집합에 대한 OS 이미지를 업데이트하려면 OS 이미지 업그레이드를 사용합니다.
- 가상 머신 확장 집합 내에서 특정 가상 머신의 문제를 해결하거나 다시 설정해야 하는 경우 이미지 다시 설치를 사용합니다.
가상 머신 확장 집합에서 실행되는 애플리케이션 및 서비스에 대한 중단을 최소화하려면 구체적인 요구 사항에 따라 적절한 방법을 신중하게 계획하고 선택하는 것이 중요합니다.
지원되는 OS 이미지
현재는 특정 OS 플랫폼 이미지만 지원됩니다. 확장 집합에서 Azure Compute Gallery를 통해 사용자 지정 이미지를 사용하는 경우 사용자 지정 이미지가 지원됩니다.
현재 지원되는 플랫폼 SKU는 다음과 같습니다(주기적으로 더 추가될 예정).
게시자 | OS 제품 | SKU |
---|---|---|
Canonical | UbuntuServer | 18.04-LTS |
Canonical | UbuntuServer | 18_04-LTS-Gen2 |
Canonical | 0001-com-ubuntu-server-focal | 20_04-LTS |
Canonical | 0001-com-ubuntu-server-focal | 20_04-LTS-Gen2 |
Canonical | 0001-com-ubuntu-server-jammy | 22_04-LTS |
Canonical | 0001-com-ubuntu-server-jammy | 22_04-LTS-Gen2 |
MicrosoftCblMariner | Cbl-Mariner | cbl-mariner-1 |
MicrosoftCblMariner | Cbl-Mariner | 1-Gen2 |
MicrosoftCblMariner | Cbl-Mariner | cbl-mariner-2 |
MicrosoftCblMariner | Cbl-Mariner | cbl-mariner-2-Gen2 |
MicrosoftSqlServer | SQL2017-ws2019 | 엔터프라이즈 |
MicrosoftWindowsServer | WindowsServer | 2012-R2-Datacenter |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter-gensecond |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter-gs |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter-smalldisk |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter-with-Containers |
MicrosoftWindowsServer | WindowsServer | 2016-Datacenter-with-containers-gs |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-Core |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-Core-with-Containers |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-gensecond |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-gs |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-smalldisk |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-with-Containers |
MicrosoftWindowsServer | WindowsServer | 2019-Datacenter-with-Containers-gs |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-smalldisk |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-smalldisk-g2 |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-core |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-core-smalldisk |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-g2 |
MicrosoftWindowsServer | WindowsServer | Datacenter-core-20h2-with-containers-smalldisk-gs |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-azure-edition |
MicrosoftWindowsServer | WindowsServer | 2022-Datacenter-azure-edition-smalldisk |
Mirantis | Windows_with_Mirantis_Container_Runtime_2019 | win_2019_mcr_23_0 |
Mirantis | Windows_with_Mirantis_Container_Runtime_2019 | win_2019_mcr_23_0_gen2 |
자동 OS 이미지 업그레이드 구성을 위한 요구 사항
- 이미지의 버전 속성을 최신으로 설정해야 합니다.
- Service Fabric 이외의 확장 집합에는 애플리케이션 상태 프로브 또는 애플리케이션 상태 확장을 사용해야 합니다. Service Fabric 요구 사항은 Service Fabric 요구 사항을 참조하세요.
- Compute API 버전 2018-10-01 이상을 사용합니다.
- 확장 집합 모델에 지정된 외부 리소스가 사용 가능하고 업데이트되었는지 확인합니다. 예를 들어 가상 머신 확장 속성에서 페이로드를 부트스트래핑하기 위한 SAS URI, 스토리지 계정의 페이로드, 모델의 비밀에 대한 참조 등이 있습니다.
- Windows 가상 머신을 사용하는 확장 집합의 경우 Compute API 버전 2019-03-01부터 virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates는 확장 집합 모델 정의에서 false로 설정되어야 합니다. enableAutomaticUpdates 속성은 “Windows 업데이트”가 OS 디스크를 교체하지 않고 운영 체제 패치를 적용하는 VM 내 패치를 사용합니다. automaticOSUpgradePolicy.enableAutomaticOSUpgrade를 true로 설정하여 확장 집합에서 자동 OS 이미지 업그레이드를 사용 설정하면 Windows 업데이트를 통한 추가 패치 프로세스가 필요하지 않습니다.
- 패치 오케스트레이션 모드는 확장 집합 모델 정의에서 설정
AutomaticByPlatform
해서는 안 됩니다. 확장 집합에서 자동 OS 이미지 업그레이드를 사용하도록 설정하면 플랫폼 오케스트레이션 패치 프로세스가 필요하지 않습니다.
참고 항목
이미지로 다시 설치하거나 업그레이드하여 OS 디스크를 바꾼 후 연결된 데이터 디스크에 드라이브 문자가 다시 할당될 수 있습니다. 연결된 디스크에 대해 동일한 드라이브 문자를 보존하려면 사용자 지정 부팅 스크립트를 사용하는 것이 좋습니다.
Service Fabric 요구 사항
Service Fabric을 사용하는 경우 다음 조건이 충족되는지 확인합니다.
- Service Fabric 내구성 수준은 Silver 또는 Gold입니다. Service Fabric 내구성이 Bronze인 경우 상태 비저장 전용 노드 형식만 자동 OS 이미지 업그레이드를 지원합니다.
- 확장 집합 모델 정의의 Service Fabric 확장에는 TypeHandlerVersion 1.1 이상이 있어야 합니다.
- 내구성 수준은 확장 집합 모델 정의의 Service Fabric 클러스터와 Service Fabric 확장에서 동일해야 합니다.
- Silver 또는 Gold 내구성에는 더 많은 상태 프로브 또는 애플리케이션 상태 확장이 필요하지 않습니다. 상태 비저장 전용 노드 형식의 Bronze 내구성에는 추가 상태 프로브가 필요합니다.
- virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates 속성은 확장 집합 모델 정의에서 false로 설정되어야 합니다. enableAutomaticUpdates 속성은 “Windows 업데이트”를 사용하여 VM 내 패치를 사용하도록 설정하고 Service Fabric 확장 집합에서 지원되지 않습니다. 대신 automaticOSUpgradePolicy.enableAutomaticOSUpgrade 속성을 사용해야 합니다.
불일치로 인해 업그레이드 오류가 발생하므로 Service Fabric 클러스터 및 Service Fabric 확장에서 내구성 설정이 일치하지 않는지 확인합니다. 내구성 수준은 이 페이지에 설명된 지침에 따라 수정할 수 있습니다.
사용자 지정 이미지에 대한 자동 OS 이미지 업그레이드
자동 OS 이미지 업그레이드는 Azure Compute Gallery를 통해 배포되는 사용자 지정 이미지에 지원됩니다. 다른 사용자 지정 이미지에는 자동 OS 이미지 업그레이드가 지원되지 않습니다.
사용자 지정 이미지에 대한 추가 요구 사항
- 자동 OS 이미지 업그레이드에 대한 설치 및 구성 프로세스는 이 페이지의 구성 섹션에 자세히 설명되어 있는 모든 확장 집합에 동일합니다.
- 자동 OS 이미지 업그레이드를 위해 구성된 확장 집합 인스턴스는 이미지의 새 버전이 게시되고 해당 확장 집합의 지역에 복제될 때 Azure Compute 갤러리 이미지의 버전으로 업그레이드됩니다. 새 이미지가 확장이 배포된 지역에 복제되지 않으면 확장 집합 인스턴스가 버전으로 업그레이드되지 않습니다. 영역별 이미지 복제를 통해 확장 집합에 대하여 새 이미지의 롤아웃을 제어할 수 있습니다.
- 새 이미지 버전은 해당 갤러리 이미지의 버전에서 제외되어서는 안 됩니다. 갤러리 이미지 버전에서 제외된 이미지 버전은 자동 OS 이미지 업그레이드를 통해 확장 집합에 롤아웃되지 않습니다.
참고 항목
자동 OS 업그레이드를 위해 확장 집합을 처음 구성한 후 유지 관리 기간이나 기타 제한 사항과 같은 특정 요소로 인해 확장 집합이 첫 번째 이미지 업그레이드 롤아웃을 트리거하는 데 최대 3시간이 걸릴 수 있습니다. 최신 이미지를 사용하는 고객은 새 이미지를 사용할 수 있을 때까지 업그레이드를 가져올 수 없습니다.
자동 OS 이미지 업그레이드 구성
자동 OS 이미지 업그레이드를 구성하려면 확장 집합 모델 정의에서 automaticOSUpgradePolicy.enableAutomaticOSUpgrade 속성을 true로 설정해야 합니다.
참고 항목
업그레이드 정책 모드 및 자동 OS 업그레이드 정책은 별개의 설정이며 확장 집합의 다양한 측면을 제어합니다. 확장 집합 템플릿에 변경 내용이 있는 경우 업그레이드 정책은 mode
확장 집합의 기존 인스턴스에 어떤 일이 발생하는지 결정합니다. 그러나 자동 OS 업그레이드 정책 enableAutomaticOSUpgrade
는 OS 이미지와 관련이 있으며 이미지 게시자가 변경한 내용을 추적하고 이미지에 대한 업데이트가 있을 때 수행되는 작업을 결정합니다.
참고 항목
enableAutomaticOSUpgrade
가 true로 설정되면 enableAutomaticUpdates
가 자동으로 false로 설정되고 true로는 설정할 수 없습니다.
REST API
다음 예제에서는 확장 집합 모델에서 자동 OS 업그레이드를 설정하는 방법을 설명합니다.
PUT or PATCH on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet?api-version=2021-03-01`
{
"properties": {
"upgradePolicy": {
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true
}
}
}
}
Azure PowerShell
New-AzVmss cmdlet을 사용하여 프로비전하는 동안 확장 집합에 대한 자동 OS 이미지 업그레이드를 구성합니다. 다음 예제에서는 myResourceGroup이라는 리소스 그룹에 있는 확장 집합 myScaleSet에 대해 자동 업그레이드를 구성합니다.
New-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true
Update-AzVmss cmdlet을 사용하여 기존 확장 집합에 대한 자동 OS 이미지 업그레이드를 구성합니다. 다음 예제에서는 myResourceGroup이라는 리소스 그룹에 있는 확장 집합 myScaleSet에 대해 자동 업그레이드를 구성합니다.
Update-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -AutomaticOSUpgrade $true
Azure CLI 2.0
az vmss create를 사용하여 프로비전하는 동안 확장 집합에 대한 자동 OS 이미지 업그레이드를 구성합니다. Azure CLI 2.0.47 이상을 사용합니다. 다음 예제에서는 myResourceGroup이라는 리소스 그룹에 있는 확장 집합 myScaleSet에 대해 자동 업그레이드를 구성합니다.
az vmss create --name myScaleSet --resource-group myResourceGroup --enable-auto-os-upgrade true --upgrade-policy-mode Rolling
az vmss update를 사용하여 기존 확장 집합에 대한 자동 OS 이미지 업그레이드를 구성합니다. Azure CLI 2.0.47 이상을 사용합니다. 다음 예제에서는 myResourceGroup이라는 리소스 그룹에 있는 확장 집합 myScaleSet에 대해 자동 업그레이드를 구성합니다.
az vmss update --name myScaleSet --resource-group myResourceGroup --enable-auto-os-upgrade true --upgrade-policy-mode Rolling
참고 항목
확장 집합에 대한 자동 OS 이미지 업그레이드를 구성한 후 확장 집합에서 '수동' 업그레이드 정책을 사용하는 경우 확장 집합 가상 머신을 최신 확장 집합 모델로 가져와야 합니다.
ARM 템플릿
다음 예에서는 ARM 템플릿(Azure Resource Manager 템플릿)을 통해 확장 집합 모델에서 자동 OS 업그레이드를 설정하는 방법을 설명합니다.
"properties": {
"upgradePolicy": {
"mode": "Automatic",
"RollingUpgradePolicy": {
"BatchInstancePercent": 20,
"MaxUnhealthyInstancePercent": 25,
"MaxUnhealthyUpgradedInstancePercent": 25,
"PauseTimeBetweenBatches": "PT0S"
},
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true,
"useRollingUpgradePolicy": true,
"disableAutomaticRollback": false
}
},
},
"imagePublisher": {
"type": "string",
"defaultValue": "MicrosoftWindowsServer"
},
"imageOffer": {
"type": "string",
"defaultValue": "WindowsServer"
},
"imageSku": {
"type": "string",
"defaultValue": "2022-datacenter"
},
"imageOSVersion": {
"type": "string",
"defaultValue": "latest"
}
Bicep
다음 예에서는 Bicep을 통해 확장 집합 모델에서 자동 OS 업그레이드를 설정하는 방법을 설명합니다.
properties: {
overprovision: overProvision
upgradePolicy: {
mode: 'Automatic'
automaticOSUpgradePolicy: {
enableAutomaticOSUpgrade: true
}
}
}
애플리케이션 상태 확장 사용
OS 업그레이드 중에 확장 집합의 가상 머신은 한 번에 하나의 일괄 처리로 업그레이드됩니다. 업그레이드된 가상 머신에서 고객 애플리케이션이 정상인 경우에만 업그레이드가 계속되어야 합니다. 애플리케이션이 확장 집합 OS 업그레이드 엔진에 상태 신호를 제공하는 것이 좋습니다. 기본적으로 OS 업그레이드 중에 플랫폼은 가상 머신 전원 상태 및 확장 프로비저닝 상태를 고려하여 업그레이드 후 가상 머신이 정상인지 확인합니다. 가상 머신의 OS 업그레이드 중에 가상 머신의 OS 디스크는 최신 이미지 버전에 따라 새 디스크로 바뀝니다. OS 업그레이드가 완료되면 구성된 확장이 이러한 가상 머신에서 실행됩니다. 인스턴스의 모든 확장이 성공적으로 프로비전된 경우에만 애플리케이션이 정상 상태로 간주됩니다.
원한다면 플랫폼에 애플리케이션의 현재 상태에 대한 정확한 정보를 제공하도록 확장 집합을 구성할 수 있습니다. 애플리케이션 상태 프로브는 상태 신호로 사용되는 사용자 지정 부하 분산 장치 프로브입니다. 확장 집합 가상 머신에서 실행되는 애플리케이션은 정상인지 여부를 나타내는 외부 HTTP 또는 TCP 요청에 응답할 수 있습니다. 사용자 지정 부하 분산 장치 프로브에 대한 자세한 내용은 부하 분산 장치 프로브 이해를 참조하세요. 애플리케이션 상태 프로브는 Service Fabric 확장 집합에 지원되지 않습니다. Service Fabric 이외의 확장 집합에는 Load Balancer 애플리케이션 상태 프로브 또는 애플리케이션 상태 확장이 필요합니다.
여러 배치 그룹을 사용하도록 확장 집합을 구성한 경우 표준 부하 분산 장치를 사용하는 프로브를 사용해야 합니다.
참고 항목
Virtual Machine Scale Sets에는 애플리케이션 상태 확장 또는 상태 프로브 중 하나의 상태 모니터링 원본만 사용할 수 있습니다. 두 옵션을 모두 사용하도록 설정한 경우 인스턴스 복구 또는 자동 OS 업그레이드와 같은 오케스트레이션 서비스를 사용하기 전에 하나를 제거해야 합니다.
확장 집합의 애플리케이션 상태 프로브로 사용자 지정 부하 분산 장치 구성
모범 사례에 따라 확장 집합 상태에 대한 부하 분산 장치 프로브를 명시적으로 만듭니다. 기존 HTTP 프로브 또는 TCP 프로브에 대한 동일한 엔드포인트를 사용할 수 있지만, 상태 프로브에는 기존의 부하 분산 장치 프로브와 다른 동작이 필요할 수 있습니다. 예를 들어 기존의 부하 분산 장치 프로브는 인스턴스의 부하가 너무 높을 경우 비정상 상태를 반환하기도 하는데, 이 동작은 OS 자동 업그레이드 중에 인스턴스 상태를 확인하는 데 적합하지 않습니다. 검색 속도가 2분을 넘지 않도록 프로브를 구성하세요.
부하 분산 장치 프로브는 다음과 같이 확장 집합의 networkProfile에서 참조할 수 있으며 내부 또는 공용 부하 분산 장치에 연결할 수 있습니다.
"networkProfile": {
"healthProbe" : {
"id": "[concat(variables('lbId'), '/probes/', variables('sshProbeName'))]"
},
"networkInterfaceConfigurations":
...
}
참고 항목
Service Fabric과 함께 자동 OS 업그레이드를 사용할 때 새 OS 이미지는 Service Fabric에서 실행되는 서비스의 고가용성을 유지하기 위해 업데이트 도메인에 의해 업데이트 도메인에 롤아웃됩니다. Service Fabric에서 자동 OS 업그레이드를 활용하려면 실버 내구성 계층 이상을 사용하도록 클러스터 노드 형식이 구성되어야 합니다. Bronze 내구성 계층의 경우 자동 OS 이미지 업그레이드는 상태 비저장 노드 형식에 대해서만 지원됩니다. Service Fabric 클러스터의 내구성 특성에 대한 자세한 내용은 이 설명서를 참조 하세요.
애플리케이션 상태 확장 사용
Application Health 확장은 Virtual Machine Scale Set 인스턴스 내에 배포되고 확장 집합 인스턴스 내에서 가상 머신 상태를 보고합니다. 애플리케이션 엔드포인트를 검색하고 해당 인스턴스의 애플리케이션 상태를 업데이트하도록 확장을 구성할 수 있습니다. Azure에서 이 인스턴스 상태를 확인하여 해당 인스턴스가 업그레이드 작업에 적합한지 여부를 결정합니다.
확장이 가상 머신 내에서 상태를 보고하므로 애플리케이션 상태 프로브(사용자 지정 Azure Load Balancer 프로브를 활용하는)와 같은 외부 프로브를 사용할 수 없는 경우에 확장을 사용할 수 있습니다.
이 문서의 예제에서 자세히 설명한 대로 애플리케이션 상태 확장을 확장 집합에 배포하는 여러 가지 방법이 있습니다.
참고 항목
Virtual Machine Scale Sets에는 애플리케이션 상태 확장 또는 상태 프로브 중 하나의 상태 모니터링 원본만 사용할 수 있습니다. 두 옵션을 모두 사용하도록 설정한 경우 인스턴스 복구 또는 자동 OS 업그레이드와 같은 오케스트레이션 서비스를 사용하기 전에 하나를 제거해야 합니다.
Virtual Machine Scale Sets에서 롤링 업그레이드에 대한 사용자 지정 메트릭 구성(미리 보기)
참고 항목
Virtual Machine Scale Sets의 롤링 업그레이드에 대한 사용자 지정 메트릭은 현재 미리 보기로 제공됩니다. 추가 사용 약관에 동의하는 조건으로 미리 보기를 사용할 수 있습니다. 이러한 기능의 몇 가지 측면은 일반 공급(GA) 전에 변경될 수 있습니다.
롤링 업그레이드에 대한 사용자 지정 메트릭을 사용하면 애플리케이션 상태 확장을 활용하여 가상 머신 확장 집합에 사용자 지정 메트릭을 내보낸다. 이러한 사용자 지정 메트릭을 사용하여 롤링 업그레이드가 트리거될 때 가상 머신을 업데이트해야 하는 순서를 확장 집합에 알릴 수 있습니다. 사용자 지정 메트릭은 특정 인스턴스에서 업그레이드를 건너뛰어야 하는 경우 확장 집합에 알릴 수도 있습니다. 이렇게 하면 순서 지정 및 업데이트 프로세스 자체를 더 많이 제어할 수 있습니다.
사용자 지정 메트릭은 자동 OS 업그레이드, 자동 확장 업그레이드 및 MaxSurge 롤링 업그레이드와 같은 다른 롤링 업그레이드 기능과 함께 사용할 수 있습니다.
자세한 내용은 Virtual Machine Scale Sets에서 롤링 업그레이드에 대한 사용자 지정 메트릭을 참조 하세요.
자동 OS 이미지 업그레이드의 기록 가져오기
Azure PowerShell, Azure CLI 2.0 또는 REST API를 사용하여 확장 집합에서 수행된 가장 최근의 OS 업그레이드 기록을 확인할 수 있습니다. 지난 2개월 동안 마지막으로 시도한 OS 업그레이드 5개의 기록을 가져올 수 있습니다.
자격 증명을 최신 상태로 유지
확장 집합에서 자격 증명을 사용하여 스토리지 계정에 SAS 토큰을 사용하도록 구성된 가상 머신 확장과 같은 외부 리소스에 액세스하는 경우 자격 증명이 업데이트되었는지 확인합니다. 인증서 및 토큰을 포함한 자격 증명이 만료된 경우 업그레이드가 실패하고 가상 머신의 첫 번째 일괄 처리가 실패 상태로 남습니다.
리소스 인증 오류가 있는 경우 가상 머신을 복구하고 자동 OS 업그레이드를 다시 사용하도록 설정하는 권장 단계는 다음과 같습니다.
- 확장에 전달된 토큰(또는 다른 자격 증명)을 다시 생성합니다.
- 가상 머신 내부에서 외부 엔터티와 통신하는 데 사용되는 자격 증명이 최신 상태인지 확인합니다.
- 확장 집합 모델의 확장을 새 토큰으로 업데이트합니다.
- 실패한 가상 머신을 포함하여 모든 가상 머신을 업데이트하는 업데이트된 확장 집합을 배포합니다.
REST API
다음 예제에서는 REST API를 사용하여 리소스 그룹 myResourceGroup에 있는 확장 집합 myScaleSet의 상태를 확인합니다.
GET on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osUpgradeHistory?api-version=2021-03-01`
GET 호출은 다음 예제 출력과 비슷한 속성을 반환합니다.
{
"value": [
{
"properties": {
"runningStatus": {
"code": "RollingForward",
"startTime": "2018-07-24T17:46:06.1248429+00:00",
"completedTime": "2018-04-21T12:29:25.0511245+00:00"
},
"progress": {
"successfulInstanceCount": 16,
"failedInstanceCount": 0,
"inProgressInstanceCount": 4,
"pendingInstanceCount": 0
},
"startedBy": "Platform",
"targetImageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2016-Datacenter",
"version": "2016.127.20180613"
},
"rollbackInfo": {
"successfullyRolledbackInstanceCount": 0,
"failedRolledbackInstanceCount": 0
}
},
"type": "Microsoft.Compute/virtualMachineScaleSets/rollingUpgrades",
"location": "westeurope"
}
]
}
Azure PowerShell
Get-AzVmss cmdlet을 사용하여 확장 집합에 대한 OS 업그레이드 기록을 확인합니다. 다음 예제에서는 리소스 그룹 myResourceGroup에 있는 확장 집합 myVMSS에 대한 OS 업그레이드 상태를 검토하는 방법을 자세히 설명합니다.
Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -OSUpgradeHistory
Azure CLI 2.0
az vmss get-os-upgrade-history를 사용하여 확장 집합에 대한 OS 업그레이드 기록을 확인합니다. Azure CLI 2.0.47 이상을 사용합니다. 다음 예제에서는 리소스 그룹 myResourceGroup에 있는 확장 집합 myVMSS에 대한 OS 업그레이드 상태를 검토하는 방법을 자세히 설명합니다.
az vmss get-os-upgrade-history --resource-group myResourceGroup --name myScaleSet
플랫폼 OS 이미지의 최신 버전을 가져오는 방법
아래 예제를 사용하면 자동 OS 업그레이드가 지원되는 SKU의 사용 가능한 이미지 버전을 가져올 수 있습니다.
REST API
GET on `/subscriptions/subscription_id/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions?api-version=2021-03-01`
Azure PowerShell
Get-AzVmImage -Location "westus" -PublisherName "Canonical" -offer "0001-com-ubuntu-server-jammy" -sku "22_04-lts"
Azure CLI 2.0
az vm image list --location "westus" --publisher "Canonical" --offer "0001-com-ubuntu-server-jammy" --sku "22_04-lts" --all
OS 이미지 업그레이드 수동 트리거
확장 집합에서 자동 OS 이미지 업그레이드를 사용하도록 설정하면 확장 집합에서 이미지 업데이트를 수동으로 트리거할 필요가 없습니다. OS 업그레이드 오케스트레이터는 수동 개입 없이 사용 가능한 최신 이미지 버전을 확장 집합 인스턴스에 자동으로 적용합니다.
오케스트레이터가 최신 이미지를 적용할 때까지 기다리지 않으려는 특정 경우 아래 예제를 사용하여 OS 이미지 업그레이드를 수동으로 트리거할 수 있습니다.
참고 항목
OS 이미지 업그레이드를 수동으로 트리거하면 자동 롤백 기능이 제공되지 않습니다. 업그레이드 작업 후에 인스턴스 상태가 복구되지 않으면 이전 OS 디스크를 복원할 수 없습니다.
REST API
OS 업그레이드 시작 API 호출로 롤링 업그레이드를 시작하여 모든 Virtual Machine Scale Sets 인스턴스를 사용 가능한 최신 이미지 OS 버전으로 이동합니다. 사용 가능한 최신 OS 버전을 이미 실행 중인 인스턴스는 영향을 받지 않습니다. 다음 예제에서는 MyResourceGroup이라는 리소스 그룹의 myScaleSet이라는 확장 집합에서 롤링 OS 업그레이드를 시작하는 방법을 자세히 설명합니다.
POST on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/osRollingUpgrade?api-version=2021-03-01`
Azure PowerShell
Start-AzVmssRollingOSUpgrade cmdlet을 사용하여 확장 집합에 대한 OS 업그레이드 기록을 확인합니다. 다음 예제에서는 MyResourceGroup이라는 리소스 그룹의 myScaleSet이라는 확장 집합에서 롤링 OS 업그레이드를 시작하는 방법을 자세히 설명합니다.
Start-AzVmssRollingOSUpgrade -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Azure CLI 2.0
az vmss rolling-upgrade start을 사용하여 확장 집합에 대한 OS 업그레이드 기록을 확인합니다. Azure CLI 2.0.47 이상을 사용합니다. 다음 예제에서는 MyResourceGroup이라는 리소스 그룹의 myScaleSet이라는 확장 집합에서 롤링 OS 업그레이드를 시작하는 방법을 자세히 설명합니다.
az vmss rolling-upgrade start --resource-group "myResourceGroup" --name "myScaleSet" --subscription "subscriptionId"
업그레이드 알림 및 인사이트에 활동 로그 활용
활동 로그는 Azure에서 발생하는 구독 수준 이벤트에 대한 정보를 제공하는 구독 로그입니다. 고객은 다음을 수행할 수 있습니다.
- Azure Portal에서 해당 리소스에서 수행된 작업과 관련된 이벤트 보기
- 이메일, SMS, 웹후크 또는 ITSM과 같은 알림 방법을 조정하는 작업 그룹 만들기
- 포털, ARM 리소스 템플릿, PowerShell 또는 CLI를 사용하여 작업 그룹으로 보낼 다양한 조건을 사용하여 적절한 경고 설정
고객은 자동 OS 업그레이드 작업과 관련된 세 가지 유형의 알림을 받습니다.
- 특정 리소스에 대한 업그레이드 요청 제출
- 오류 세부 정보와 함께 제출 요청의 결과
- 오류 세부 정보와 함께 업그레이드 완료의 결과
활동 로그 경고에 대한 작업 그룹 설정
작업 그룹은 Azure 구독 소유자가 정의한 알림 기본 설정 컬렉션입니다. Azure Monitor 및 Service Health 경고는 작업 그룹을 사용하여 경고가 트리거되었음을 사용자에게 알립니다.
다음을 사용하여 작업 그룹을 만들고 관리할 수 있습니다.
고객은 작업 그룹을 사용하여 다음을 설정할 수 있습니다.
- SMS 및/또는 이메일 알림
- 웹후크 - 고객은 자동화 Runbook에 웹후크를 연결하고 Runbook을 트리거하도록 작업 그룹을 구성할 수 있습니다. 웹후크에서 Runbook을 시작할 수 있습니다.
- ITSM 연결
자동 업그레이드 오류 조사 및 해결
플랫폼은 롤링 업그레이드 정책을 사용하여 자동 이미지 업그레이드를 수행하는 동안 가상 머신에서 오류를 반환할 수 있습니다. 가상 머신의 인스턴스 보기 가져오기에는 오류를 조사하고 해결하기 위한 자세한 오류 메시지가 포함되어 있습니다. 롤링 업그레이드 - 최신 다운로드에서는 롤링 업그레이드 구성 및 상태에 대한 자세한 정보를 제공할 수 있습니다. OS 업그레이드 기록 가져오기에서는 확장 집합의 마지막 이미지 업그레이드 작업에 대한 세부 정보를 제공합니다. 다음은 롤링 업그레이드를 초래할 수 있는 가장 큰 오류입니다.
RollingUpgradeInProgressWithFailedUpgradedVMs
- 가상 머신 오류에 대한 오류가 트리거됩니다.
- 자세한 오류 메시지는 구성된 임계값에 따라 롤아웃이 계속/일시 중지되는지 여부를 나타냅니다.
MaxUnhealthyUpgradedInstancePercentExceededInRollingUpgrade
- 업그레이드된 가상 머신의 백분율이 비정상 가상 머신에 허용되는 최대 임계값을 초과하면 오류가 트리거됩니다.
- 자세한 오류 메시지는 비정상 가상 머신에 기여하는 가장 일반적인 오류를 집계합니다. MaxUnhealthyUpgradedInstancePercent를 참조하세요.
MaxUnhealthyInstancePercentExceededInRollingUpgrade
- 비정상 가상 머신의 백분율이 업그레이드 중에 비정상 가상 머신에 허용되는 최대 임계값을 초과하면 오류가 트리거됩니다.
- 자세한 오류 메시지에는 현재 비정상 백분율과 구성된 허용 가능한 비정상 가상 머신 백분율이 표시됩니다. maxUnhealthyInstancePercent를 참조하세요.
MaxUnhealthyInstancePercentExceededBeforeRollingUpgrade
- 비정상 가상 머신의 백분율이 업그레이드가 발생하기 전에 비정상 가상 머신에 허용되는 최대 임계값을 초과하면 오류가 트리거됩니다.
- 자세한 오류 메시지에는 현재 비정상 백분율과 구성된 허용 가능한 비정상 가상 머신 백분율이 표시됩니다. maxUnhealthyInstancePercent를 참조하세요.
InternalExecutionError
- 실행 중에 처리되지 않거나, 형식이 지정되지 않거나, 예기치 않은 오류가 발생하면 오류가 트리거됩니다.
- 자세한 오류 메시지에는 오류의 원인이 표시됩니다.
RollingUpgradeTimeoutError
- 롤링 업그레이드 프로세스 시간이 초과되면 오류가 트리거됩니다.
- 자세한 오류 메시지는 업데이트를 시도한 후 시스템이 시간 초과된 시간 길이를 표시합니다.