Service Fabric yönetilen kümelerinde Otomatik Ölçeklendirme'ye giriş
Otomatik ölçeklendirme büyük esneklik sağlar ve ikincil düğüm türünde isteğe bağlı düğümlerin eklenmesini veya azaltılmasını sağlar. Bu otomatik ve esnek davranış, iş yükünüzü sağlayan düğüm sayısını izleyerek ve iyileştirerek yönetim ek yükünü ve olası iş etkisini azaltır. İş yükünüz için kurallar yapılandırıp gerisini otomatik ölçeklendirmenin işlemesine izin verirsiniz. Bu tanımlı eşiklere uyulduğunda, otomatik ölçeklendirme kuralları düğüm türünüzün kapasitesini ayarlamak için eylemde bulunur. Otomatik ölçeklendirme istediğiniz zaman etkinleştirilebilir, devre dışı bırakılabilir veya yapılandırılabilir. Bu makalede örnek bir dağıtım, otomatik ölçeklendirmeyi etkinleştirme veya devre dışı bırakma ve örnek bir otomatik ölçeklendirme ilkesi yapılandırma işlemleri sağlanır.
Gereksinimler ve desteklenen ölçümler:
- Service Fabric yönetilen küme kaynağı apiVersion 2022-01-01 veya üzeri olmalıdır.
- Küme SKU'su Standart olmalıdır.
- Yalnızca kümenizdeki ikincil düğüm türünde yapılandırılabilir.
- Bir düğüm türü için otomatik ölçeklendirmeyi etkinleştirdikten sonra, kaynağı yeniden dağıtırken özelliğini olarak
-1
yapılandırınvmInstanceCount
. - Yalnızca Azure İzleyici tarafından yayımlanan ölçümler desteklenir.
Not
Hyper-V rolü etkinken Windows işletim sistemi görüntüsü kullanılıyorsa, örneğin. vm iç içe sanallaştırma için yapılandırılır, Kullanılabilir Bellek Ölçümü kullanılamaz, çünkü VM içindeki dinamik bellek sürücüsü durdurulmuş durumda olur.
Otomatik ölçeklendirmenin yararlı olduğu yaygın bir senaryo, belirli bir hizmet üzerindeki yükün zaman içinde değişmesidir. Örneğin, ağ geçidi gibi bir hizmet, gelen istekleri işlemek için gereken kaynak miktarına göre ölçeklendirilebilir. Şimdi bu ölçeklendirme kurallarının nasıl görünebileceğine ilişkin bir örneğe göz atalım ve bunları makalenin devamında kullanacağız:
- Ağ geçidimin tüm örnekleri ortalama %70'ten fazla kullanıyorsa, iki örnek daha ekleyerek ağ geçidi hizmetinin ölçeğini genişletin. Bunu her 30 dakikada bir yapın, ancak toplamda yirmiden fazla örneğiniz olmaz.
- Ağ geçidimin tüm örnekleri ortalama olarak %40'tan az çekirdek kullanıyorsa, bir örneği kaldırarak hizmetin ölçeğini daraltın. Bunu her 30 dakikada bir yapın, ancak toplamda üçten az örneğiniz olmaz.
Örnek otomatik ölçeklendirme dağıtımı
Bu örnekte aşağıdakiler izlenecektir:
- İki düğüm türüyle
NT1
veNT2
varsayılan olarak Standart SKU Service Fabric yönetilen kümesi oluşturma. - İkincil düğüm türüne otomatik ölçeklendirme kuralları ekleme,
NT2
.
Not
Düğüm türünün otomatik olarak ölçeklenmesi, yönetilen küme VMSS CPU ana bilgisayar ölçümlerine göre gerçekleştirilir. VMSS kaynağı şablonda otomatik olarak çözümlendi.
Aşağıdakiler, otomatik ölçeklendirme yapılandırılmış bir kümenin kurulumunda adım adım size yol gösterir.
Bölgede kaynak grubu oluşturma
Login-AzAccount Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
Küme kaynağı oluşturma
Bu örneği indirin Standart SKU Service Fabric yönetilen küme örneği Küme kaynağını dağıtmak için bu komutu yürütebilirsiniz:
$parameters = @{ clusterName = $clusterName adminPassword = $VmAdminPassword clientCertificateThumbprint = $clientCertificateThumbprint } New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
İkincil düğüm türünde otomatik ölçeklendirme kurallarını yapılandırma ve etkinleştirme
Aşağıdaki komutlarla otomatik ölçeklendirmeyi yapılandırmak için kullanacağınız yönetilen küme otomatik ölçeklendirme örnek şablonunu indirin:
$parameters = @{ clusterName = $clusterName } New-AzResourceGroupDeployment -Name "deploy_autoscale" -ResourceGroupName $resourceGroupName -TemplateFile .\sfmc-deploy-autoscale.json -TemplateParameterObject $parameters -Verbose
Not
Bu dağıtım tamamlandıktan sonra, gelecekteki küme kaynak dağıtımları otomatik ölçeklendirme kurallarının vmInstanceCount
etkinleştirildiği ikincil düğüm türlerinde özelliğini -1
olarak ayarlamalıdır. Bu, küme dağıtımlarının otomatik ölçeklendirmeyle çakışmamasını sağlar.
İkincil düğüm türünde otomatik ölçeklendirmeyi etkinleştirme veya devre dışı bırakma
Service Fabric yönetilen kümesi tarafından dağıtılan düğüm türleri varsayılan olarak otomatik ölçeklendirmeyi etkinleştirmez. Otomatik ölçeklendirme, yapılandırılan ve kullanılabilen düğüm türü başına herhangi bir zamanda etkinleştirilebilir veya devre dışı bırakılabilir.
Bu özelliği etkinleştirmek için, aşağıda gösterildiği gibi arm şablonundaki türün Microsoft.Insights/autoscaleSettings
altında özelliğini yapılandırınenabled
:
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2015-04-01",
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"location": "[resourceGroup().location]",
"properties": {
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"targetResourceUri": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'), '/nodetypes/', parameters('nodeType2Name'))]",
"enabled": true,
...
Otomatik ölçeklendirmeyi devre dışı bırakmak için değerini false
Otomatik ölçeklendirme kurallarını silme
Bir düğüm türü için tüm otomatik ölçeklendirme ilkeleri kurulumunu silmek için aşağıdaki PowerShell komutunu çalıştırabilirsiniz.
Remove-AzResource -ResourceId "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/microsoft.insights/autoscalesettings/$name" -Force
Otomatik ölçeklendirme için ilkeler ayarlama
Service Fabric yönetilen kümesi varsayılan olarak otomatik ölçeklendirme için hiçbir ilke yapılandırmaz. Temel alınan kaynaklarda gerçekleştirilecek ölçeklendirme eylemleri için otomatik ölçeklendirme ilkeleri yapılandırılmalıdır.
Aşağıdaki örnek için nodeType2Name
en az 3 düğüm olacak bir ilke ayarlar, ancak 20 düğüme kadar ölçeklendirmeye izin verir. 1 dakikalık ayrıntı düzeyiyle son 30 dakika içinde ortalama CPU kullanımı %70 olduğunda ölçeği artırmayı tetikler. 1 dakikalık ayrıntı düzeyiyle son 30 dakika boyunca ortalama CPU kullanımı %40'ın altında olduğunda ölçeği azaltmayı tetikler.
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2015-04-01",
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"location": "[resourceGroup().location]",
"properties": {
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"targetResourceUri": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'), '/nodetypes/', parameters('nodeType2Name'))]",
"enabled": "[parameters('enableAutoScale')]",
"profiles": [
{
"name": "Autoscale by percentage based on CPU usage",
"capacity": {
"minimum": "3",
"maximum": "20",
"default": "3"
},
"rules": [
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricNamespace": "",
"metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/SFC_', reference(resourceId('Microsoft.ServiceFabric/managedClusters', parameters('clusterName')), '2022-01-01').clusterId,'/providers/Microsoft.Compute/virtualMachineScaleSets/',parameters('nodeType2Name'))]",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT30M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 70
},
"scaleAction": {
"direction": "Increase",
"type": "ChangeCount",
"value": "5",
"cooldown": "PT5M"
}
},
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricNamespace": "",
"metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/SFC_', reference(resourceId('Microsoft.ServiceFabric/managedClusters', parameters('clusterName')), '2022-01-01').clusterId,'/providers/Microsoft.Compute/virtualMachineScaleSets/',parameters('nodeType2Name'))]",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT30M",
"timeAggregation": "Average",
"operator": "LessThan",
"threshold": 40
},
"scaleAction": {
"direction": "Decrease",
"type": "ChangeCount",
"value": "1",
"cooldown": "PT5M"
}
}
]
}
]
}
}
]
Yukarıdaki örneği içeren otomatik ölçeklendirmeyi etkinleştirmek için bu ARM Şablonunu indirebilirsiniz
Yönetilen küme kaynağınızın yapılandırılmış otomatik ölçeklendirme tanımlarını görüntüleme
Azure Kaynak Gezgini'nde yapılandırılmış otomatik ölçeklendirme ayarlarını görüntüleyebilirsiniz.
Azure Kaynak Gezgini'ne gidin
subscriptions
- -SubscriptionName
> ->microsoft.insights
resource group
> - -autoscalesettings
> -> Otomatik ölçeklendirme ilkesi adına gidin: örneğinsfmc01-NT2
. .Gezinti ağacında buna benzer bir şey görürsünüz:
Sağ tarafta, bu otomatik ölçeklendirme ayarının tam tanımını görüntüleyebilirsiniz.
Bu örnekte, otomatik ölçeklendirme CPU tabanlı %ölçeği genişletme ve ölçeği daraltma kuralıyla yapılandırılır.
Sorun giderme
Dikkate alınması gereken bazı noktalar:
Yönetilen kümeler ikincil düğüm türlerine karşı tetiklenen otomatik ölçeklendirme olaylarını gözden geçirin
- Küme Etkinlik günlüğüne gitme
- Otomatik ölçeklendirme ölçeğini artırma/azaltma tamamlanan işlem için etkinlik günlüğünü gözden geçirme
Düğüm türü için yapılandırılan vm sayısı ve iş yükü bunların tümünde mi yoksa yalnızca bazılarında mı oluşuyor?
Ölçeği daraltma ve genişletme eşikleriniz yeterince farklı mı?
Ortalama CPU beş dakika içinde %50'den fazla olduğunda ölçeği genişletmek ve ortalama CPU %50'nin altında olduğunda ölçeği daraltmak için bir kural ayarladığınızı varsayalım. Bu ayar, CPU kullanımı eşiğe yaklaştığında "çırpma" sorununa neden olur ve ölçek eylemleri kümenin boyutunu sürekli artırır ve küçültür. Bu ayar nedeniyle, otomatik ölçeklendirme hizmeti "dokunmayı" engellemeye çalışır ve bu durum ölçeklendirme yapılmadığını gösterebilir. Bu nedenle ölçeği genişletme ve ölçeklendirme eşiklerinizin, ölçeklendirme arasında biraz alan açmak için yeterince farklı olduğundan emin olun.
Bir düğüm türünün ölçeğini daraltabilir veya genişletebilir misiniz? Düğüm türü düzeyinde düğüm sayısını ayarlayın ve başarıyla tamamlandığından emin olun. Yönetilen kümede düğüm türünü ölçeklendirme
Azure Kaynak Gezgini'nde Microsoft.ServiceFabric/managedclusters/nodetypes ve Microsoft.Insights kaynaklarınızı denetleyin
Azure Kaynak Gezgini, Azure Resource Manager kaynaklarınızın durumunu gösteren vazgeçilmez bir sorun giderme aracıdır. Aboneliğinize tıklayın ve sorun giderdiğiniz Kaynak Grubuna bakın. Kaynak sağlayıcısının
ServiceFabric/managedclusters/clustername
altındaNodeTypes
, oluşturduğunuz düğüm türlerini arayın ve özelliklerini denetleerek öğesinin olduğunuSucceeded
doğrulayınprovisioningState
. Ardından altında Microsoft.Insights kaynak sağlayıcısınaclustername
gidin ve otomatik ölçeklendirme kurallarının doğru olup olmadığını denetleyin.Yayılan ölçüm değerleriniz beklendiği gibi mi? Bir kaynağın
Get-AzMetric
ölçüm değerlerini almak ve gözden geçirmek için PowerShell modülünü kullanma
Bu adımları tamamladıktan sonra, otomatik ölçeklendirme sorunları yaşamaya devam ediyorsanız şu kaynakları deneyebilirsiniz: Destek isteğini günlüğe kaydetme. Şablonu ve performans verilerinizin bir görünümünü paylaşmaya hazır olun.