Share via


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 ve NT2 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.

  1. Bölgede kaynak grubu oluşturma

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. 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
    
  3. İ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.

  1. Azure Kaynak Gezgini'ne gidin

  2. subscriptions - -SubscriptionName> ->microsoft.insightsresource 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:

    Azure Kaynak Gezgini örnek ağaç görünümü

  3. 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.

    Azure Kaynak Gezgini örnek düğüm türü otomatik ölçeklendirme ayrıntıları

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

    1. Küme Etkinlik günlüğüne gitme
    2. 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ğunu SucceededdoğrulayınprovisioningState. Ardından altında Microsoft.Insights kaynak sağlayıcısına clustername 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.

Sonraki adımlar