Azure'da VM'ler ve Ölçek Kümeleri için Otomatik Uzantı Yükseltmesi
Otomatik Uzantı Yükseltme, Azure VM'leri ve Azure Sanal Makine Ölçek Kümeleri için kullanılabilir. Vm veya ölçek kümesinde Otomatik Uzantı Yükseltme etkinleştirildiğinde, uzantı yayımcısı bu uzantı için yeni bir sürüm yayımladığında uzantı otomatik olarak yükseltilir.
Otomatik Uzantı Yükseltme aşağıdaki özelliklere sahiptir:
- Azure VM'leri ve Azure Sanal Makine Ölçek Kümeleri için desteklenir.
- Yükseltmeler, kullanılabilirlik öncelikli dağıtım modelinde uygulanır.
- Bir Sanal Makine Ölçek Kümesi için ölçek kümesi sanal makinelerinin %20'sinden fazlası tek bir toplu işlemde yükseltilmemiştir. En düşük toplu iş boyutu bir sanal makinedir.
- Tüm VM boyutları ve hem Windows hem de Linux uzantıları için çalışır.
- Otomatik yükseltmeleri istediğiniz zaman geri çevirebilirsiniz.
- Otomatik uzantı yükseltme, herhangi bir boyutta Sanal Makine Ölçek Kümeleri etkinleştirilebilir.
- Desteklenen her uzantı ayrı ayrı kaydedilir ve hangi uzantıların otomatik olarak yükseltileceğini seçebilirsiniz.
- Tüm genel bulut bölgelerinde desteklenir.
Otomatik Uzantı Yükseltme nasıl çalışır?
Uzantı yükseltme işlemi, bir VM'de var olan uzantı sürümünü, uzantı yayımcısı tarafından yayımlandığında aynı uzantının yeni bir sürümüyle değiştirir. Yeni uzantı yüklendikten sonra VM'nin sistem durumu izlenir. Yükseltme tamamlandıktan sonra 5 dakika içinde VM iyi durumda değilse uzantı sürümü önceki sürüme geri alınır.
Başarısız uzantı yükseltmesi otomatik olarak yeniden denendi. Kullanıcı müdahalesi olmadan birkaç günde bir otomatik olarak yeniden deneme yapılır.
Kullanılabilirlik Öncelikli Güncelleştirmeler
Platform tarafından düzenleyen yükseltmeler için kullanılabilirlik öncelikli model, Azure'daki kullanılabilirlik yapılandırmalarına birden çok kullanılabilirlik düzeyinde uyulmasını sağlar.
Yükseltmeden geçen bir grup sanal makine için Azure platformu yükseltmeleri düzenler:
Bölgeler arasında:
- Yükseltme, Azure genelinde dağıtım hatalarını önlemek için azure genelinde aşamalı olarak taşınır.
- Bir 'aşama' bir veya daha fazla bölgeye sahip olabilir ve yükseltme yalnızca önceki aşama yükseltmesindeki uygun VM'ler başarılı olursa aşamalar arasında taşınır.
- Coğrafi olarak eşleştirilmiş bölgeler eşzamanlı olarak yükseltilmeyecek ve aynı bölgesel aşamada olamaz.
- Yükseltmenin başarısı, yükseltme sonrasında bir VM'nin sistem durumu izlenerek ölçülür. VM sistem durumu, VM'nin platform sistem durumu göstergeleri aracılığıyla izlenir. Sanal Makine Ölçek Kümeleri için vm sistem durumu, ölçek kümesine uygulandıysa uygulama durumu yoklamaları veya Uygulama Durumu uzantısı aracılığıyla izlenir.
Bir bölge içinde:
- Farklı Kullanılabilirlik Alanları vm'ler aynı yükseltmeyle eşzamanlı olarak yükseltilir.
- Kullanılabilirlik kümesinin parçası olmayan tek VM'ler, abonelikteki tüm VM'lerde eşzamanlı yükseltmelerden kaçınmak için en iyi çaba temelinde toplu olarak çalıştırılır.
Bir 'küme' içinde:
- Ortak kullanılabilirlik kümesindeki veya ölçek kümesindeki tüm VM'ler eşzamanlı olarak yükseltilir.
- Ortak kullanılabilirlik kümesindeki VM'ler Güncelleştirme Etki Alanı sınırları içinde yükseltilir ve birden çok Güncelleştirme Etki Alanındaki VM'ler eşzamanlı olarak yükseltilir.
- Ortak bir sanal makine ölçek kümesindeki VM'ler toplu olarak gruplandırılır ve Etki Alanı Güncelleştirme sınırları içinde yükseltilir. Ölçek kümesinde tanımlanan yükseltme ilkeleri , yükseltme sırasında kabul edilir. Yükseltme ilkesi El ile olarak ayarlanırsa, otomatik uzantı yükseltmesi etkinleştirildiğinde bile VM'ler yükseltilir.
Sanal Makine Ölçek Kümeleri için yükseltme işlemi
Yükseltme işlemi başlamadan önce düzenleyici, ölçek kümesinin tamamında vm'lerin %20'sinden fazlasının iyi durumda olmamasını sağlar (herhangi bir nedenle).
Yükseltme düzenleyici, yükseltecek VM örneklerinin toplu işlemini tanımlar. Bir yükseltme toplu işleminin toplam VM sayısının en fazla %20'sine sahip olması, bir sanal makinenin en düşük toplu iş boyutuna tabi olabilir. Toplu işlemi tanımlarken Yükseltme İlkesi ve Kullanılabilirlik Alanları tanımı dikkate alınır.
Yükseltmeden sonra, vm sistem durumu bir sonraki toplu işe geçmeden önce her zaman izlenir. Yapılandırılmış uygulama durumu yoklamalarına veya Uygulama Durumu uzantısına sahip ölçek kümeleri için, uygulama durumu da izlenir. Yükseltme, sonraki toplu işlemi yükseltmeden önce VM'nin iyi duruma gelmesi için 5 dakikaya kadar (veya tanımlanan sistem durumu yoklaması yapılandırmasında) bekler. Bir VM yükseltmeden sonra sistem durumunu kurtarmazsa, varsayılan olarak VM'de önceki uzantı sürümü yeniden yüklenir.
Yükseltme düzenleyicisi, yükseltmeden sonra iyi durumda olmayan VM'lerin yüzdesini de izler. Yükseltme işlemi sırasında yükseltilen örneklerin %20'den fazlası iyi durumda değilse yükseltme durdurulur.
Yukarıdaki işlem, ölçek kümesindeki tüm örnekler yükseltilene kadar devam eder.
Ölçek kümesi yükseltme düzenleyicisi, her toplu işlemi yükseltmeden önce genel ölçek kümesi durumunu denetler. Toplu yükseltme sırasında, ölçek kümesi sanal makinelerinizin durumunu etkileyebilecek başka eşzamanlı planlı veya plansız bakım etkinlikleri olabilir. Bu gibi durumlarda ölçek kümesinin örneklerinin %20'den fazlası iyi durumda değilse ölçek kümesi yükseltmesi geçerli toplu işlemin sonunda durur.
Desteklenen uzantılar
Otomatik Uzantı Yükseltmesi aşağıdaki uzantıları destekler (ve daha fazlası düzenli aralıklarla eklenir):
- Azure Otomasyonu Karma Çalışanı uzantısı - Linux ve Windows
- Bağımlılık Aracısı – Linux ve Windows
- Uygulama Durumu Uzantısı – Linux ve Windows
- Konuk Kanıtlama Uzantısı - Linux ve Windows
- Konuk Yapılandırma Uzantısı – Linux ve Windows
- Key Vault – Linux ve Windows
- Azure İzleyici Aracısı
- Linux için Log Analytics Aracısı
- Linux için Azure Tanılama uzantısı
- Service Fabric – Linux
Otomatik Uzantı Yükseltmeyi Etkinleştirme
Bir uzantı için Otomatik Uzantı Yükseltme'yi etkinleştirmek için özelliğin enableAutomaticUpgrade
her uzantı tanımına true
ayrı ayrı ayarlandığından ve eklendiğinden emin olmanız gerekir.
Sanal Makineler için REST API
Azure VM'de bir uzantı (bu örnekte Bağımlılık Aracısı uzantısı) için otomatik uzantı yükseltmesini etkinleştirmek için aşağıdaki çağrıyı kullanın:
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"
}
}
Sanal Makine Ölçek Kümeleri için REST API
Uzantıyı ölçek kümesi modeline eklemek için aşağıdaki çağrıyı kullanın:
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"
}
}
]
}
}
}
}
Sanal Makineler için Azure PowerShell
Set-AzVMExtension cmdlet'ini kullanın:
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
Sanal Makine Ölçek Kümeleri için Azure PowerShell
Uzantıyı ölçek kümesi modeline eklemek için Add-AzVmssExtension cmdlet'ini kullanın:
Add-AzVmssExtension -VirtualMachineScaleSet $vmss
-Name "Microsoft.Azure.Monitoring.DependencyAgent" `
-Publisher "Microsoft.Azure.Monitoring.DependencyAgent" `
-Type "DependencyAgentWindows" `
-TypeHandlerVersion 9.5 `
-EnableAutomaticUpgrade $true
Uzantıyı ekledikten sonra Update-AzVmss kullanarak ölçek kümesini güncelleştirin.
Sanal Makineler için Azure CLI
az vm extension set cmdlet'ini kullanın:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name DependencyAgentLinux \
--publisher Microsoft.Azure.Monitoring.DependencyAgent \
--version 9.5 \
--enable-auto-upgrade true
Sanal Makine Ölçek Kümeleri için Azure CLI
Uzantıyı ölçek kümesi modeline eklemek için az vmss extension set cmdlet'ini kullanın:
az vmss extension set \
--resource-group myResourceGroup \
--vmss-name myVMSS \
--name DependencyAgentLinux \
--publisher Microsoft.Azure.Monitoring.DependencyAgent \
--version 9.5 \
--enable-auto-upgrade true
Sanal Makineler için ARM şablonu
Aşağıdaki örnekte, Azure Resource Manager kullanılarak sanal makinede bir uzantı (bu örnekte Bağımlılık Aracısı Uzantısı) için otomatik uzantı yükseltmelerinin nasıl ayarlanacağı açıklanmaktadır
{
"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"
}
}
}
Sanal Makine Ölçek Kümeleri için ARM şablonu
Ölçek kümesi modeli içindeki uzantıda otomatik uzantı yükseltmesini ayarlamak için aşağıdaki örneği kullanın:
{
"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,
}
}]
}
}
}
}
Azure portalı kullanarak
Mevcut Sanal Makineler ve Sanal Makine Ölçek Kümeleri uzantıların otomatik olarak yükseltilebilmesi için Azure portal - Uzantı dikey penceresini kullanabilirsiniz.
- Sanal Makineler veya Sanal Makineler Ölçek Kümeleri dikey penceresine gidin ve adına tıklayarak kaynağı seçin.
- Kaynakta yüklü olan tüm uzantıları görüntülemek için Ayarlar'ın altındaki "Extenisons + applications" dikey penceresine gidin. "Otomatik Yükseltme Durumu" sütunu uzantının otomatik yükseltmesinin etkinleştirildiğini, devre dışı bırakılıp bırakılmadığını veya desteklenmediğini belirtir.
- Uzantı adına tıklayarak Uzantı ayrıntıları dikey penceresine gidin.
- Uzantının otomatik yükseltmesini etkinleştirmek için "Otomatik yükseltmeyi etkinleştir" seçeneğine tıklayın. Bu düğme gerektiğinde otomatik yükseltmeyi devre dışı bırakmak için de kullanılabilir.
Birden çok uzantı ile uzantı yükseltmeleri
Bir VM veya Sanal Makine Ölçek Kümesinde otomatik uzantı yükseltmesi etkinleştirilmiş birden çok uzantı olabilir. Aynı VM veya ölçek kümesinde otomatik uzantı yükseltmesi etkinleştirilmeden başka uzantılar da bulunabilir.
Bir sanal makine için birden çok uzantı yükseltmesi varsa, yükseltmeler birlikte toplu işlenebilir, ancak her uzantı yükseltmesi bir sanal makineye ayrı ayrı uygulanır. Bir uzantıdaki bir hata, yükseltiliyor olabilecek diğer uzantıları etkilemez. Örneğin, bir yükseltme için iki uzantı zamanlanırsa ve ilk uzantı yükseltmesi başarısız olursa, ikinci uzantı yine yükseltilir.
Otomatik Uzantı Yükseltmeleri, bir VM veya sanal makine ölçek kümesinde uzantı sıralamasıyla yapılandırılmış birden çok uzantı olduğunda da uygulanabilir. Uzantı sıralama, VM'nin ilk kez dağıtımı için geçerlidir ve bir uzantıdaki gelecekteki uzantı yükseltmeleri bağımsız olarak uygulanır.
enableAutomaticUpgrade ile autoUpgradeMinorVersion arasındaki fark
AutoUpgradeMinorVersion:
- Bu özellik, VM oluşturma sırasında ve VM'yi yeni bir yapılandırmayla yükseltirken kullanılır.
- "true" olarak ayarlandığında, uzantının en son ikincil sürümünün sanal makineye otomatik olarak yüklenmesini sağlar.
- TypeHandlerVersion'ı kullanılabilir en son kararlı ikincil sürümle geçersiz kılar.
- VM yapılandırmasını yükseltirken, yeni bir ikincil sürüm varsa, yapılandırma değişikliği olarak kabul edilir ve uzantı en son ikincil sürümle yeniden yüklenir.
- Bu, yeni oluşturulan VM'lerin en son kararlı ikincil uzantı sürümüyle güncel kalmasına yardımcı olur.
- Uzantıyı el ile belirli bir sürüme ayarlamak istiyorsanız, bu özelliği "false" olarak ayarlayın.
EnableAutomaticUpgrade:
- Bu özellik mevcut sanal makineleri etkiler.
- VM oluşturma sırasında yüklenen sürümü etkilemez.
- VM oluşturulduktan sonra, VM uzantının en son ikincil sürümünü çalıştırmıyorsa, bu özelliğin etkinleştirilmesi otomatik yükseltmeyi tetikler.
- Yükseltmeler VM'nin yeniden başlatılmasına neden olmaz, güvenli bir şekilde dağıtılır ve başarısız yükseltmeler yüksek hizmet kullanılabilirliği ve güvenilirliği sağlamak için hemen geri alınır.
- Mevcut VM'lerin en son ikincil sürüme otomatik olarak güncelleştirilerek güvenli ve güncel kalmasını sağlar.
Her iki özelliğin de tüm VM'leri güvenli ve güncel tutmasını sağlamak için yeniden birleştirilmiştir.
Ana uzantı sürümlerine yükseltmeler, hataya neden olabileceğinden hiçbir özellik tarafından otomatik olarak gerçekleştirilmez. TypeHandlerVersion'ı el ile ana sürüme ayarlamanız ve mevcut vm'leri el ile en son ana sürüme yükseltmeniz gerekir.