Kurz: Nasazení clusteru Service Fabric s Windows do virtuální sítě Azure

Tento kurz je první částí série. Naučíte se nasadit cluster Azure Service Fabric se systémem Windows do virtuální sítě Azure a skupiny zabezpečení sítě pomocí PowerShellu a šablony. Po dokončení máte cluster spuštěný v cloudu, do kterého můžete nasazovat aplikace. Pokud chcete vytvořit cluster s Linuxem, který používá Azure CLI, přečtěte si téma Vytvoření zabezpečeného linuxového clusteru v Azure.

Tento kurz popisuje produkční scénář. Pokud chcete vytvořit menší cluster pro účely testování, přečtěte si téma Vytvoření testovacího clusteru.

V tomto kurzu se naučíte:

  • Vytvoření virtuální sítě v Azure pomocí PowerShellu
  • Vytvoření trezoru klíčů a nahrání certifikátu
  • Nastavení ověřování Microsoft Entra
  • Konfigurace kolekce diagnostiky
  • Nastavení služby EventStore
  • Nastavení protokolů služby Azure Monitor
  • Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
  • Zabezpečení clusteru pomocí certifikátu X.509
  • Připojení ke clusteru pomocí prostředí PowerShell
  • Odebrat cluster

V této sérii kurzů se naučíte:

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Předpoklady

Než začnete s tímto kurzem:

Následující postupy vytvoří cluster Service Fabric se sedmi uzly. Pomocí cenové kalkulačky Azure můžete vypočítat náklady vzniklé spuštěním clusteru Service Fabric v Azure.

Stažení a prozkoumání šablony

Stáhněte si následující soubory šablon Azure Resource Manageru:

Tato šablona nasadí zabezpečený cluster sedmi virtuálních počítačů a tří typů uzlů do virtuální sítě a skupiny zabezpečení sítě. Další ukázkové šablony najdete na GitHubu. Azuredeploy.json nasadí řadu prostředků, včetně následujících.

Cluster Service Fabric

V prostředku Microsoft.ServiceFabric/clusters se konfiguruje cluster s Windows s těmito charakteristikami:

  • Tři typy uzlů.
  • Pět uzlů v primárním typu uzlu (konfigurovatelné v parametrech šablony) a jeden uzel v každém z ostatních dvou typů uzlů.
  • Operační systém: Windows Server 2016 Datacenter s kontejnery (konfigurovatelné v parametrech šablony).
  • Certifikát je zabezpečený (konfigurovatelný v parametrech šablony).
  • Reverzní proxy server je povolený.
  • Je povolená služba DNS.
  • Úroveň stálosti bronzu (konfigurovatelná v parametrech šablony).
  • Úroveň spolehlivosti Silver (konfigurovatelné v parametrech šablony).
  • Koncový bod připojení klienta: 19000 (konfigurovatelný v parametrech šablony).
  • Koncový bod brány HTTP: 19080 (konfigurovatelný v parametrech šablony).

Azure Load Balancer

V prostředku Microsoft.Network/loadBalancers je nakonfigurovaný nástroj pro vyrovnávání zatížení. Sondy a pravidla jsou nastavené pro následující porty:

  • Koncový bod připojení klienta: 19000
  • koncový bod brány HTTP: 19080
  • Port aplikace: 80
  • Port aplikace: 443
  • reverzní proxy server Service Fabric: 19081

Pokud jsou potřeba další porty aplikace, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups tak, aby umožňoval přenosy.

Virtuální síť, podsíť a skupina zabezpečení sítě

Názvy virtuální sítě, podsítě a skupiny zabezpečení sítě jsou deklarované v parametrech šablony. Adresní prostory virtuální sítě a podsítě se taky deklarují v parametrech šablony a konfigurují v prostředku Microsoft.Network/virtualNetworks:

  • Adresní prostor virtuální sítě: 172.16.0.0/20
  • adresní prostor podsítě Service Fabric: 172.16.2.0/23

