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ı izleyip 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. Tanımlanan eşiklere uyulduğunda, otomatik ölçeklendirme kuralları düğüm türünüzün kapasitesini ayarlamak için eylemde bulunur. Otomatik ölçeklendirme herhangi bir zamanda 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, VM içindeki dinamik bellek sürücüsü durdurulmuş durumda olacağından Kullanılabilir Bellek Ölçümü kullanılamaz.
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 şu adım adım 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 yapılır. VMSS kaynağı şablonda otomatik olarak çözümlenmiştir.
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 şu 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
$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ı özelliği -1
otomatik ölçeklendirme kurallarının etkinleştirildiği ikincil düğüm türlerinde olarak ayarlanmalıdırvmInstanceCount
. 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 şekilde bir ilke ayarlar, ancak 20 düğüme kadar ölçeklendirmeye izin verir. 1 dakikalık ayrıntı düzeyiyle son 30 dakikada ortalama CPU kullanımı %70 olduğunda ölçeği artırmayı tetikler. Son 30 dakika için ortalama CPU kullanımı %40'ın altında olduğunda 1 dakikalık ayrıntı düzeyiyle ö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'ne tıklayarak 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ğin. .sfmc01-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ı bir ölçeği genişletme ve ölçeklendirme kuralıyla yapılandırılır.
Sorun giderme
Dikkate alınması gereken bazı noktalar şunlardır:
Yönetilen kümelere karşı tetiklenen otomatik ölçeklendirme olaylarını gözden geçirin ikincil düğüm türleri
- Küme Etkinlik günlüğüne gidin
- Otomatik ölçeklendirme ölçeğini artırma/azaltma işlemi için etkinlik günlüğünü gözden geçirin
Düğüm türü için kaç VM yapılandırıldı ve iş yükü bunların tümünde mi yoksa yalnızca bazılarında mı oluşuyor?
Ölçeği daraltma ve ölçeği genişletme eşikleriniz yeterince farklı mı?
Ortalama CPU beş dakikada %50'den fazla olduğunda ölçeği genişletmek ve ortalama CPU %50'den az 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 bir "dokunma" 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ığı bildirilebilir. Bu nedenle ölçek genişletme ve ölçek genişletme 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ı altında
ServiceFabric/managedclusters/clustername
, oluşturduğunuz düğüm türlerini arayınNodeTypes
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.