Aracılığıyla paylaş


Azure Service Fabric kümesini Kullanılabilirlik Alanları dağıtma

Azure'da Kullanılabilirlik Alanları, uygulamalarınızı ve verilerinizi veri merkezi hatalarına karşı koruyan yüksek kullanılabilirlik sunan bir tekliftir. Kullanılabilirlik Alanı, Azure bölgesinde bağımsız güç, soğutma ve ağ ile donatılmış benzersiz bir fiziksel konumdur.

Azure Service Fabric, Kullanılabilirlik Alanları yayılan kümeleri desteklemek için aşağıdaki makalede açıklandığı gibi iki yapılandırma yöntemi sağlar. Kullanılabilirlik Alanları yalnızca belirli bölgelerde kullanılabilir. Daha fazla bilgi için bkz. Kullanılabilirlik Alanları genel bakış.

Örnek şablonlar Service Fabric çapraz Kullanılabilirlik Alanı şablonlarında kullanılabilir.

Birincil düğüm türünü Kullanılabilirlik Alanları boyunca yayma topolojisi

Dekont

Birincil düğüm türünü kullanılabilirlik alanları arasında yayma avantajı yalnızca iki bölge için değil yalnızca üç bölgede görülür.

  • Küme güvenilirlik düzeyi olarak ayarlanır Platinum
  • Standart SKU kullanan tek bir genel IP kaynağı
  • Standart SKU kullanan tek bir yük dengeleyici kaynağı
  • Sanal makine ölçek kümelerinizi dağıttığınız alt ağ tarafından başvurulan bir ağ güvenlik grubu (NSG)

Dekont

Sanal makine ölçek kümesi tek yerleştirme grubu özelliği olarak trueayarlanmalıdır.

Aşağıdaki örnek düğüm listesi, bölgelere yayılan bir sanal makine ölçek kümesindeki FD/UD biçimlerini gösterir:

Screenshot that shows a sample node list of FD/UD formats in a virtual machine scale set spanning zones.

Hizmet çoğaltmalarının bölgeler arasında dağıtımı

Kullanılabilirlik Alanları yayılan düğüm türlerine bir hizmet dağıtıldığında, çoğaltmalar ayrı bölgelere indiklerinden emin olmak için yerleştirilir. Bu düğüm türlerinin her birindeki düğümlerdeki hata etki alanları bölge bilgileriyle (FD = fd:/zone1/1 vb.) yapılandırılır. Örneğin, beş çoğaltma veya hizmet örneği için dağıtım 2-2-1'dir ve çalışma zamanı bölgeler arasında eşit dağıtım sağlamaya çalışır.

Kullanıcı hizmeti çoğaltma yapılandırması

Kullanılabilirlik Alanları düğüm türlerine dağıtılan durum bilgisi olan kullanıcı hizmetleri şu şekilde yapılandırılmalıdır: hedefle çoğaltma sayısı = 9, min = 5. Bu yapılandırma, bir bölge kapatıldığında bile hizmetin çalışmasına yardımcı olur çünkü diğer iki bölgede altı çoğaltma hala çalışır durumda olur. Bu senaryoda bir uygulama yükseltmesi de başarılı olacaktır.

Küme GüvenilirliğiLevel

Bu değer, kümedeki çekirdek düğüm sayısını ve sistem hizmetlerinin çoğaltma boyutunu tanımlar. Alanlar arası Kullanılabilirlik Alanı kurulumu, bölge dayanıklılığını sağlamak için bölgelere yayılan daha fazla sayıda düğüme sahiptir.

Daha yüksek ReliabilityLevel bir değer, daha fazla çekirdek düğüm ve sistem hizmeti çoğaltmasının mevcut olmasını ve bölgeler arasında eşit bir şekilde dağıtılmasını sağlar, böylece bir bölge başarısız olursa küme ve sistem hizmetleri etkilenmez. ReliabilityLevel = Platinum (önerilen) kümedeki bölgelere yayılmış dokuz çekirdek düğümü olduğundan ve her bölgede üç tohum olduğundan emin olur.

Bölge azaltma senaryosu

