Azure Service Fabric-fürt üzembe helyezése rendelkezésre állási zónákban

Az Azure rendelkezésre állási zónái olyan magas rendelkezésre állású ajánlatok, amelyek megvédik az alkalmazásokat és az adatokat az adatközpontok hibáitól. A rendelkezésre állási zóna egy egyedi fizikai hely, amely független energiaellátással, hűtéssel és hálózatkezeléssel rendelkezik egy Azure-régióban.

A rendelkezésre állási zónákra kiterjedő fürtök támogatásához az Azure Service Fabric az alábbi cikkben ismertetett két konfigurációs módszert kínálja. A rendelkezésre állási zónák csak bizonyos régiókban érhetők el. További információkért tekintse meg a rendelkezésre állási zónák áttekintését.

Mintasablonok érhetők el a Service Fabric rendelkezésre állási zónák közötti sablonjaiban.

Topológia az elsődleges csomóponttípus rendelkezésre állási zónák közötti átnyúlására

Megjegyzés:

Az elsődleges csomóponttípus rendelkezésre állási zónák közötti átfedésének előnye valójában csak három zónára vonatkozik, és nem csak kettőre.

  • A fürt megbízhatósági szintje a következőre van állítva: Platinum
  • Egyetlen nyilvános IP-erőforrás standard termékváltozat használatával
  • Egyetlen terheléselosztó-erőforrás standard termékváltozat használatával
  • Az alhálózat által hivatkozott hálózati biztonsági csoport (NSG), amelyben üzembe helyezi a virtuálisgép-méretezési csoportokat

Megjegyzés:

A virtuálisgép-méretezési csoport egyetlen elhelyezési csoport tulajdonságának a következőre kell állítania: true.

A következő csomópontlista az FD/UD formátumokat mutatja be egy zónákon átívelő virtuálisgép-méretezési csoportban:

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

Szolgáltatásreplikák elosztása zónák között

Ha a rendelkezésre állási zónákra kiterjedő csomóponttípusokon üzembe helyeznek egy szolgáltatást, a replikák úgy lesznek elhelyezve, hogy külön zónákba kerüljenek. Az egyes csomóponttípusok csomópontjainak tartalék tartományai zónainformációkkal vannak konfigurálva (azaz FD = fd:/zone1/1 stb.). Például öt replika vagy szolgáltatáspéldány esetében a eloszlás 2-2-1, a futtatókörnyezet pedig megpróbálja biztosítani a zónák közötti egyenlő eloszlást.

Felhasználói szolgáltatás replikakonfigurációja

A rendelkezésre állási zónák csomóponttípusán üzembe helyezett állapotalapú felhasználói szolgáltatásokat a következőképpen kell konfigurálni: replikaszám cél = 9, min = 5. Ez a konfiguráció akkor is segíti a szolgáltatást, ha az egyik zóna leáll, mert hat replika továbbra is a másik két zónában lesz felfelé. Ebben a forgatókönyvben az alkalmazásfrissítés is sikeres lesz.

Fürt megbízhatósági szintje

Ez az érték határozza meg a fürt magcsomópontjainak számát és a rendszerszolgáltatások replikaméretét. A rendelkezésre állási zónák közötti beállításnak nagyobb számú csomópontja van, amelyek a zónák között elosztva teszik lehetővé a zóna rugalmasságát.

A magasabb ReliabilityLevel érték biztosítja, hogy több magcsomópont és rendszerszolgáltatás-replika legyen jelen és egyenletesen elosztva a zónák között, így ha egy zóna meghibásodik, a fürt és a rendszerszolgáltatások nem lesznek hatással. ReliabilityLevel = Platinum (ajánlott) biztosítja, hogy kilenc magcsomópont legyen elosztva a fürt zónái között, mindegyik zónában három maggal.

Zónaletöltési forgatókönyv