V prostředku Microsoft.Network/networkSecurityGroups jsou povolená následující pravidla pro příchozí provoz. Hodnoty portů můžete změnit změnou proměnných šablony.

  • ClientConnectionEndpoint (TCP): 19000
  • HttpGatewayEndpoint (HTTP/TCP): 19080
  • SMB: 445
  • Internodecommunication: 1025, 1026, 1027
  • Rozsah dočasných portů: 49152 až 65534 (vyžaduje minimálně 256 portů).
  • Porty pro použití aplikací: 80 a 443
  • Rozsah portů aplikace: 49152 až 65534 (používaný pro komunikaci mezi službami. Ostatní porty se neotevře v nástroji pro vyrovnávání zatížení).
  • Všechny ostatní porty jsou blokované

Pokud jsou potřeba další porty aplikace, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups tak, aby umožňoval přenosy.

Windows Defender

Ve výchozím nastavení je antivirový program v programu Windows Defender nainstalovaný a funkční na Windows Serveru 2016. Uživatelské rozhraní se ve výchozím nastavení instaluje na některé skladové položky, ale není povinné. Pro každý typ uzlu nebo škálovací sadu virtuálních počítačů deklarovanou v šabloně se rozšíření Azure VM Antimalware používá k vyloučení adresářů a procesů Service Fabric:

{
"name": "[concat('VMIaaSAntimalware','_vmNodeType0Name')]",
"properties": {
        "publisher": "Microsoft.Azure.Security",
        "type": "IaaSAntimalware",
        "typeHandlerVersion": "1.5",
        "settings": {
        "AntimalwareEnabled": "true",
        "Exclusions": {
                "Paths": "D:\\SvcFab;D:\\SvcFab\\Log;C:\\Program Files\\Microsoft Service Fabric",
                "Processes": "Fabric.exe;FabricHost.exe;FabricInstallerService.exe;FabricSetup.exe;FabricDeployer.exe;ImageBuilder.exe;FabricGateway.exe;FabricDCA.exe;FabricFAS.exe;FabricUOS.exe;FabricRM.exe;FileStoreService.exe"
        },
        "RealtimeProtectionEnabled": "true",
        "ScheduledScanSettings": {
                "isEnabled": "true",
                "scanType": "Quick",
                "day": "7",
                "time": "120"
        }
        },
        "protectedSettings": null
}
}

Nastavení parametrů šablony

Soubor s parametry azuredeploy.parameters.json deklaruje mnoho hodnot používaných pro nasazení clusteru a přidružených prostředků. Toto jsou parametry pro úpravy nasazení:

Parametr Příklad hodnoty Poznámky
adminUserName vmadmin Uživatelské jméno správce pro virtuální počítače clusteru. Požadavky na uživatelské jméno pro virtuální počítač
adminPassword Password#1234 Heslo správce pro virtuální počítače clusteru. Požadavky na heslo pro virtuální počítač
clusterName mysfcluster123 Název clusteru. Může obsahovat jenom písmena a číslice. Může mít délku 3 až 23 znaků.
umístění Střed USA – jih Umístění clusteru.
certificateThumbprint

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který se dříve odeslal do trezoru klíčů, vyplňte hodnotu kryptografického otisku certifikátu SHA1. Příklad: „6190390162C988701DB5676EB81083EA608DCCF3“.

certificateUrlValue

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte URL certifikátu. Například "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346".

sourceVaultValue

Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná.

Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte hodnotu zdrojového trezoru. Například: /subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT

Nastavení ověřování klienta Microsoft Entra

U clusterů Service Fabric nasazených ve veřejné síti hostované v Azure doporučujeme vzájemné ověřování mezi klienty:

  • Pro identitu klienta použijte ID Microsoft Entra.
  • Použijte certifikát pro identitu serveru a šifrování TLS komunikace HTTP.

Nastavení ID Microsoft Entra pro ověřování klientů pro cluster Service Fabric musí být provedeno před vytvořením clusteru. Microsoft Entra ID umožňuje organizacím (označované jako tenanti) spravovat přístup uživatelů k aplikacím.

Cluster Service Fabric nabízí několik vstupních bodů ke své funkci správy, včetně webového Service Fabric Exploreru a sady Visual Studio. V důsledku toho vytvoříte dvě aplikace Microsoft Entra pro řízení přístupu ke clusteru: jednu webovou aplikaci a jednu nativní aplikaci. Po vytvoření aplikací přiřadíte uživatele k rolím jen pro čtení a správcům.

Poznámka:

Před vytvořením clusteru je nutné provést následující kroky. Vzhledem k tomu, že skripty očekávají názvy a koncové body clusteru, měly by se hodnoty naplánovat, a ne hodnoty, které jste už vytvořili.

