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

  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 ş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
    
  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ı ö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.

  1. Azure Kaynak Gezgini'ne gidin

  2. 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:

    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ı bir ölçeği genişletme ve ölçeklendirme 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 şunlardır:

  • Yönetilen kümelere karşı tetiklenen otomatik ölçeklendirme olaylarını gözden geçirin ikincil düğüm türleri

    1. Küme Etkinlik günlüğüne gidin
    2. 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ındaServiceFabric/managedclusters/clustername, oluşturduğunuz düğüm türlerini arayın NodeTypes 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