Bir bölge kapatıldığında, o bölgenin tüm düğümleri ve hizmet çoğaltmaları aşağı olarak görünür. Diğer bölgelerde çoğaltmalar olduğundan hizmet yanıt vermeye devam eder. Birincil çoğaltmalar, işlev bölgelerine yük devreder. Hedef çoğaltma sayısı henüz elde edilmediğinden ve sanal makine (VM) sayısı hala en düşük hedef çoğaltma boyutundan yüksek olduğundan hizmetler uyarı durumlarında görünüyor.

Service Fabric yük dengeleyici, çalışma alanlarındaki çoğaltmaları hedef çoğaltma sayısıyla eşleşecek şekilde getirir. Bu noktada hizmetler iyi durumda görünür. Kapanan bölge geri geldiğinde yük dengeleyici tüm hizmet çoğaltmalarını bölgelere eşit olarak yayar.

Yaklaşan İyileştirmeler

  • Service Fabric, güvenilir altyapı güncelleştirmeleri sağlamak için sanal makine ölçek kümesinin dayanıklılığının en az Silver olarak ayarlanmasını gerektirir. Bu, temel alınan sanal makine ölçek kümesinin ve Service Fabric çalışma zamanının güvenilir güncelleştirmeler sağlamasına olanak tanır. Bu, her bölgenin en az 5 VM'ye sahip olmasını da gerektirir. Bu gereksinimi sırasıyla birincil ve birincil olmayan düğüm türleri için bölge başına 3 ve 2 VM'ye düşürmeye çalışıyoruz.
  • Aşağıdaki yapılandırmaların ve yaklaşan çalışmaların tümü, yeni nodeType'lar ekleyerek ve eskileri kullanımdan kaldırarak yeni yapılandırmayı kullanmak üzere aynı kümenin yükseltilebileceği müşterilere yerinde geçiş sağlar.

Ağ gereksinimleri

Genel IP ve yük dengeleyici kaynağı

Özelliği bir sanal makine ölçek kümesi kaynağında etkinleştirmek zones için yük dengeleyicinin ve bu sanal makine ölçek kümesi tarafından başvuruda bulunan IP kaynağının her ikisi de Standart SKU kullanmalıdır. SKU özelliği olmadan yük dengeleyici veya IP kaynağı oluşturmak, Kullanılabilirlik Alanları 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ın.

{
  "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"
  }
}

Dekont

Genel IP ve yük dengeleyici kaynaklarında yerinde SKU değişikliği yapmak mümkün değildir. Temel SKU'su olan mevcut kaynaklardan geçiş gerçekleştiriyorsanız, bu makalenin geçiş bölümüne bakın.

Sanal makine ölçek kümeleri için NAT kuralları