V tomto článku předpokládáme, že jste už vytvořili tenanta. Pokud jste to neudělali, začněte tím, že si přečtete , jak získat tenanta Microsoft Entra.

Abychom zjednodušili kroky, které se týkají konfigurace ID Microsoft Entra s clusterem Service Fabric, vytvořili jsme sadu skriptů Windows PowerShellu. Stáhněte si skripty do počítače.

Vytváření aplikací Microsoft Entra a přiřazování uživatelů k rolím

Vytvořte dvě aplikace Microsoft Entra pro řízení přístupu ke clusteru: jednu webovou aplikaci a jednu nativní aplikaci. Po vytvoření aplikací, které budou představovat váš cluster, přiřaďte uživatelům role podporované Service Fabric: jen pro čtení a správce.

Spusťte SetupApplications.ps1a jako parametry zadejte ID tenanta, název clusteru a adresu URL odpovědi webové aplikace. Zadejte uživatelská jména a hesla pro uživatele. Příklad:

$Configobj = .\SetupApplications.ps1 -TenantId '<MyTenantID>' -ClusterName 'mysfcluster123' -WebApplicationReplyUrl 'https://mysfcluster123.eastus.cloudapp.azure.com:19080/Explorer/index.html' -AddResourceAccess
.\SetupUser.ps1 -ConfigObj $Configobj -UserName 'TestUser' -Password 'P@ssword!123'
.\SetupUser.ps1 -ConfigObj $Configobj -UserName 'TestAdmin' -Password 'P@ssword!123' -IsAdmin

Poznámka:

Pro národní cloudy (například Azure Government, Microsoft Azure provozovaný společností 21Vianet, Azure Germany) zadejte -Location parametr.

ID tenanta nebo id adresáře najdete na webu Azure Portal. Vyberte Vlastnosti ID>Microsoft Entra a zkopírujte hodnotu ID adresáře.

ClusterName slouží k předponě aplikací Microsoft Entra vytvořených skriptem. Nemusí přesně odpovídat skutečnému názvu clusteru. Usnadňuje pouze mapování artefaktů Microsoft Entra na cluster Service Fabric, který se používá.

WebApplicationReplyUrl je výchozí koncový bod, který microsoft Entra ID vrátí vašim uživatelům po dokončení přihlášení. Nastavte tento koncový bod jako koncový bod Service Fabric Exploreru pro váš cluster, což je ve výchozím nastavení:

<https:// cluster_domain>:19080/Explorer

Zobrazí se výzva k přihlášení k účtu, který má oprávnění správce pro tenanta Microsoft Entra. Po přihlášení skript vytvoří webové a nativní aplikace, které představují váš cluster Service Fabric. V aplikacích tenanta na webu Azure Portal by se měly zobrazit dvě nové položky:

  • Název clusteru_Cluster
  • Název clusteru_Client

Skript při vytváření clusteru vytiskne JSON vyžadovaný šablonou Resource Manageru, takže je vhodné nechat okno PowerShellu otevřené.

"azureActiveDirectory": {
  "tenantId":"<guid>",
  "clusterApplication":"<guid>",
  "clientApplication":"<guid>"
},

Přidání konfigurace Microsoft Entra pro použití ID Microsoft Entra pro klientský přístup

V souboru azuredeploy.json nakonfigurujte ID Microsoft Entra v části Microsoft.ServiceFabric/clusters . Přidejte parametry pro ID tenanta, ID aplikace clusteru a ID klientské aplikace.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    ...

    "aadTenantId": {
      "type": "string",
      "defaultValue": "0e3d2646-78b3-4711-b8be-74a381d9890c"
    },
    "aadClusterApplicationId": {
      "type": "string",
      "defaultValue": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
    },
    "aadClientApplicationId": {
      "type": "string",
      "defaultValue": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
    }
  },

...

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  ...
  "properties": {
    ...
    "azureActiveDirectory": {
      "tenantId": "[parameters('aadTenantId')]",
      "clusterApplication": "[parameters('aadClusterApplicationId')]",
      "clientApplication": "[parameters('aadClientApplicationId')]"
    },
    ...
  }
}

Přidejte hodnoty parametrů do souboru parametrů azuredeploy.parameters.json . Příklad:

"aadTenantId": {
"value": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"value": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"value": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}

Konfigurace shromažďování diagnostiky v clusteru

Pokud používáte cluster Service Fabric, je vhodné shromáždit protokoly ze všech uzlů v centrálním umístění. Když máte protokoly v centrálním umístění, můžete analyzovat a řešit problémy v clusteru nebo problémy v aplikacích a službách spuštěných v daném clusteru.

Jedním ze způsobů, jak nahrát a shromáždit protokoly, je použít rozšíření Azure Diagnostics (WAD), které nahrává protokoly do služby Azure Storage a má také možnost odesílat protokoly do služby Aplikace Azure Přehledy nebo Event Hubs. Externí proces můžete také použít ke čtení událostí z úložiště a jejich umístění do produktu analytické platformy, jako jsou protokoly služby Azure Monitor nebo jiné řešení analýzy protokolů.

Pokud sledujete tento kurz, kolekce diagnostiky je už v šabloně nakonfigurovaná.

Pokud máte existující cluster, který nemá nasazenou diagnostiku, můžete ho přidat nebo aktualizovat pomocí šablony clusteru. Upravte šablonu Resource Manageru, která se používá k vytvoření existujícího clusteru nebo stažení šablony z portálu. Upravte soubor template.json provedením následujících úloh:

Do oddílu prostředků v šabloně přidejte nový prostředek úložiště:

"resources": [
...
{
  "apiVersion": "2015-05-01-preview",
  "type": "Microsoft.Storage/storageAccounts",
  "name": "[parameters('applicationDiagnosticsStorageAccountName')]",
  "location": "[parameters('computeLocation')]",
  "sku": {
    "accountType": "[parameters('applicationDiagnosticsStorageAccountType')]"
  },
  "tags": {
    "resourceType": "Service Fabric",
    "clusterName": "[parameters('clusterName')]"
  }
},
...
]

Dále přidejte parametry pro název účtu úložiště a zadejte do oddílu parametrů šablony. Zástupný název textového účtu úložiště nahraďte názvem účtu úložiště, který chcete.

"parameters": {
...
"applicationDiagnosticsStorageAccountType": {
    "type": "string",
    "allowedValues": [
    "Standard_LRS",
    "Standard_GRS"
    ],
    "defaultValue": "Standard_LRS",
    "metadata": {
    "description": "Replication option for the application diagnostics storage account"
    }
},
"applicationDiagnosticsStorageAccountName": {
    "type": "string",
    "defaultValue": "**STORAGE ACCOUNT NAME GOES HERE**",
    "metadata": {
    "description": "Name for the storage account that contains application diagnostics data from the cluster"
    }
},
...
}

Dále přidejte rozšíření IaaSDiagnostics do pole rozšíření vlastnosti VirtualMachineProfile každého prostředku Microsoft.Compute/virtualMachineScaleSets v clusteru. Pokud používáte ukázkovou šablonu, existují tři škálovací sady virtuálních počítačů (jeden pro každý typ uzlu v clusteru).

"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('vmNodeType1Name')]",
"properties": {
    ...
    "virtualMachineProfile": {
        "extensionProfile": {
            "extensions": [
                {
                    "name": "[concat(parameters('vmNodeType0Name'),'_Microsoft.Insights.VMDiagnosticsSettings')]",
                    "properties": {
                        "type": "IaaSDiagnostics",
                        "autoUpgradeMinorVersion": true,
                        "protectedSettings": {
                        "storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
                        "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
                        "storageAccountEndPoint": "https://core.windows.net/"
                        },
                        "publisher": "Microsoft.Azure.Diagnostics",
                        "settings": {
                        "WadCfg": {
                            "DiagnosticMonitorConfiguration": {
                            "overallQuotaInMB": "50000",
                            "EtwProviders": {
                                "EtwEventSourceProviderConfiguration": [
                                {
                                    "provider": "Microsoft-ServiceFabric-Actors",
                                    "scheduledTransferKeywordFilter": "1",
                                    "scheduledTransferPeriod": "PT5M",
                                    "DefaultEvents": {
                                    "eventDestination": "ServiceFabricReliableActorEventTable"
                                    }
                                },
                                {
                                    "provider": "Microsoft-ServiceFabric-Services",
                                    "scheduledTransferPeriod": "PT5M",
                                    "DefaultEvents": {
                                    "eventDestination": "ServiceFabricReliableServiceEventTable"
                                    }
                                }
                                ],
                                "EtwManifestProviderConfiguration": [
                                {
                                    "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
                                    "scheduledTransferLogLevelFilter": "Information",
                                    "scheduledTransferKeywordFilter": "4611686018427387904",
                                    "scheduledTransferPeriod": "PT5M",
                                    "DefaultEvents": {
                                    "eventDestination": "ServiceFabricSystemEventTable"
                                    }
                                }
                                ]
                            }
                            }
                        },
                        "StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
                        },
                        "typeHandlerVersion": "1.5"
                    }
                }
            ...
            ]
        }
    }
}