Ha egy zóna lemegy, az adott zóna összes csomópontja és szolgáltatásreplikája lefelé jelenik meg. Mivel a többi zónában vannak replikák, a szolgáltatás továbbra is válaszol. Az elsődleges replikák feladatátvételt a működő zónákba. A szolgáltatások figyelmeztetési állapotban jelennek meg, mert a célreplikák száma még nem érhető el, és a virtuális gép (VM) száma még mindig magasabb a minimális célreplika-méretnél.

A Service Fabric terheléselosztó a munkazónák replikáit hozza létre, hogy megfeleljenek a célreplikák számának. Ezen a ponton a szolgáltatások kifogástalannak tűnnek. Amikor a leállt zóna visszakerül, a terheléselosztó egyenletesen elterjeszti az összes szolgáltatásreplikát a zónák között.

Közelgő optimalizálás

  • A megbízható infrastruktúra-frissítések biztosításához a Service Fabric megköveteli, hogy a virtuálisgép-méretezési csoport tartóssága legalább Silver értékre legyen állítva. Ez lehetővé teszi, hogy a mögöttes virtuálisgép-méretezési csoport és a Service Fabric-futtatókörnyezet megbízható frissítéseket biztosítson. Ehhez az is szükséges, hogy minden zónában legalább 5 virtuális gép legyen. Dolgozunk azon, hogy ezt a követelményt zónánként 3 és 2 virtuális gépre csökkentsük az elsődleges és nem elsődleges csomóponttípusok esetében.
  • Az alábbi konfigurációk és a közelgő munka során biztosítson helyszíni migrálást azokra az ügyfelekre, ahol ugyanaz a fürt frissíthető az új konfiguráció használatához új nodeTypes hozzáadásával és a régiek kivonásával.

Networking requirements

Nyilvános IP- és terheléselosztó erőforrás

A virtuálisgép-méretezési csoport erőforrásának tulajdonságának engedélyezéséhez zones a terheléselosztónak és a virtuálisgép-méretezési csoport által hivatkozott IP-erőforrásnak egyaránt standard termékváltozatot kell használnia. A termékváltozat tulajdonság nélkül létrehozott terheléselosztó vagy IP-erőforrás létrehoz egy alapszintű termékváltozatot, amely nem támogatja a rendelkezésre állási zónákat. A standard termékváltozatú terheléselosztó alapértelmezés szerint blokkolja a kívülről érkező összes forgalmat. A külső forgalom engedélyezéséhez helyezzen üzembe egy NSG-t az alhálózaton.

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

Megjegyzés:

A nyilvános IP- és terheléselosztó-erőforrásokon nem végezhető el a termékváltozat helyben történő módosítása. Ha alapszintű termékváltozatot tartalmazó meglévő erőforrásokról migrál, tekintse meg a cikk migrálási szakaszát.

NAT-szabályok virtuálisgép-méretezési csoportokhoz

A terheléselosztó bejövő hálózati címfordítási (NAT) szabályainak meg kell egyeznie a virtuálisgép-méretezési csoport NAT-készleteinek. Minden virtuálisgép-méretezési csoportnak egyedi bejövő NAT-készlettel kell rendelkeznie.

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

Standard termékváltozatú terheléselosztó kimenő szabályai

A standard termékváltozat terheléselosztója és a nyilvános IP-cím új képességeket és különböző viselkedéseket vezet be a kimenő kapcsolatokhoz az alapszintű termékváltozatokhoz képest. Ha a standard termékváltozatokkal való munka során kimenő kapcsolatot szeretne, explicit módon meg kell határoznia azt egy standard termékváltozat nyilvános IP-címeivel vagy egy standard termékváltozat terheléselosztójával. További információ: Kimenő kapcsolatok és mi az Azure Load Balancer?

Megjegyzés:

A standard sablon egy NSG-re hivatkozik, amely alapértelmezés szerint minden kimenő forgalmat engedélyez. A bejövő forgalom a Service Fabric felügyeleti műveleteihez szükséges portokra korlátozódik. Az NSG-szabályok a követelményeknek megfelelően módosíthatók.

Fontos