Yük dengeleyici için gelen ağ adresi çevirisi (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 yük dengeleyici için giden kuralları

Standart SKU yük dengeleyici ve genel IP, Temel SKU'ları kullanmaya kıyasla giden bağlantı için yeni yetenekler ve farklı davranışlar sağlar. Standart SKU'larla çalışırken giden bağlantı istiyorsanız, bunu standart SKU genel IP adresleri veya Standart SKU yük dengeleyici ile açıkça tanımlamanız gerekir. Daha fazla bilgi için bkz . Giden bağlantılar ve Azure Load Balancer nedir?.

Dekont

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.

Önemli

Standart SKU yük dengeleyici kullanan bir Service Fabric kümesindeki her düğüm türü, 443 numaralı bağlantı noktasında giden trafiğe izin veren bir kural gerektirir. Küme kurulumunu tamamlamak için bu gereklidir. Bu kural olmadan tüm dağıtımlar başarısız olur.

1. Tek sanal makine ölçek kümesinde birden çok Kullanılabilirlik Alanları etkinleştirme

Bu çözüm, kullanıcıların aynı düğüm türünde üç Kullanılabilirlik Alanları yaymasını sağlar. Bu, tek bir sanal makine ölçek kümesini korurken kullanılabilirlik alanları arasında dağıtım yapmanızı sağladığından önerilen dağıtım topolojisidir..

GitHub'da tam bir örnek şablon mevcuttur.

Diagram of the Azure Service Fabric Availability Zone architecture.

Sanal makine ölçek kümesinde bölgeleri yapılandırma

Bir sanal makine ölçek kümesinde bölgeleri etkinleştirmek için, sanal makine ölçek kümesi kaynağına aşağıdaki üç değeri ekleyin:

  • İlk değerzones, sanal makine ölçek kümesindeki Kullanılabilirlik Alanları belirten özelliğidir.

  • İkinci değer, olarak ayarlanması truegereken özelliğidirsinglePlacementGroup. Üç Kullanılabilirlik Alanları yayılan ölçek kümesi ile singlePlacementGroup = truebile 300 VM'ye kadar ölçeklendirilebilir.

  • Üçüncü değer ise katı bölge dengelemesi sağlayan değeridir zoneBalance. Bu değer olmalıdır true. Bu, bölgeler arasındaki VM dağıtımlarının dengesiz olmamasını sağlar; bu da bir bölge kapatıldığında diğer iki bölgenin kümeyi çalışır durumda tutmak için yeterli VM'ye sahip olduğu anlamına gelir.

    Vm dağıtımı dengesiz olan bir küme, vm'lerin çoğunluğuna sahip olabileceğinden bölge azaltma senaryosunda hayatta kalamayabilir. Bölgeler arasında dengesiz VM dağıtımı, hizmet yerleştirme sorunlarına ve altyapı güncelleştirmelerinin takılmasına da yol açar. zoneBalancing hakkında daha fazla bilgi edinin.

ve UpgradeDomain geçersiz kılmalarını yapılandırmanız FaultDomain gerekmez.

{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "name": "[parameters('vmNodeType1Name')]",
  "location": "[parameters('computeLocation')]",
  "zones": [ "1", "2", "3" ],
  "properties": {
    "singlePlacementGroup": true,
    "zoneBalance": true
  }
}

Dekont

  • Service Fabric kümelerinin en az bir birincil düğüm türü olmalıdır. Birincil düğüm türlerinin dayanıklılık düzeyi Silver veya üzeri olmalıdır.
  • Dayanıklılık düzeyi ne olursa olsun, sanal makine ölçek kümesini kapsayan bir Kullanılabilirlik Alanı en az üç Kullanılabilirlik Alanları ile yapılandırılmalıdır.
  • Silver veya daha yüksek dayanıklılığa sahip sanal makine ölçek kümesini kapsayan bir Kullanılabilirlik Alanı en az 15 VM'ye (bölge başına 5) sahip olmalıdır.
  • Bronz dayanıklılığa sahip sanal makine ölçek kümesini kapsayan Bir Kullanılabilirlik Bölgesi en az altı VM'ye sahip olmalıdır.

Service Fabric düğüm türünde birden çok bölge için desteği etkinleştirme

Birden çok Kullanılabilirlik Alanları desteklemek için Service Fabric düğüm türünün etkinleştirilmesi gerekir.

  • İlk değer, düğüm türü için olarak ayarlanması true gereken değeridirmultipleAvailabilityZones.

  • İkinci değer ve sfZonalUpgradeMode isteğe bağlıdır. Kümede birden çok Kullanılabilirlik Alanları sahip bir düğüm türü zaten varsa bu özellik değiştirilemez. Bu özellik, yükseltme etki alanlarındaki (UD) VM'lerin mantıksal gruplandırmalarını denetler.

    • Bu değer olarak ayarlanırsa Parallel: Düğüm türü altındaki VM'ler UD'ler halinde gruplandırılır ve beş UD'deki bölge bilgilerini yoksayar. Bu ayar, tüm bölgelerdeki kimliklerin aynı anda yükseltilmesine neden olur. Bu dağıtım modu yükseltmeler için daha hızlıdır, güncelleştirmelerin aynı anda bir bölgeye uygulanması gerektiğini belirten SDP yönergelerine aykırı olduğundan bunu önermiyoruz.
    • Bu değer atlanırsa veya olarak ayarlanırsa Hierarchical: VM'ler en fazla 15 UD'deki bölgesel dağılımı yansıtacak şekilde gruplandırılır. Üç bölgenin her biri beş UD'ye sahiptir. Bu, bölgelerin birer birer güncelleştirilmesini ve yalnızca ilk bölge içindeki beş UD'yi tamamladıktan sonra bir sonraki bölgeye geçmeyi sağlar. Bu güncelleştirme işlemi, küme ve kullanıcı uygulaması için daha güvenlidir.

    Bu özellik yalnızca Service Fabric uygulaması ve kod yükseltmeleri için yükseltme davranışını tanımlar. Temel alınan sanal makine ölçek kümesi yükseltmeleri hala tüm Kullanılabilirlik Alanları paraleldir. Bu özellik, birden çok bölgenin etkinleştirilmediği düğüm türleri için UD dağıtımını etkilemez.

  • Üçüncü değer isteğe vmssZonalUpgradeModebağlıdır ve her zaman güncelleştirilebilir. Bu özellik, sanal makine ölçek kümesinin Kullanılabilirlik Alanları paralel veya sıralı olarak gerçekleşmesi için yükseltme düzenini tanımlar.

    • Bu değer olarak ayarlanırsa Parallel: Tüm ölçek kümesi güncelleştirmeleri tüm bölgelerde paralel olarak gerçekleşir. Bu dağıtım modu yükseltmeler için daha hızlıdır, güncelleştirmelerin aynı anda bir bölgeye uygulanması gerektiğini belirten SDP yönergelerine aykırı olduğundan bunu önermiyoruz.
    • Bu değer atlanırsa veya olarak ayarlanırsa Hierarchical: Bu, bölgelerin birer birer güncelleştirilmesini ve yalnızca ilk bölge içindeki beş UD'yi tamamladıktan sonra sonraki bölgeye geçmeyi sağlar. Bu güncelleştirme işlemi, küme ve kullanıcı uygulaması için daha güvenlidir.

Önemli

Service Fabric kümesi kaynak API'sinin sürümü 2020-12-01-preview veya üzeri olmalıdır.

Küme kodu sürümü en az 8.1.321 veya üzeri olmalıdır.

{
  "apiVersion": "2020-12-01-preview",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]"
  ],
  "properties": {
    "reliabilityLevel": "Platinum",
    "sfZonalUpgradeMode": "Hierarchical",
    "vmssZonalUpgradeMode": "Parallel",
    "nodeTypes": [
      {
        "name": "[parameters('vmNodeType0Name')]",
        "multipleAvailabilityZones": true
      }
    ]
  }
}

