Sdílet prostřednictvím


Nasazení spravovaného clusteru Service Fabric napříč zónami dostupnosti

Zóny dostupnosti v Azure je nabídka s vysokou dostupností, která chrání vaše aplikace a data před selháním datacentra. Zóna dostupnosti je jedinečné fyzické umístění vybavené nezávislým napájením, chlazením a sítí v rámci oblasti Azure.

Spravovaný cluster Service Fabric podporuje nasazení, která přesahují více Zóny dostupnosti za účelem zajištění odolnosti zóny. Tato konfigurace zajišťuje vysokou dostupnost důležitých systémových služeb a vašich aplikací pro ochranu před kritickými body selhání. Azure Zóny dostupnosti jsou dostupné jenom ve vybraných oblastech. Další informace najdete v tématu Přehled služby Azure Zóny dostupnosti.

Poznámka:

Zóny dostupnosti jsou k dispozici pouze v clusterech se skladovou jednotkou Standard.

K dispozici jsou ukázkové šablony: Šablona zóny křížové dostupnosti Service Fabric

Topologie pro zónově odolné spravované clustery Azure Service Fabric

Poznámka:

Výhoda přecházení primárního typu uzlu napříč zónami dostupnosti je skutečně viditelná pouze pro tři zóny, a ne jen pro dvě.

Cluster Service Fabric distribuovaný napříč Zóny dostupnosti (AZ) zajišťuje vysokou dostupnost stavu clusteru.

Doporučená topologie pro spravovaný cluster vyžaduje následující prostředky:

  • Skladová položka clusteru musí být Standard.
  • Primární typ uzlu by měl mít alespoň devět uzlů (3 v každém az) pro zajištění nejlepší odolnosti, ale podporuje minimální počet šesti (2 v každé az).
  • Sekundární typy uzlů by měly mít alespoň šest uzlů pro zajištění nejlepší odolnosti, ale podporuje minimální počet tří uzlů.

Poznámka:

Podporují se pouze 3 nasazení zóny dostupnosti.

Poznámka:

Není možné provést místní změnu škálovacích sad virtuálních počítačů ve spravovaném clusteru z rozsahu mimo zónu na cluster rozložený do zóny.

Diagram znázorňující architekturu zóny dostupnosti Azure Service Fabric Architektura zóny dostupnosti Azure Service Fabric

Ukázkový seznam uzlů znázorňující formáty FD/UD ve škálovací sadě virtuálních počítačů, které pokrývají zóny

Ukázkový seznam uzlů znázorňující formáty FD/UD ve škálovací sadě virtuálních počítačů, které pokrývají zóny

Distribuce replik služby napříč zónami: Když je služba nasazená v typech uzlů, které pokrývají zóny, umístí se repliky, aby se zajistilo, že budou v samostatných zónách. Toto oddělení je zajištěno, protože doména selhání na uzlech, které jsou přítomné v každém z těchto typů uzlů, jsou nakonfigurovány s informacemi o zóně (tj. FD = fd:/zone1/1 atd.). Například pro pět replik nebo instancí služby je distribuce 2-2-1 a modul runtime se pokusí zajistit rovnoměrnou distribuci mezi AZ.

Konfigurace repliky služby uživatele: Stavové služby uživatele nasazené v typech uzlů zóny křížové dostupnosti by měly být nakonfigurovány s touto konfigurací: počet replik s cílem = 9, min = 5. Tato konfigurace pomáhá službě pracovat, i když jedna zóna klesne, protože šest replik bude stále v dalších dvou zónách nahoru. Upgrade aplikace v takovém scénáři také projde.

Scénář snížení zóny: Když zóna přestane fungovat, zobrazí se všechny uzly v této zóně jako down. Repliky služeb na těchto uzlech budou také mimo provoz. Vzhledem k tomu, že v ostatních zónách existují repliky, služba bude dál reagovat s primárními replikami, které při selhání přebíjejí zóny, které fungují. Služby se zobrazí ve stavu upozornění, protože počet cílových replik není splněný a počet virtuálních počítačů je stále větší než definovaná minimální velikost cílové repliky. V důsledku toho nástroj pro vyrovnávání zatížení Service Fabric zobrazí repliky v pracovních zónách tak, aby odpovídal nakonfigurovaným cílovým replikám. V tomto okamžiku by se služby měly zobrazovat v pořádku. Když se zóna, která byla dolů, vrátí zpět, nástroj pro vyrovnávání zatížení znovu rozloží všechny repliky služby rovnoměrně napříč všemi zónami.

Konfigurace sítě

Další informace najdete v tématu Konfigurace nastavení sítě pro spravované clustery Service Fabric.

Povolení zónově odolného spravovaného clusteru Azure Service Fabric

Pokud chcete povolit zónově odolný spravovaný cluster Azure Service Fabric, musíte zahrnout následující vlastnost ZonalResiliency , která určuje, jestli je cluster odolný vůči zóně nebo ne.

{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedclusters",
  "properties": {
  ...
  "zonalResiliency": "true",
  ...
  }
}

Migrace existujícího nezonetového odolného clusteru do odolného pásma (Preview)