A Standard termékváltozatú terheléselosztót használó Service Fabric-fürtök minden csomóponttípusához szükség van egy olyan szabályra, amely engedélyezi a kimenő forgalmat a 443-es porton. Ez a fürt beállításának befejezéséhez szükséges. A szabály nélküli üzembe helyezés sikertelen lesz.

1. Több rendelkezésre állási zóna engedélyezése egyetlen virtuálisgép-méretezési csoportban

Ez a megoldás lehetővé teszi, hogy a felhasználók három rendelkezésre állási zónát fedjenek le ugyanabban a csomóponttípusban. Ez az ajánlott üzembehelyezési topológia, mivel lehetővé teszi a rendelkezésre állási zónák közötti üzembe helyezést egyetlen virtuálisgép-méretezési csoport fenntartása mellett.

A GitHubon teljes mintasablon érhető el.

Diagram of the Azure Service Fabric Availability Zone architecture.

Zónák konfigurálása virtuálisgép-méretezési csoportban

A virtuálisgép-méretezési csoportok zónáinak engedélyezéséhez adja meg a következő három értéket a virtuálisgép-méretezési csoport erőforrásában:

  • Az első érték a zones tulajdonság, amely meghatározza a virtuálisgép-méretezési csoportban lévő rendelkezésre állási zónákat.

  • A második érték a singlePlacementGroup tulajdonság, amelyet be kell állítani true. A három rendelkezésre állási zónára kiterjedő méretezési csoport akár 300 virtuális gépet is singlePlacementGroup = trueskálázhat.

  • A harmadik érték a zoneBalanceszigorú zónaelosztást biztosító érték. Ennek az értéknek kell lennie true. Ez biztosítja, hogy a virtuális gépek zónák közötti eloszlása ne legyen kiegyensúlyozatlan, ami azt jelenti, hogy amikor az egyik zóna lemegy, a másik két zóna elegendő virtuális géppel rendelkezik a fürt futtatásához.

    Előfordulhat, hogy egy kiegyensúlyozatlan virtuálisgép-disztribúcióval rendelkező fürt nem éli túl a zónaleállási forgatókönyvet, mert előfordulhat, hogy a zóna rendelkezik a virtuális gépek többségével. A virtuális gépek zónák közötti kiegyensúlyozatlan elosztása szolgáltatáselhelyezési problémákhoz és az infrastruktúra-frissítések elakadásához is vezet. További információ a zónaelosztásról.

Nem kell konfigurálnia a felülbírálásokat és UpgradeDomain a FaultDomain felülbírálásokat.

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

Megjegyzés:

  • A Service Fabric-fürtöknek legalább egy elsődleges csomóponttípussal kell rendelkezniük. Az elsődleges csomóponttípusok tartóssági szintjének ezüst vagy magasabbnak kell lennie.
  • A virtuálisgép-méretezési csoportra kiterjedő rendelkezésre állási zónát a tartóssági szinttől függetlenül legalább három rendelkezésre állási zónával kell konfigurálni.
  • A Silver vagy magasabb tartósságú virtuálisgép-méretezési csoportra kiterjedő rendelkezésre állási zónának legalább 15 virtuális géppel (régiónként 5) kell rendelkeznie.
  • A bronz tartósságú virtuálisgép-méretezési csoportra kiterjedő elérhetőségi zónának legalább hat virtuális géppel kell rendelkeznie.

Több zóna támogatásának engedélyezése a Service Fabric-csomóponttípusban