Dekont

  • Genel IP ve yük dengeleyici kaynakları, makalenin önceki bölümlerinde açıklanan Standart SKU'yu kullanmalıdır.
  • multipleAvailabilityZones Düğüm türündeki özellik yalnızca düğüm türü oluşturulduğunda tanımlanabilir ve daha sonra değiştirilemez. Mevcut düğüm türleri bu özellik ile yapılandırılamaz.
  • atlandığında sfZonalUpgradeMode veya olarak Hierarchicalayarlandığında, kümede daha fazla yükseltme etki alanı olduğundan küme ve uygulama dağıtımları daha yavaş olacaktır. Yükseltme ilkesi zaman aşımlarını 15 yükseltme etki alanı için gereken yükseltme süresini hesaba eklemek üzere doğru şekilde ayarlamak önemlidir. Hem uygulama hem de küme için yükseltme ilkesi, dağıtımın 12 saatlik Azure Kaynak Hizmeti dağıtım süresi sınırını aşmadığından emin olmak için güncelleştirilmelidir. Bu, dağıtımın 15 UD için 12 saatten fazla sürmemesi gerektiği anlamına gelir (yani her UD için 40 dakikadan fazla sürmemelidir).
  • Kümenin tek bir bölge aşağı senaryosunda hayatta kalmasını sağlamak için küme güvenilirlik düzeyini Platinum olarak ayarlayın.
  • multipleAvailabilityZones ile bir nodetype için DurabilityLevel'in yükseltilmesi desteklenmez. Lütfen bunun yerine daha yüksek dayanıklılığa sahip yeni bir düğüm türü oluşturun.
  • SF yalnızca 3 AvailabilityZone'yi destekler. Daha yüksek bir sayı şu anda desteklenmiyor.

