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.