Konfigurace služby EventStore

Služba EventStore je možnost monitorování v Service Fabric. EventStore poskytuje způsob, jak porozumět stavu clusteru nebo úloh v daném časovém okamžiku. EventStore je stavová služba Service Fabric, která udržuje události z clusteru. Tato událost se vystavuje prostřednictvím Service Fabric Exploreru, rozhraní REST a rozhraní API. EventStore se dotazuje clusteru přímo na získání diagnostických dat na libovolnou entitu v clusteru a měl by se použít k tomu, aby vám pomohl:

  • Diagnostika problémů s vývojem nebo testováním nebo s využitím kanálu monitorování
  • Ověřte, že se správně zpracovávají akce správy, které v clusteru provádíte.
  • Získání "snímku" způsobu interakce Service Fabric s konkrétní entitou

Pokud chcete ve vašem clusteru povolit službu EventStore, přidejte do prostředků infrastruktury následující vlastnosti Nastavení prostředku Microsoft.ServiceFabric/clusters:

"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"properties": {
    ...
    "fabricSettings": [
        ...
        {
            "name": "EventStoreService",
            "parameters": [
                {
                "name": "TargetReplicaSetSize",
                "value": "3"
                },
                {
                "name": "MinReplicaSetSize",
                "value": "1"
                }
            ]
        }
    ]
}

Nastavení protokolů služby Azure Monitor pro cluster

Protokoly služby Azure Monitor jsou naším doporučením k monitorování událostí na úrovni clusteru. Pokud chcete nastavit protokoly služby Azure Monitor pro monitorování clusteru, musíte mít povolenou diagnostiku pro zobrazení událostí na úrovni clusteru.

Pracovní prostor musí být připojený k diagnostickým datům přicházejícím z vašeho clusteru. Tato data protokolu jsou uložená v účtu úložiště applicationDiagnosticsStorageAccountName v tabulkách WADServiceFabric*EventTable, WADWindowsEventLogsTable a WADETWEventTable.

Přidejte pracovní prostor Azure Log Analytics a přidejte řešení do pracovního prostoru:

"resources": [
    ...
    {
        "apiVersion": "2015-11-01-preview",
        "location": "[parameters('omsRegion')]",
        "name": "[parameters('omsWorkspacename')]",
        "type": "Microsoft.OperationalInsights/workspaces",
        "properties": {
            "sku": {
                "name": "Free"
            }
        },
        "resources": [
            {
                "apiVersion": "2015-11-01-preview",
                "name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]",
                "type": "storageinsightconfigs",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]",
                    "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]"
                ],
                "properties": {
                    "containers": [],
                    "tables": [
                        "WADServiceFabric*EventTable",
                        "WADWindowsEventLogsTable",
                        "WADETWEventTable"
                    ],
                    "storageAccount": {
                        "id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]",
                        "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]"
                    }
                }
            },
            {
                "apiVersion": "2015-11-01-preview",
                "type": "datasources",
                "name": "sampleWindowsPerfCounter",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
                ],
                "kind": "WindowsPerformanceCounter",
                "properties": {
                    "objectName": "Memory",
                    "instanceName": "*",
                    "intervalSeconds": 10,
                    "counterName": "Available MBytes"
                }
            },
            {
                "apiVersion": "2015-11-01-preview",
                "type": "datasources",
                "name": "sampleWindowsPerfCounter2",
                "dependsOn": [
                    "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
                ],
                "kind": "WindowsPerformanceCounter",
                "properties": {
                    "objectName": "Service Fabric Service",
                    "instanceName": "*",
                    "intervalSeconds": 10,
                    "counterName": "Average milliseconds per request"
                }
            }
        ]
    },
    {
        "apiVersion": "2015-11-01-preview",
        "location": "[parameters('omsRegion')]",
        "name": "[variables('solution')]",
        "type": "Microsoft.OperationsManagement/solutions",
        "dependsOn": [
            "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
        ],
        "properties": {
            "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
        },
        "plan": {
            "name": "[variables('solution')]",
            "publisher": "Microsoft",
            "product": "[Concat('OMSGallery/', variables('solutionName'))]",
            "promotionCode": ""
        }
    }
]