Bahşiş

Ayarının ayarlanmasını sfZonalUpgradeModeHierarchical veya atlanması önerilir. Dağıtım, VM'lerin bölgesel dağılımını izler ve daha az miktarda çoğaltmayı veya örneği etkileyerek daha güvenli hale getirir. sfZonalUpgradeMode Dağıtım hızı öncelikliyse veya birden çok Kullanılabilirlik Alanları olan düğüm türünde yalnızca durum bilgisi olmayan iş yükleri çalıştırılıyorsa olarak ayarlayınParallel. Bu, UD yürüyüşünü tüm Kullanılabilirlik Alanları paralel olarak gerçekleşmesine neden olur.

Birden çok Kullanılabilirlik Alanları ile düğüm türüne geçiş

Tüm geçiş senaryoları için, birden çok Kullanılabilirlik Alanları destekleyen yeni bir düğüm türü eklemeniz gerekir. Mevcut bir düğüm türü birden çok bölgeyi destekleyecek şekilde geçirilemiyor. Service Fabric kümesi birincil düğüm türü ölçeğini artırma makalesi, yeni bir düğüm türü ve yeni düğüm türü için gereken IP ve yük dengeleyici kaynakları gibi diğer kaynakları eklemek için ayrıntılı adımlar içerir. Bu makalede ayrıca, kümeye birden çok Kullanılabilirlik Alanları içeren yeni bir düğüm türü eklendikten sonra mevcut düğüm türünün nasıl devre dışı bırakıldığı açıklanır.

  • Temel yük dengeleyici ve IP kaynaklarını kullanan bir düğüm türünden geçiş: Bu işlem, Kullanılabilirlik Alanı başına bir düğüm türü olan çözüm için aşağıdaki bir alt bölümde zaten açıklanmıştır.

    Yeni düğüm türü için tek fark, Kullanılabilirlik Alanı başına her biri yerine tüm Kullanılabilirlik Alanları için yalnızca bir sanal makine ölçek kümesi ve bir düğüm türü olmasıdır.

  • Standart SKU yük dengeleyici ve NSG ile IP kaynaklarını kullanan bir düğüm türünden geçiş: Daha önce açıklanan yordamı izleyin. Ancak yeni yük dengeleyici, IP ve NSG kaynakları eklemenize gerek yoktur. Aynı kaynaklar yeni düğüm türünde yeniden kullanılabilir.

2. Her bölgeye bir sanal makine ölçek kümesi sabitleyerek bölgeleri dağıtma

Bu, şu anda genel kullanıma sunulan yapılandırmadır. Service Fabric kümesini Kullanılabilirlik Alanları boyunca yaymak için, bölge tarafından desteklenen her Kullanılabilirlik Alanında bir birincil düğüm türü oluşturmanız gerekir. Bu, çekirdek düğümlerini birincil düğüm türlerinin her birine eşit olarak dağıtır.

Birincil düğüm türü için önerilen topoloji şunları gerektirir:

  • Birincil olarak işaretlenmiş üç düğüm türü
    • Her düğüm türü, farklı bir bölgede bulunan kendi sanal makine ölçek kümesine eşlenmelidir.
    • Her sanal makine ölçek kümesinin en az beş düğümü olmalıdır (Gümüş Dayanıklılık).

Aşağıdaki diyagramda Azure Service Fabric Kullanılabilirlik Alanı mimarisi gösterilmektedir:

Diagram that shows the Azure Service Fabric Availability Zone architecture.

Sanal makine ölçek kümesinde bölgeleri etkinleştirme