A Service Fabric-csomóponttípust engedélyezni kell több rendelkezésre állási zóna támogatásához.

  • Az első érték az multipleAvailabilityZones, amelyet a csomóponttípushoz kell beállítani true .

  • A második érték nem sfZonalUpgradeMode kötelező. Ez a tulajdonság nem módosítható, ha egy több rendelkezésre állási zónával rendelkező csomóponttípus már megtalálható a fürtben. Ez a tulajdonság szabályozza a virtuális gépek logikai csoportosítását a frissítési tartományokban (UD-kben).

    • Ha ez az érték a következőre Parallelvan állítva: A csomóponttípus alatti virtuális gépek UD-kbe vannak csoportosítva, és figyelmen kívül hagyják a zónaadatokat öt UD-ben. Ez a beállítás azt eredményezi, hogy az összes zóna azonosítói egyszerre frissülnek. Ez az üzembe helyezési mód gyorsabb a frissítésekhez, ezért nem javasoljuk, mert az SDP irányelveibe ütközik, amely szerint a frissítéseket egyszerre egy zónára kell alkalmazni.
    • Ha ez az érték nincs megadva, vagy a következő értékre Hierarchicalvan állítva: A virtuális gépek úgy vannak csoportosítva, hogy az legfeljebb 15 UD-ben tükrözze a zónaeloszlást. A három zóna mindegyike öt azonosítóval rendelkezik. Ez biztosítja, hogy a zónák egyenként frissüljenek, és csak az első zónán belüli öt UD elvégzése után lépjenek a következő zónába. Ez a frissítési folyamat biztonságosabb a fürt és a felhasználói alkalmazás számára.

    Ez a tulajdonság csak a Service Fabric-alkalmazások és a kódfrissítések frissítési viselkedését határozza meg. A mögöttes virtuálisgép-méretezési csoportok frissítései továbbra is párhuzamosak az összes rendelkezésre állási zónában. Ez a tulajdonság nem befolyásolja a több zónával nem rendelkező csomóponttípusok UD-eloszlását.

  • A harmadik érték vmssZonalUpgradeModenem kötelező, és bármikor frissíthető. Ez a tulajdonság határozza meg a virtuálisgép-méretezési csoport frissítési sémáját, hogy párhuzamosan vagy egymás után történjen a rendelkezésre állási zónák között.

    • Ha ez az érték a következőre Parallelvan állítva: Minden méretezési csoport frissítése párhuzamosan történik az összes zónában. Ez az üzembe helyezési mód gyorsabb a frissítésekhez, ezért nem javasoljuk, mert az SDP irányelveibe ütközik, amely szerint a frissítéseket egyszerre egy zónára kell alkalmazni.
    • Ha ez az érték nincs megadva, vagy a következő értékre Hierarchicalvan állítva: Ez biztosítja, hogy a zónák egyenként frissüljenek, és csak az első zónán belüli öt UD elvégzése után lépjen a következő zónába. Ez a frissítési folyamat biztonságosabb a fürt és a felhasználói alkalmazás számára.

Fontos

A Service Fabric-fürt erőforrás API-jának 2020-12-01-preview vagy újabb verziójának kell lennie.

A fürt kódverziójának a 8.1.321-es vagy újabb verziónak kell lennie.

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

Megjegyzés:

  • A nyilvános IP- és terheléselosztó-erőforrásoknak a cikkben korábban ismertetett standard termékváltozatot kell használniuk.
  • A multipleAvailabilityZones csomóponttípus tulajdonsága csak a csomóponttípus létrehozásakor határozható meg, és később nem módosítható. A meglévő csomóponttípusok nem konfigurálhatók ezzel a tulajdonsággal.
  • Ha sfZonalUpgradeMode nincs megadva vagy be van állítva Hierarchical, a fürt- és alkalmazástelepítések lassabbak lesznek, mert több frissítési tartomány található a fürtben. Fontos, hogy megfelelően módosítsa a frissítési szabályzat időtúllépéseit úgy, hogy figyelembe vegyék a 15 frissítési tartományhoz szükséges frissítési időt. Az alkalmazásra és a fürtre vonatkozó frissítési szabályzatot is frissíteni kell, hogy az üzembe helyezés ne haladja meg az Azure Resource Service 12 órás üzembehelyezési idejét. Ez azt jelenti, hogy az üzembe helyezésnek 15 UD-n keresztül nem szabad 12 óránál több időt igénybe vennie (azaz nem szabad 40 percnél több időt igénybe vennie az egyes UD-k esetében).
  • Állítsa be a fürt megbízhatósági szintjét Platinum , hogy a fürt túlélje az egy zónaleállási forgatókönyvet.
  • A tartóssági szint frissítése egy csomóponttípushoz a multipleAvailabilityZones használatával nem támogatott. Hozzon létre helyette egy új csomóponttípust, amely nagyobb tartósságot biztosít.
  • Az SF mindössze 3 rendelkezésre állási zónát támogat. A magasabb szám jelenleg nem támogatott.