Dále přidejte parametry.

"parameters": {
    ...
    "omsWorkspacename": {
        "type": "string",
        "defaultValue": "mysfomsworkspace",
        "metadata": {
            "description": "Name of your OMS Log Analytics Workspace"
        }
    },
    "omsRegion": {
        "type": "string",
        "defaultValue": "West Europe",
        "allowedValues": [
            "West Europe",
            "East US",
            "Southeast Asia"
        ],
        "metadata": {
            "description": "Specify the Azure Region for your OMS workspace"
        }
    }
}

Dále přidejte proměnné:

"variables": {
    ...
    "solution": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
    "solutionName": "ServiceFabric"
}

Přidejte rozšíření agenta Log Analytics do každé škálovací sady virtuálních počítačů v clusteru a připojte agenta k pracovnímu prostoru služby Log Analytics. To umožňuje shromažďovat diagnostická data o kontejnerech, aplikacích a monitorování výkonu. Když ho přidáte jako rozšíření prostředku škálovací sady virtuálních počítačů, Azure Resource Manager zajistí, že se nainstaluje na každý uzel i při škálování clusteru.

"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('vmNodeType1Name')]",
"properties": {
    ...
    "virtualMachineProfile": {
        "extensionProfile": {
            "extensions": [
                {
                    "name": "[concat(variables('vmNodeType0Name'),'OMS')]",
                    "properties": {
                        "publisher": "Microsoft.EnterpriseCloud.Monitoring",
                        "type": "MicrosoftMonitoringAgent",
                        "typeHandlerVersion": "1.0",
                        "autoUpgradeMinorVersion": true,
                        "settings": {
                            "workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]"
                        },
                        "protectedSettings": {
                            "workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]"
                        }
                    }
                }
            ...
            ]
        }
    }
}

Nasazení virtuální sítě a clusteru

Dále nastavte topologii sítě a nasaďte cluster Service Fabric. Šablona Azuredeploy.json Resource Manageru vytvoří virtuální síť, podsíť a skupinu zabezpečení sítě pro Service Fabric. Šablona také nasadí cluster s povoleným zabezpečením pomocí certifikátu. Pro produkční clustery použijte jako certifikát clusteru certifikát od certifikační autority. K zabezpečení testovacích clusterů můžete použít certifikát podepsaný svým držitelem.

Šablona v tomto článku nasadí cluster, který k identifikaci certifikátu používá kryptografický otisk certifikátu. Žádné dva certifikáty nemohou mít stejný kryptografický otisk, což ztěžuje správu certifikátů. Přepnutí nasazeného clusteru z kryptografických otisků certifikátů na běžné názvy certifikátů zjednodušuje správu certifikátů. Informace o tom, jak aktualizovat cluster tak, aby používal běžné názvy certifikátů pro správu certifikátů, najdete v tématu Změna clusteru na správu běžných názvů certifikátů.

Vytvoření clusteru pomocí existujícího certifikátu

Následující skript používá rutinu New-AzServiceFabricCluster a šablonu k nasazení nového clusteru v Azure. Rutina vytvoří nový trezor klíčů v Azure a nahraje certifikát.

# Variables.
$groupname = "sfclustertutorialgroup"
$clusterloc="southcentralus"  # Must match the location parameter in the template
$templatepath="C:\temp\cluster"

$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
$clustername = "mysfcluster123"  # Must match the clustername parameter in the template
$vaultname = "clusterkeyvault123"
$vaultgroupname="clusterkeyvaultgroup123"
$subname="$clustername.$clusterloc.cloudapp.azure.com"

# Sign in to your Azure account and select your subscription
Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>

# Create a new resource group for your deployment, and give it a name and a location.
New-AzResourceGroup -Name $groupname -Location $clusterloc