Bir sanal makine ölçek kümesinde bir bölgeyi etkinleştirmek için sanal makine ölçek kümesi kaynağına aşağıdaki üç değeri ekleyin:

  • İlk değer, sanal makine ölçek kümesinin zones dağıtıldığı Kullanılabilirlik Alanı'nı belirten özelliğidir.
  • İkinci değer, olarak ayarlanması truegereken özelliğidirsinglePlacementGroup.
  • Üçüncü değer, Service Fabric sanal makine ölçek kümesi uzantısındaki özelliğidir faultDomainOverride . Bu özellik yalnızca bu sanal makine ölçek kümesinin yerleştirileceği bölgeyi içermelidir. Örnek: "faultDomainOverride": "az1". Azure Service Fabric kümelerinin bölgeler arası desteği olmadığından tüm sanal makine ölçek kümesi kaynakları aynı bölgeye yerleştirilmelidir.
{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "name": "[parameters('vmNodeType1Name')]",
  "location": "[parameters('computeLocation')]",
  "zones": [
    "1"
  ],
  "properties": {
    "singlePlacementGroup": true
  },
  "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": "Silver",
              "certificate": {
                "thumbprint": "[parameters('certificateThumbprint')]",
                "x509StoreName": "[parameters('certificateStoreValue')]"
              },
              "systemLogUploadSettings": {
                "Enabled": true
              },
              "faultDomainOverride": "az1"
            },
            "typeHandlerVersion": "1.0"
          }
        }
      ]
    }
  }
}

Service Fabric küme kaynağında birden çok birincil düğüm türünü etkinleştirme

Küme kaynağında bir veya daha fazla düğüm türünü birincil olarak ayarlamak için özelliğini olarak trueayarlayınisPrimary. Bir Service Fabric kümesini Kullanılabilirlik Alanları dağıttığınızda, farklı bölgelerde üç düğüm türüne sahip olmanız gerekir.

{
  "reliabilityLevel": "Platinum",
  "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,
      "vmInstanceCount": "[parameters('nt0InstanceCount')]"
    },
    {
      "name": "[parameters('vmNodeType1Name')]",
      "applicationPorts": {
        "endPort": "[parameters('nt1applicationEndPort')]",
        "startPort": "[parameters('nt1applicationStartPort')]"
      },
      "clientConnectionEndpointPort": "[parameters('nt1fabricTcpGatewayPort')]",
      "durabilityLevel": "Silver",
      "ephemeralPorts": {
        "endPort": "[parameters('nt1ephemeralEndPort')]",
        "startPort": "[parameters('nt1ephemeralStartPort')]"
      },
      "httpGatewayEndpointPort": "[parameters('nt1fabricHttpGatewayPort')]",
      "isPrimary": true,
      "vmInstanceCount": "[parameters('nt1InstanceCount')]"
    },
    {
      "name": "[parameters('vmNodeType2Name')]",
      "applicationPorts": {
        "endPort": "[parameters('nt2applicationEndPort')]",
        "startPort": "[parameters('nt2applicationStartPort')]"
      },
      "clientConnectionEndpointPort": "[parameters('nt2fabricTcpGatewayPort')]",
      "durabilityLevel": "Silver",
      "ephemeralPorts": {
        "endPort": "[parameters('nt2ephemeralEndPort')]",
        "startPort": "[parameters('nt2ephemeralStartPort')]"
      },
      "httpGatewayEndpointPort": "[parameters('nt2fabricHttpGatewayPort')]",
      "isPrimary": true,
      "vmInstanceCount": "[parameters('nt2InstanceCount')]"
    }
  ]
}

Temel SKU yük dengeleyici ve Temel SKU IP'sini kullanarak kümeden Kullanılabilirlik Alanları geçiş

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

