Megosztás a következőn keresztül:


Azure Service Fabric-fürt üzembe helyezése állapot nélküli csomóponttípusokkal

A Service Fabric-csomóponttípusok eredendően feltételezik, hogy egy adott időpontban állapotalapú szolgáltatások helyezhetők el a csomópontokon. Az állapot nélküli csomóponttípusok megváltoztatják ezt a feltételezést egy csomóponttípus esetében, így a csomóponttípus más funkciókat is használhat, például gyorsabb horizontális felskálázási műveleteket, támogatja az automatikus operációsrendszer-frissítéseket a Bronz tartósságon, és több mint 100 csomópontra skálázható egyetlen virtuálisgép-méretezési csoportban.

  • Az elsődleges csomóponttípusok nem konfigurálhatók állapot nélkülire
  • Az állapot nélküli csomóponttípusok csak bronz tartóssági szinttel támogatottak
  • Az állapot nélküli csomóponttípusok csak a Service Fabric Runtime 7.1.409-es vagy újabb verziójában támogatottak.

Mintasablonok érhetők el: Service Fabric Állapot nélküli csomóponttípusok sablon

Állapot nélküli csomóponttípusok engedélyezése a Service Fabric-fürtben

Ha egy fürterőforrásban egy vagy több csomóponttípust állapot nélküliként szeretne beállítani, állítsa az isStateless tulajdonságot true (igaz) értékre. Amikor állapot nélküli csomóponttípusokkal rendelkező Service Fabric-fürtöt helyez üzembe, ne feledje, hogy a fürterőforrásban legalább egy elsődleges csomóponttípus található.

  • A Service Fabric-fürt apiVersion erőforrásának "2020-12-01-preview" vagy újabbnak kell lennie.
{
    "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')]"
    }    
    ],
}

Virtuálisgép-méretezési csoport konfigurálása állapot nélküli csomóponttípusokhoz

Az állapot nélküli csomóponttípusok engedélyezéséhez a következő módon kell konfigurálnia a mögöttes virtuálisgép-méretezési csoport erőforrását:

  • A singlePlacementGroup tulajdonság értéke, amelyet hamis értékre kell állítani, ha több mint 100 virtuális gépre kell skáláznia.
  • A Méretezési csoport upgradePolicy tulajdonságának Gördülő értékre kell állítania.
  • A működés közbeni frissítési módhoz alkalmazásállapot-bővítmény vagy állapottesztek konfigurálása szükséges. Az állapottesztek konfigurálásával vagy az alkalmazás állapotbővítményével kapcsolatos további részletekért tekintse meg ezt a dokumentumot. Konfigurálja az állapotadat-mintavételt az állapot nélküli csomóponttípusok alapértelmezett konfigurációjával az alábbiak szerint. Miután üzembe helyezték az alkalmazásokat a csomóponttípusra, az állapotadat-mintavételi/állapotkiterjesztési portok módosíthatók az alkalmazás tényleges állapotának monitorozásához.

Megjegyzés

Az automatikus skálázás állapot nélküli csomóponttípusokkal való használata esetén a leskálázási művelet után a csomópont állapota nem törlődik automatikusan. Az automatikus skálázás során a Lecsomópontok NodeState-jának törléséhez ajánlott a Service Fabric automatikus skálázási segédjének használata.

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

Állapot nélküli csomóponttípusok konfigurálása több Availability Zones

Ha több rendelkezésre állási zónára kiterjedő állapot nélküli csomóponttípust szeretne konfigurálni, kövesse az itt található dokumentációt, valamint az alábbi néhány módosítást:

  • A singlePlacementGroup beállítása: hamis, ha több elhelyezési csoportra van szükség az engedélyezéshez.
  • Az upgradePolicy beállítása: Az Alkalmazásállapot-bővítmény/Állapottesztek a fent említett módon történő elindítása és hozzáadása.
  • Állítsa be a platformFaultDomainCount : 5 értéket a virtuálisgép-méretezési csoporthoz.

Referenciaként tekintse meg a több Availability Zones állapot nélküli csomóponttípusok konfigurálására szolgáló sablont.

Hálózati követelmények

Nyilvános IP-cím és Load Balancer erőforrás

Ha egy virtuálisgép-méretezési csoport erőforrásán több mint 100 virtuális gépre szeretné engedélyezni a skálázást, a virtuálisgép-méretezési csoport által hivatkozott terheléselosztónak és IP-erőforrásnak egyaránt standard termékváltozatot kell használnia. Ha egy terheléselosztót vagy IP-erőforrást a termékváltozat tulajdonsága nélkül hoz létre, létrehoz egy alapszintű termékváltozatot, amely nem támogatja a több mint 100 virtuális gépre történő skálázást. A standard termékváltozatú terheléselosztó alapértelmezés szerint blokkolja az összes forgalmat kívülről; A külső forgalom engedélyezéséhez NSG-t kell üzembe helyezni 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 lehet helyben módosítani a termékváltozatot.

Virtuálisgép-méretezési csoport NAT-szabályai

A terheléselosztó bejövő 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 Load Balancer kimenő szabályok

standard Load Balancer és a standard 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 kimenő kapcsolatot szeretne a standard termékváltozatok használata során, explicit módon meg kell határoznia a standard nyilvános IP-címekkel vagy a standard nyilvános Load Balancer. További információ: Kimenő kapcsolatok és Azure standard Load Balancer.

Megjegyzés

A standard sablon egy NSG-re hivatkozik, amely alapértelmezés szerint lehetővé teszi az összes kimenő forgalmat. 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.

Megjegyzés

A standard termékváltozatú SLB-t használó Service Fabric-fürtöknek gondoskodniuk kell arról, hogy minden csomóponttípus rendelkezik olyan szabállyal, amely engedélyezi a kimenő forgalmat a 443-es porton. Ez a fürt telepítésének befejezéséhez szükséges, és az ilyen szabály nélküli üzembe helyezés meghiúsul.

Migrálás állapot nélküli csomóponttípusok használatával egy fürtben

Minden áttelepítési forgatókönyv esetében új, csak állapot nélküli csomóponttípust kell hozzáadni. A meglévő csomóponttípus nem migrálható állapot nélkülire.

Egy olyan fürt migrálásához, amely egy alapszintű termékváltozattal rendelkező Load Balancer és IP-címet használt, először létre kell hoznia egy teljesen új Load Balancer és IP-erőforrást a standard termékváltozat használatával. Ezeket az erőforrásokat nem lehet helyben frissíteni.

Az új LB-t és IP-címet a használni kívánt új állapot nélküli csomóponttípusokban kell hivatkozni. A fenti példában egy új virtuálisgép-méretezési csoport erőforrásai lesznek hozzáadva az állapot nélküli csomóponttípusokhoz. Ezek a virtuálisgép-méretezési csoportok az újonnan létrehozott LB-re és IP-címre hivatkoznak, és állapot nélküli csomóponttípusokként vannak megjelölve a Service Fabric-fürterőforrásban.

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

  • Nyilvános IP-erőforrás standard termékváltozattal.
  • Egy standard termékváltozatot használó Load Balancer erőforrás.
  • A virtuálisgép-méretezési csoportok üzembe helyezésére szolgáló alhálózat által hivatkozott NSG.

Miután az erőforrások üzembe helyezése befejeződött, elkezdheti letiltani azokat a csomóponttípusokat, amelyeket el szeretne távolítani az eredeti fürtből.

Következő lépések