# Create the Service Fabric cluster.
New-AzServiceFabricCluster  -ResourceGroupName $groupname -TemplateFile "$templatepath\azuredeploy.json" `
-ParameterFile "$templatepath\azuredeploy.parameters.json" -CertificatePassword $certpwd `
-KeyVaultName $vaultname -KeyVaultResourceGroupName $vaultgroupname -CertificateFile $certpath

Vytvoření clusteru pomocí nového certifikátu podepsaného svým držitelem

Následující skript používá rutinu New-AzServiceFabricCluster a šablonu k nasazení nového clusteru v Azure. Rutina vytvoří nový trezor klíčů v Azure, přidá do trezoru klíčů nový certifikát podepsaný svým držitelem a stáhne soubor certifikátu místně.

# Variables.
$groupname = "sfclustertutorialgroup"
$clusterloc="southcentralus"  # Must match the location parameter in the template
$templatepath="C:\temp\cluster"

$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\"
$clustername = "mysfcluster123"
$vaultname = "clusterkeyvault123"
$vaultgroupname="clusterkeyvaultgroup123"
$subname="$clustername.$clusterloc.cloudapp.azure.com"

# Sign in to your Azure account and select your subscription
Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>

# Create a new resource group for your deployment, and give it a name and a location.
New-AzResourceGroup -Name $groupname -Location $clusterloc

# Create the Service Fabric cluster.
New-AzServiceFabricCluster  -ResourceGroupName $groupname -TemplateFile "$templatepath\azuredeploy.json" `
-ParameterFile "$templatepath\azuredeploy.parameters.json" -CertificatePassword $certpwd `
-CertificateOutputFolder $certfolder -KeyVaultName $vaultname -KeyVaultResourceGroupName $vaultgroupname -CertificateSubjectName $subname

Připojení k zabezpečenému clusteru

Připojení do clusteru pomocí modulu Service Fabric PowerShell nainstalovaného se sadou Service Fabric SDK. Nejprve nainstalujte certifikát do osobního úložiště (Moje) aktuálního uživatele na počítači. Spusťte následující příkaz PowerShellu:

$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
        -FilePath C:\mycertificates\mysfcluster20170531104310.pfx `
        -Password $certpwd

Teď jste připraveni se připojit ke svému zabezpečenému clusteru.

Modul PowerShellu pro Service Fabric poskytuje řadu rutin pro správu clusterů Service Fabric, aplikací a služeb. Pomocí rutiny Connect-ServiceFabricCluster se připojte k zabezpečenému clusteru. Podrobnosti o kryptografickém otisku certifikátu SHA1 a koncovém bodu připojení se nacházejí ve výstupu z předchozího kroku.

Pokud jste dříve nastavili ověřování klienta Microsoft Entra, spusťte následující příkaz:

Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
        -KeepAliveIntervalInSec 10 `
        -AzureActiveDirectory `
        -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10

Pokud jste nenastavili ověřování klienta Microsoft Entra, spusťte následující příkaz:

Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
          -KeepAliveIntervalInSec 10 `
          -X509Credential -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10 `
          -FindType FindByThumbprint -FindValue C4C1E541AD512B8065280292A8BA6079C3F26F10 `
          -StoreLocation CurrentUser -StoreName My

Pomocí rutiny Get-ServiceFabricClusterHealth zkontrolujte, že jste připojení a že je cluster v pořádku.

Get-ServiceFabricClusterHealth

Vyčištění prostředků

Další články v této sérii kurzů používají cluster, který jste vytvořili. Pokud nechcete ihned pokračovat dalším článkem, můžete cluster odstranit, aby se vám neúčtovaly poplatky.

Další kroky

V následujícím kurzu se dozvíte, jak škálovat cluster.

  • Vytvoření virtuální sítě v Azure pomocí PowerShellu
  • Vytvoření trezoru klíčů a nahrání certifikátu
  • Nastavení ověřování Microsoft Entra
  • Konfigurace kolekce diagnostiky
  • Nastavení služby EventStore
  • Nastavení protokolů služby Azure Monitor
  • Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
  • Zabezpečení clusteru pomocí certifikátu X.509
  • Připojení ke clusteru pomocí prostředí PowerShell
  • Odebrat cluster

V dalším kurzu se dozvíte, jak monitorovat cluster.