Kullanmak istediğiniz yeni çapraz Kullanılabilirlik Alanı düğüm türlerinde yeni yük dengeleyiciye ve IP'ye başvurun. Önceki örnekte, 1, 2 ve 3 bölgelerine üç yeni sanal makine ölçek kümesi kaynağı eklenmiştir. Bu sanal makine ölçek kümeleri yeni oluşturulan yük dengeleyiciye ve IP'ye başvurur ve Service Fabric küme kaynağında birincil düğüm türleri olarak işaretlenir.

  1. Başlamak için yeni kaynakları mevcut Azure Resource Manager şablonunuza ekleyin. Bu kaynaklar şunlardır:

    • Standart SKU kullanan genel IP kaynağı
    • Standart SKU kullanan yük dengeleyici kaynağı
    • Sanal makine ölçek kümelerinizi dağıttığınız alt ağ tarafından başvurulan bir NSG
    • Birincil olarak işaretlenmiş üç düğüm türü
      • Her düğüm türü, farklı bir bölgede bulunan kendi sanal makine ölçek kümesine eşlenmelidir.
      • Her sanal makine ölçek kümesinin en az beş düğümü olmalıdır (Gümüş Dayanıklılık).

    Örnek şablonda bu kaynaklara bir örnek bulunabilir.

    New-AzureRmResourceGroupDeployment `
        -ResourceGroupName $ResourceGroupName `
        -TemplateFile $Template `
        -TemplateParameterFile $Parameters
    
  2. Kaynakların dağıtımı tamamlandığında, birincil düğüm türündeki düğümleri özgün kümeden devre dışı bırakabilirsiniz. Düğümler devre dışı bırakıldığında, sistem hizmetleri daha önce dağıttığınız yeni birincil düğüm türüne geçirilir.

    Connect-ServiceFabricCluster -ConnectionEndpoint $ClusterName `
        -KeepAliveIntervalInSec 10 `
        -X509Credential `
        -ServerCertThumbprint $thumb  `
        -FindType FindByThumbprint `
        -FindValue $thumb `
        -StoreLocation CurrentUser `
        -StoreName My 
    
    Write-Host "Connected to cluster"
    
    $nodeNames = @("_nt0_0", "_nt0_1", "_nt0_2", "_nt0_3", "_nt0_4")
    
    Write-Host "Disabling nodes..."
    foreach($name in $nodeNames) {
        Disable-ServiceFabricNode -NodeName $name -Intent RemoveNode -Force
    }
    
  3. Düğümlerin tümü devre dışı bırakıldıktan sonra sistem hizmetleri bölgelere yayılan birincil düğüm türünde çalışır. Ardından devre dışı bırakılan düğümleri kümeden kaldırabilirsiniz. Düğümler kaldırıldıktan sonra özgün IP, yük dengeleyici ve sanal makine ölçek kümesi kaynaklarını kaldırabilirsiniz.

    foreach($name in $nodeNames){
        # Remove the node from the cluster
        Remove-ServiceFabricNodeState -NodeName $name -TimeoutSec 300 -Force
        Write-Host "Removed node state for node $name"
    }
    
    $scaleSetName="nt0"
    Remove-AzureRmVmss -ResourceGroupName $groupname -VMScaleSetName $scaleSetName -Force
    
    $lbname="LB-cluster-nt0"
    $oldPublicIpName="LBIP-cluster-0"
    $newPublicIpName="LBIP-cluster-1"
    
    Remove-AzureRmLoadBalancer -Name $lbname -ResourceGroupName $groupname -Force
    Remove-AzureRmPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname -Force
    
  4. Ardından, dağıttığınız Resource Manager şablonundan bu kaynaklara yapılan başvuruları kaldırın.

  5. Son olarak, DNS adını ve genel IP'yi güncelleştirin.

$oldprimaryPublicIP = Get-AzureRmPublicIpAddress -Name $oldPublicIpName  -ResourceGroupName $groupname
$primaryDNSName = $oldprimaryPublicIP.DnsSettings.DomainNameLabel
$primaryDNSFqdn = $oldprimaryPublicIP.DnsSettings.Fqdn

Remove-AzureRmLoadBalancer -Name $lbname -ResourceGroupName $groupname -Force
Remove-AzureRmPublicIpAddress -Name $oldPublicIpName -ResourceGroupName $groupname -Force

$PublicIP = Get-AzureRmPublicIpAddress -Name $newPublicIpName  -ResourceGroupName $groupname
$PublicIP.DnsSettings.DomainNameLabel = $primaryDNSName
$PublicIP.DnsSettings.Fqdn = $primaryDNSFqdn
Set-AzureRmPublicIpAddress -PublicIpAddress $PublicIP