Tipp.

Javasoljuk, hogy állítsa be sfZonalUpgradeMode vagy Hierarchical kihagyja azt. Az üzembe helyezés a virtuális gépek zonális eloszlását követi, és kisebb mennyiségű replikát vagy példányt érint, így biztonságosabbak lesznek. Ha sfZonalUpgradeMode az Parallel üzembe helyezés sebessége prioritás, vagy csak állapot nélküli számítási feladatok futnak a csomóponttípuson több rendelkezésre állási zónával. Ez azt eredményezi, hogy az UD-séta párhuzamosan történik az összes rendelkezésre állási zónában.

Áttelepítés több rendelkezésre állási zónával rendelkező csomóponttípusra

Minden migrálási forgatókönyv esetében hozzá kell adnia egy új csomóponttípust, amely több rendelkezésre állási zónát támogat. Egy meglévő csomóponttípus nem migrálható több zóna támogatására. A Service Fabric-fürt elsődleges csomóponttípusának vertikális felskálázása című cikk részletes lépéseket tartalmaz egy új csomóponttípus és az új csomóponttípushoz szükséges egyéb erőforrások, például az IP- és terheléselosztó-erőforrások hozzáadásához. Ez a cikk azt is ismerteti, hogyan lehet kivonni a meglévő csomóponttípust, miután egy új csomóponttípus több rendelkezésre állási zónával bővült a fürthöz.

  • Migrálás olyan csomóponttípusból, amely alapszintű terheléselosztót és IP-erőforrásokat használ: Ezt a folyamatot már az alábbi alszakasz ismerteti a rendelkezésre állási zónánként egy csomóponttípussal rendelkező megoldáshoz.

    Az új csomóponttípus esetében az egyetlen különbség az, hogy rendelkezésre állási zónánként csak egy virtuálisgép-méretezési csoport és egy csomóponttípus van az összes rendelkezésre állási zónához.

  • Migrálás a standard termékváltozat terheléselosztóját és IP-erőforrásait NSG-vel használó csomóponttípusból: Kövesse a korábban ismertetett eljárást. Azonban nincs szükség új terheléselosztó, IP- és NSG-erőforrások hozzáadására. Ugyanezek az erőforrások újra felhasználhatók az új csomóponttípusban.

2. Zónák üzembe helyezése az egyes zónákhoz egy virtuálisgép-méretezési csoport rögzítésével

Jelenleg ez az általánosan elérhető konfiguráció. A Service Fabric-fürtök rendelkezésre állási zónák közötti lefedéséhez létre kell hoznia egy elsődleges csomóponttípust a régió által támogatott rendelkezésre állási zónákban. Ez egyenletesen osztja el a magcsomópontokat az egyes elsődleges csomóponttípusok között.

Az elsődleges csomóponttípushoz ajánlott topológia a következőket igényli:

  • Három csomóponttípus elsődlegesként megjelölve
    • Minden csomóponttípust le kell képezni egy másik zónában található saját virtuálisgép-méretezési csoportra.
    • Minden virtuálisgép-méretezési csoportnak legalább öt csomópontot (Ezüst tartósság) kell rendelkeznie.

Az alábbi ábrán az Azure Service Fabric rendelkezésre állási zónájának architektúrája látható:

Diagram that shows the Azure Service Fabric Availability Zone architecture.

Zónák engedélyezése virtuálisgép-méretezési csoportban