Stávající spravované clustery Service Fabric, které nejsou rozložené mezi zónami dostupnosti, se teď dají migrovat na místě, aby přesahovaly zóny dostupnosti. Mezi podporované scénáře patří clustery vytvořené v oblastech, které mají tři zóny dostupnosti a clustery v oblastech, kde jsou po nasazení zpřístupněny tři zóny dostupnosti.

Požadavky:

Poznámka:

Migrace do odolné konfigurace zóny může způsobit krátkou ztrátu externího připojení prostřednictvím nástroje pro vyrovnávání zatížení, ale nebude mít vliv na stav clusteru. K tomu dochází v případě, že je potřeba vytvořit novou veřejnou IP adresu, aby byla síť odolná vůči chybám zóny. Naplánujte migraci odpovídajícím způsobem.

  1. Začněte tím, že zjistíte, jestli se vyžaduje nová IP adresa a jaké prostředky je potřeba migrovat, aby byly odolné vůči zóně. Pokud chcete získat aktuální stav odolnosti zóny dostupnosti pro prostředky spravovaného clusteru, použijte následující volání rozhraní API:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/getazresiliencystatus?api-version=2022-02-01-preview
    

    Nebo můžete použít modul Az následujícím způsobem:

    Select-AzSubscription -SubscriptionId {subscriptionId}
    Invoke-AzResourceAction -ResourceId /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName} -Action getazresiliencystatus -ApiVersion 2022-02-01-preview
    

    Příkaz by měl poskytnout odpověď podobnou této:

    {
    "baseResourceStatus" :[
      {
      "resourceName": "sfmccluster1"
      "resourceType": "Microsoft.Storage/storageAccounts"
      "isZoneResilient": false
      },
      {
      "resourceName": "PublicIP-sfmccluster1"
      "resourceType": "Microsoft.Network/publicIPAddresses"
      "isZoneResilient": false
      },
      {
      "resourceName": "primary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": false
      }
    ],
    "isClusterZoneResilient": false
    }
    

    Pokud prostředek veřejné IP adresy není odolný vůči zóně, migrace clusteru způsobí krátkou ztrátu externího připojení. Tato ztráta připojení je způsobená nastavením nové veřejné IP adresy a aktualizací plně kvalifikovaného názvu domény clusteru na novou IP adresu. Pokud je prostředek veřejné IP adresy odolný vůči zóně, migrace nezmění prostředek veřejné IP adresy ani plně kvalifikovaný název domény a nebude mít žádný vliv na externí připojení.

  2. Zahajte převod základního účtu úložiště vytvořeného pro spravovaný cluster z místně redundantního úložiště (LRS) do zónově redundantního úložiště (ZRS) pomocí převodu iniciovaného zákazníkem. Skupina prostředků účtu úložiště, který je potřeba migrovat, by byla ve formátu "SFC_ClusterId" (např. SFC_9240df2f-71ab-4733-a641-53a8464d992d) ve stejném předplatném jako prostředek spravovaného clusteru.

  3. Přidání vlastnosti zón do existujících typů uzlů

    Tento krok nakonfiguruje spravovanou škálovací sadu virtuálních počítačů přidruženou k typu uzlu jako odolné vůči zóně a zajistí, aby se všechny nové virtuální počítače přidané do ní nasadily napříč zónami dostupnosti (zónové virtuální počítače). Pokud je zadaný typ uzlu primární, poskytovatel prostředků provede migraci veřejné IP adresy spolu s aktualizací DNS plně kvalifikovaného názvu domény clusteru(v případě potřeby), aby byl odolný vůči zóně. getazresiliencystatus K pochopení implikace tohoto kroku použijte rozhraní API.

  • Použijte apiVersion 2022-02-01-preview nebo novější.

  • zones Přidejte parametr nastavený na ["1", "2", "3"] existující typy uzlů:

    {
       "apiVersion": "2024-02-01-preview",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
       "location": "[resourcegroup().location]",
       "dependsOn": [
         "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
       ],
       "properties": {
         ...
         "isPrimary": true,
         "zones": ["1", "2", "3"]
         ...
       }
    },
    {
       "apiVersion": "2024-02-01-preview",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeNameSecondary'))]",
       "location": "[resourcegroup().location]",
       "dependsOn": [
         "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
       ],
       "properties": {
         ...
         "isPrimary": false,
         "zones": ["1", "2", "3"]
         ...
       }
    }
    
  1. Škálování typů uzlů pro přidání zónových uzlů a odebrání místních uzlů

    V této fázi se škálovací sady virtuálních počítačů označí jako odolné vůči zónám. Takže při vertikálním navýšení kapacity budou nově přidané uzly zónové a při vertikálním snížení kapacity se odeberou regionální uzly. Tento přístup poskytuje flexibilitu škálování v libovolném pořadí, které odpovídá vašim požadavkům na kapacitu, úpravou vmInstanceCount vlastnosti u typů uzlů.

    Pokud je například počáteční hodnota vmInstanceCount nastavená na 6 (označující šest regionálních uzlů), můžete provést dvě nasazení:

    • První nasazení: Zvyšte počet instancí vmInstanceCount na 12 a přidejte 6 zónových uzlů.
    • Druhé nasazení: Snižte počet instancí vmInstanceCount na 6, abyste odebrali všechny místní uzly.

    V průběhu tohoto procesu můžete zkontrolovat getazresiliencystatus rozhraní API a načíst stav průběhu, jak je znázorněno níže. Proces se považuje za dokončený, jakmile má každý typ uzlu minimálně šest zónových uzlů a 0 regionálních uzlů.

    {
    "baseResourceStatus" :[
      {
      "resourceName": "sfmccluster1"
      "resourceType": "Microsoft.Storage/storageAccounts"
      "isZoneResilient": true
      },
      {
      "resourceName": "PublicIP-sfmccluster1"
      "resourceType": "Microsoft.Network/publicIPAddresses"
      "isZoneResilient": true
      },
      {
      "resourceName": "ntPrimary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": false
      "details": "Status: InProgress, ZonalNodes: 6, RegionalNodes: 6"
      },
      {
      "resourceName": "ntSecondary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": true
      "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
      }
    ],
    "isClusterZoneResilient": false
    }
    

    Poznámka:

    Proces škálování pro primární typ uzlu bude vyžadovat další čas, protože každý přidání nebo odebrání uzlu zahájí upgrade clusteru Service Fabric.

  2. Označení clusteru odolného vůči selháním zóny

    Tento krok pomáhá v budoucích nasazeních, protože zajišťuje všechna budoucí nasazení typů uzlů napříč zónami dostupnosti a cluster tak zůstává odolný vůči selháním az. Nastavte zonalResiliency: true v šabloně ARM clusteru a proveďte nasazení, které označí cluster jako odolné vůči zóně a zajistí, že všechna nasazení typu nového uzlu budou napříč zónami dostupnosti. Tato aktualizace je povolená pouze v případě, že všechny typy uzlů mají alespoň šest zónových uzlů a 0 regionálních uzlů.

    {
      "apiVersion": "2022-02-01-preview",
      "type": "Microsoft.ServiceFabric/managedclusters",
      "zonalResiliency": "true"
    }
    

    Aktualizovaný stav můžete také zobrazit na portálu v části Přehled –> Vlastnosti podobné Zonal resiliency True, po dokončení.

  3. Ověření, že všechny prostředky jsou odolné vůči zóně

    Pokud chcete ověřit stav odolnosti zón dostupnosti pro prostředky spravovaného clusteru, použijte následující volání rozhraní GET API:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/getazresiliencystatus?api-version=2022-02-01-preview
    

    Toto volání rozhraní API by mělo poskytovat odpověď podobnou této:

    {
     "baseResourceStatus" :[
       {
       "resourceName": "sfmccluster1"
       "resourceType": "Microsoft.Storage/storageAccounts"
       "isZoneResilient": true
       },
       {
       "resourceName": "PublicIP-sfmccluster1"
       "resourceType": "Microsoft.Network/publicIPAddresses"
       "isZoneResilient": true
       },
       {
         "resourceName": "ntPrimary"
         "resourceType": "Microsoft.Compute/virutalmachinescalesets"
         "isZoneResilient": true
         "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
       },
       {
         "resourceName": "ntSecondary"
         "resourceType": "Microsoft.Compute/virutalmachinescalesets"
         "isZoneResilient": true
         "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
       }
     ],
     "isClusterZoneResilient": true
    }
    

    Pokud narazíte na nějaké problémy, spojte se s žádostí o pomoc.

