Aracılığıyla paylaş


Yalnızca durum bilgisi olmayan düğüm türleriyle Azure Service Fabric kümesi dağıtma

Service Fabric düğüm türleri, belirli bir noktada durum bilgisi olan hizmetlerin düğümlere yerleştirilebileceği varsayımıyla birlikte gelir. Durum bilgisi olmayan düğüm türleri bir düğüm türü için bu varsayımı değiştirerek düğüm türünün daha hızlı genişletme işlemleri, Bronz dayanıklılıkta Otomatik İşletim Sistemi Yükseltmeleri desteği ve tek bir sanal makine ölçek kümesinde 100'den fazla düğüme genişletme gibi diğer özellikleri kullanmasına olanak sağlar.

  • Birincil düğüm türleri durum bilgisi olmayan olarak yapılandırılamaz
  • Durum bilgisi olmayan düğüm türleri yalnızca Bronz Dayanıklılık Düzeyleri ile desteklenir
  • Durum bilgisi olmayan düğüm türleri yalnızca Service Fabric Çalışma Zamanı sürüm 7.1.409 veya üzerinde desteklenir.

Örnek şablonlar kullanılabilir: Service Fabric Durum Bilgisi Olmayan Düğüm Türleri şablonu

Service Fabric kümesinde durum bilgisi olmayan düğüm türlerini etkinleştirme

Bir küme kaynağında bir veya daha fazla düğüm türünü durum bilgisi olmayan olarak ayarlamak için isStateless özelliğini true olarak ayarlayın. Durum bilgisi olmayan düğüm türlerine sahip bir Service Fabric kümesi dağıtırken, küme kaynağında en az bir birincil düğüm türü olduğunu unutmayın.

  • Service Fabric kümesi kaynak apiVersion"2020-12-01-preview" veya üzeri olmalıdır.
{
    "nodeTypes": [
    {
        "name": "[parameters('vmNodeType0Name')]",
        "applicationPorts": {
            "endPort": "[parameters('nt0applicationEndPort')]",
            "startPort": "[parameters('nt0applicationStartPort')]"
        },
        "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]",
        "durabilityLevel": "Silver",
        "ephemeralPorts": {
            "endPort": "[parameters('nt0ephemeralEndPort')]",
            "startPort": "[parameters('nt0ephemeralStartPort')]"
        },
        "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]",
        "isPrimary": true,
        "isStateless": false, // Primary Node Types cannot be stateless
        "vmInstanceCount": "[parameters('nt0InstanceCount')]"
    },
    {
        "name": "[parameters('vmNodeType1Name')]",
        "applicationPorts": {
            "endPort": "[parameters('nt1applicationEndPort')]",
            "startPort": "[parameters('nt1applicationStartPort')]"
        },
        "clientConnectionEndpointPort": "[parameters('nt1fabricTcpGatewayPort')]",
        "durabilityLevel": "Bronze",
        "ephemeralPorts": {
            "endPort": "[parameters('nt1ephemeralEndPort')]",
            "startPort": "[parameters('nt1ephemeralStartPort')]"
        },
        "httpGatewayEndpointPort": "[parameters('nt1fabricHttpGatewayPort')]",
        "isPrimary": false,
        "isStateless": true,
        "vmInstanceCount": "[parameters('nt1InstanceCount')]"
    }    
    ],
}

Durum bilgisi olmayan düğüm türleri için sanal makine ölçek kümesini yapılandırma

Durum bilgisi olmayan düğüm türlerini etkinleştirmek için, temel alınan sanal makine ölçek kümesi kaynağını aşağıdaki şekilde yapılandırmanız gerekir:

  • 100'den fazla VM'ye ölçeklendirmeniz gerekiyorsa false olarak ayarlanması gereken singlePlacementGroup değeri özelliği.
  • Ölçek kümesinin upgradePolicy değerinin Rolling olarak ayarlanması gerekir.
  • Sıralı Yükseltme Modu, Uygulama Durumu Uzantısı'nın veya Sistem Durumu yoklamalarının yapılandırılmasını gerektirir. Sistem durumu yoklamalarını veya uygulama sistem durumu uzantısını yapılandırma hakkında daha fazla bilgi için bu belgeyi inceleyin. Durum yoklamasını aşağıda önerilen Şekilde Durum Bilgisi Olmayan Düğüm türleri için varsayılan yapılandırmayla yapılandırın. Uygulamalar düğüm türüne dağıtıldıktan sonra Sistem Durumu Yoklaması/Sistem Durumu uzantısı bağlantı noktaları gerçek uygulama durumunu izlemek için değiştirilebilir.