Ha engedélyezni szeretne egy zónát egy virtuálisgép-méretezési csoportban, adja meg a következő három értéket a virtuálisgép-méretezési csoport erőforrásában:

  • Az első érték a zones tulajdonság, amely meghatározza, hogy a virtuálisgép-méretezési csoport mely rendelkezésre állási zónában legyen üzembe helyezve.
  • A második érték a singlePlacementGroup tulajdonság, amelyet be kell állítani true.
  • A harmadik érték a faultDomainOverride Service Fabric virtuálisgép-méretezési csoport bővítményének tulajdonsága. Ennek a tulajdonságnak csak azt a zónát kell tartalmaznia, amelyben a virtuálisgép-méretezési csoport el lesz helyezve. Example: "faultDomainOverride": "az1". A virtuálisgép-méretezési csoport összes erőforrását ugyanabba a régióba kell helyezni, mert az Azure Service Fabric-fürtök nem rendelkeznek régiók közötti támogatással.
{
  "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"
          }
        }
      ]
    }
  }
}

Több elsődleges csomóponttípus engedélyezése a Service Fabric-fürterőforrásban

Ha egy fürterőforrásban egy vagy több csomóponttípust szeretne elsődlegesként beállítani, állítsa a tulajdonságot a isPrimary következőre true: . Amikor Service Fabric-fürtöt helyez üzembe a rendelkezésre állási zónák között, három csomóponttípusnak kell lennie különböző zónákban.

{
  "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')]"
    }
  ]
}

Migrálás a rendelkezésre állási zónákba egy fürtből egy alapszintű termékváltozat terheléselosztójával és egy alapszintű termékváltozat IP-címével

Ha egy terheléselosztót és IP-címet használó fürtöt alapszintű termékváltozattal szeretne migrálni, először létre kell hoznia egy teljesen új terheléselosztót és IP-erőforrást a standard termékváltozat használatával. Ezeket az erőforrásokat nem lehet frissíteni.

Hivatkozzon az új terheléselosztóra és IP-címre a használni kívánt új rendelkezésre állási zóna csomóponttípusaiban. Az előző példában három új virtuálisgép-méretezési csoporterőforrás lett hozzáadva az 1., 2. és 3. zónához. Ezek a virtuálisgép-méretezési csoportok az újonnan létrehozott terheléselosztóra és IP-címre hivatkoznak, és elsődleges csomóponttípusként vannak megjelölve a Service Fabric-fürterőforrásban.

  1. Először adja hozzá az új erőforrásokat a meglévő Azure Resource Manager-sablonhoz. Ezek az erőforrások a következők:

    • Nyilvános IP-erőforrás standard termékváltozat használatával
    • Terheléselosztó-erőforrás standard termékváltozat használatával
    • A virtuálisgép-méretezési csoportok üzembe helyezéséhez használt alhálózat által hivatkozott NSG
    • Három csomóponttípus elsődlegesként megjelölve
      • Minden csomóponttípust le kell képezni egy másik zónában található saját virtuálisgép-méretezési csoportra.
      • Minden virtuálisgép-méretezési csoportnak legalább öt csomópontot (Ezüst tartósság) kell rendelkeznie.

    Ezekre az erőforrásokra példa található a mintasablonban.

    New-AzureRmResourceGroupDeployment `
        -ResourceGroupName $ResourceGroupName `
        -TemplateFile $Template `
        -TemplateParameterFile $Parameters
    
  2. Amikor az erőforrások üzembe helyezése befejeződött, letilthatja az elsődleges csomóponttípus csomópontjait az eredeti fürtből. Ha a csomópontok le vannak tiltva, a rendszerszolgáltatások a korábban üzembe helyezett új elsődleges csomóponttípusra migrálnak.

    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. Miután az összes csomópont le van tiltva, a rendszerszolgáltatások az elsődleges csomóponttípuson futnak, amely a zónák között oszlik el. Ezután eltávolíthatja a letiltott csomópontokat a fürtből. A csomópontok eltávolítása után eltávolíthatja az eredeti IP-címet, a terheléselosztót és a virtuálisgép-méretezési csoport erőforrásait.

    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. Ezután távolítsa el az erőforrásokra mutató hivatkozásokat az üzembe helyezett Resource Manager-sablonból.

  5. Végül frissítse a DNS-nevet és a nyilvános IP-címet.

$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