Povolení FastZonalUpdate ve spravovaných clusterech Service Fabric (Preview)

Spravované clustery Service Fabric podporují rychlejší upgrady clusterů a aplikací tím, že snižují maximální počet domén upgradu na zónu dostupnosti. Výchozí konfigurace teď může mít maximálně 15 domén upgradu (UD) ve více typech uzlů AZ. Tento obrovský počet identifikátorů UD snížil rychlost upgradu. Nová konfigurace snižuje maximální počet identifikátorů UD, což vede k rychlejším aktualizacím a zachování bezpečnosti upgradů beze změny.

Aktualizace by se měla provést prostřednictvím šablony ARM nastavením vlastnosti zonalUpdateMode na "fast" a následnou úpravou atributu typu uzlu, například přidáním uzlu a následným odebráním uzlu do každého typu uzlu (viz požadované kroky 2 a 3). Rozhraní API prostředku spravovaného clusteru Service Fabric by mělo být verze 2022-10-01-preview nebo novější.

  1. Upravte šablonu ARM pomocí nové vlastnosti zonalUpdateMode.
   "resources": [
        {
            "type": "Microsoft.ServiceFabric/managedClusters",
            "apiVersion": "2022-10-01-preview",
            '''
            "properties": {
                '''
                "zonalResiliency": true,
                "zonalUpdateMode": "fast",
                ...
            }
        }]
  1. Přidejte uzel do clusteru pomocí příkazu az sf cluster node add PowerShell.

  2. Odeberte uzel z clusteru pomocí příkazu az sf cluster node remove PowerShell.