Not

Durum Bilgisi Olmayan düğüm türleriyle Otomatik Ölçeklendirme kullanılırken, ölçeği azaltma işleminden sonra düğüm durumu otomatik olarak temizlenmez. Otomatik Ölçeklendirme sırasında Aşağı Düğümlerin NodeState'ini temizlemek için Service Fabric Otomatik Ölçeklendirme Yardımcısı'nın kullanılması önerilir.

{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.Compute/virtualMachineScaleSets",
    "name": "[parameters('vmNodeType1Name')]",
    "location": "[parameters('computeLocation')]",
    "properties": {
        "overprovision": "[variables('overProvision')]",
        "upgradePolicy": {
          "mode": "Rolling",
          "automaticOSUpgradePolicy": {
            "enableAutomaticOSUpgrade": true
          }
        },
        "platformFaultDomainCount": 5
    },
    "virtualMachineProfile": {
    "extensionProfile": {
    "extensions": [
    {
    "name": "[concat(parameters('vmNodeType1Name'),'_ServiceFabricNode')]",
    "properties": {
        "type": "ServiceFabricNode",
        "autoUpgradeMinorVersion": false,
        "publisher": "Microsoft.Azure.ServiceFabric",
        "settings": {
            "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
            "nodeTypeRef": "[parameters('vmNodeType1Name')]",
            "dataPath": "D:\\\\SvcFab",
            "durabilityLevel": "Bronze",
            "certificate": {
                "thumbprint": "[parameters('certificateThumbprint')]",
                "x509StoreName": "[parameters('certificateStoreValue')]"
            },
            "systemLogUploadSettings": {
                "Enabled": true
            },
        },
        "typeHandlerVersion": "1.1"
    }
    },
    {
        "type": "extensions",
        "name": "HealthExtension",
        "properties": {
            "publisher": "Microsoft.ManagedServices",
            "type": "ApplicationHealthWindows",
            "autoUpgradeMinorVersion": true,
            "typeHandlerVersion": "1.0",
            "settings": {
            "protocol": "tcp",
            "port": "19000"
            }
            }
        },
    ]
}

Durum Bilgisi Olmayan düğüm türlerini birden çok Kullanılabilirlik Alanları yapılandırma

Birden çok kullanılabilirlik alanına yayılan Durum bilgisi olmayan düğüm türünü yapılandırmak için aşağıdaki birkaç değişikliğin yanı sıra buradaki belgeleri izleyin:

  • Çoklu yerleştirme gruplarının etkinleştirilmesi gerekiyorsa singlePlacementGroup : false değerini ayarlayın.
  • upgradePolicy'yi ayarlayın: Yukarıda belirtildiği gibi Uygulama Durumu Uzantısı/Sistem Durumu Yoklamalarını sıralayıp ekleyin.
  • PlatformFaultDomainCount ayarlayın: Sanal makine ölçek kümesi için 5.

Başvuru için Durum bilgisi olmayan düğüm türlerini birden çok Kullanılabilirlik Alanları yapılandırma şablonuna bakın

Ağ gereksinimleri

Genel IP ve Load Balancer Kaynağı

Bir sanal makine ölçek kümesi kaynağında 100'den fazla VM'ye ölçeklendirmeyi etkinleştirmek için, bu sanal makine ölçek kümesi tarafından başvurulan yük dengeleyici ve IP kaynağının her ikisi de Standart SKU kullanıyor olmalıdır. SKU özelliği olmadan yük dengeleyici veya IP kaynağı oluşturmak, 100'den fazla VM'ye ölçeklendirmeyi desteklemeyen bir Temel SKU oluşturur. Standart SKU yük dengeleyici varsayılan olarak dışarıdan gelen tüm trafiği engeller; dış trafiğe izin vermek için alt ağa bir NSG dağıtılmalıdır.

{
    "apiVersion": "2018-11-01",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[concat('LB','-', parameters('clusterName')]",
    "location": "[parameters('computeLocation')]",
    "sku": {
        "name": "Standard"
    }
}
{
    "apiVersion": "2018-11-01",
    "type": "Microsoft.Network/loadBalancers",
    "name": "[concat('LB','-', parameters('clusterName')]", 
    "location": "[parameters('computeLocation')]",
    "dependsOn": [
        "[concat('Microsoft.Network/networkSecurityGroups/', concat('nsg', parameters('subnet0Name')))]"
    ],
    "properties": {
        "addressSpace": {
            "addressPrefixes": [
                "[parameters('addressPrefix')]"
            ]
        },
        "subnets": [
        {
            "name": "[parameters('subnet0Name')]",
            "properties": {
                "addressPrefix": "[parameters('subnet0Prefix')]",
                "networkSecurityGroup": {
                "id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat('nsg', parameters('subnet0Name')))]"
              }
            }
          }
        ]
    },
    "sku": {
        "name": "Standard"
    }
}

Not

Genel IP ve yük dengeleyici kaynaklarında yerinde SKU değişikliği yapmak mümkün değildir.

Sanal makine ölçek kümesi NAT kuralları

Yük dengeleyici gelen NAT kuralları, sanal makine ölçek kümesindeki NAT havuzları ile eşleşmelidir. Her sanal makine ölçek kümesinin benzersiz bir gelen NAT havuzu olmalıdır.

{
"inboundNatPools": [
    {
        "name": "LoadBalancerBEAddressNatPool0",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "50999",
            "frontendPortRangeStart": "50000",
            "protocol": "tcp"
        }
    },
    {
        "name": "LoadBalancerBEAddressNatPool1",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "51999",
            "frontendPortRangeStart": "51000",
            "protocol": "tcp"
        }
    },
    {
        "name": "LoadBalancerBEAddressNatPool2",
        "properties": {
            "backendPort": "3389",
            "frontendIPConfiguration": {
                "id": "[variables('lbIPConfig0')]"
            },
            "frontendPortRangeEnd": "52999",
            "frontendPortRangeStart": "52000",
            "protocol": "tcp"
        }
    }
    ]
}

Standart SKU Load Balancer giden kuralları

Standart Load Balancer ve Standart Genel IP, Temel SKU'ları kullanmaya kıyasla giden bağlantıya yeni yetenekler ve farklı davranışlar getirir. Standart SKU'larla çalışırken giden bağlantı istiyorsanız, bunu Standart Genel IP adresleriyle veya Standart genel Load Balancer ile açıkça tanımlamanız gerekir. Daha fazla bilgi için bkz. Giden bağlantılar ve Azure Standart Load Balancer.

Not

Standart şablon, varsayılan olarak tüm giden trafiğe izin veren bir NSG'ye başvurur. Gelen trafik, Service Fabric yönetim işlemleri için gereken bağlantı noktalarıyla sınırlıdır. NSG kuralları gereksinimlerinizi karşılayacak şekilde değiştirilebilir.

Not

Standart SKU SLB kullanan tüm Service Fabric kümelerinin, her düğüm türünün 443 numaralı bağlantı noktasında giden trafiğe izin veren bir kuralı olduğundan emin olması gerekir. Bu, küme kurulumunu tamamlamak için gereklidir ve böyle bir kural olmadan yapılan tüm dağıtımlar başarısız olur.

Kümede Durum Bilgisi Olmayan düğüm türlerini kullanmaya geçiş

Tüm geçiş senaryoları için yeni bir durum bilgisi olmayan yalnızca düğüm türü eklenmelidir. Mevcut düğüm türü yalnızca durum bilgisi olmayan olarak geçirilemez.

Temel bir SKU ile Load Balancer ve IP kullanan bir kümeyi geçirmek için öncelikle standart SKU'yu kullanarak tamamen yeni bir Load Balancer ve IP kaynağı oluşturmanız gerekir. Bu kaynakları yerinde güncelleştirmek mümkün değildir.

Yeni LB ve IP'ye, kullanmak istediğiniz yeni Durum Bilgisi Olmayan düğüm türlerinde başvurulmalıdır. Yukarıdaki örnekte, Durum Bilgisi Olmayan düğüm türleri için kullanılacak yeni bir sanal makine ölçek kümesi kaynakları eklenmiştir. Bu sanal makine ölçek kümeleri yeni oluşturulan LB ve IP'ye başvurur ve Service Fabric Küme Kaynağında durum bilgisi olmayan düğüm türleri olarak işaretlenir.

Başlamak için yeni kaynakları mevcut Resource Manager şablonunuza eklemeniz gerekir. Bu kaynaklar şunlardır:

  • Standart SKU kullanan bir Genel IP Kaynağı.
  • Standart SKU kullanan bir Load Balancer Kaynağı.
  • Sanal makine ölçek kümelerinizi dağıttığınız alt ağ tarafından başvurulan bir NSG.

Kaynakların dağıtımı tamamlandıktan sonra, özgün kümeden kaldırmak istediğiniz düğüm türündeki düğümleri devre dışı bırakmaya başlayabilirsiniz.

Sonraki adımlar