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

Tento kurz je první částí série. Zjistíte, jak nasadit cluster Azure Service Fabric s Windows do virtuální sítě Azure a skupiny zabezpečení sítě pomocí PowerShellu a šablony. Po dokončení budete mít v cloudu spuštěný cluster, do kterého můžete nasazovat aplikace. Informace o vytvoření clusteru s Linuxem, který používá Azure CLI, najdete v tématu Vytvoření zabezpečeného clusteru s Linuxem v Azure.

Tento kurz popisuje produkční scénář. Pokud chcete pro účely testování vytvořit menší cluster, podívejte se na část 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í Azure Active Directory ověřování
  • Konfigurace shromažďování diagnostických dat
  • Nastavení služby EventStore
  • Nastavení Azure Monitor protokolů
  • Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
  • Zabezpečit cluster 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

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavky

Než začnete s tímto kurzem:

Následující postupy vytvoří cluster se sedmi uzly Service Fabric clusteru. 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í Azure Resource Manager šablony:

Tato šablona nasadí do virtuální sítě a skupiny zabezpečení sítě zabezpečený cluster sedmi virtuálních počítačů a tří typů uzlů. Další ukázkové šablony najdete na GitHubu. V azuredeploy.jsnasadí několik 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 zabezpečený (konfigurovatelný v parametrech šablony).
  • Je povolený reverzní proxy server.
  • Služba DNS je povolená.
  • Bronzová úroveň odolnosti (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 jiné porty aplikací, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups, aby provoz povoll.

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 (je potřeba minimálně 256 portů).
  • Porty pro použití aplikací: 80 a 443
  • Rozsah portů aplikací: 49152 až 65534 (používá se pro komunikaci mezi službou. Ostatní porty se v nástroji pro vyrovnávání zatížení neotevře.
  • Všechny ostatní porty jsou blokované

Pokud jsou potřeba jiné porty aplikací, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups, aby provoz povoll.

Windows Defender

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

{
"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ů. Pro vaše nasazení je dobré upravit následující parametry:

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ů.
location southcentralus 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í Azure Active Directory klienta

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

  • Jako Azure Active Directory klienta použijte soubor .
  • Použijte certifikát pro identitu serveru a šifrování protokolu TLS komunikace protokolu HTTP.

Nastavení Azure Active Directory (Azure AD) pro ověřování klientů pro cluster Service Fabric musí být provedeno před vytvořením clusteru. Azure AD 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ů do svých funkcí správy, včetně webových Service Fabric Explorer a Visual Studio. V důsledku toho vytvoříte dvě aplikace Azure AD 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ávce.

Poznámka

Před vytvořením clusteru musíte provést následující kroky. Vzhledem k tomu, že skripty očekávají názvy clusterů a koncové body, 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ž tenanta vytvořili. Pokud ne, začněte tím, že si přečetli článek Jak získat tenanta Azure Active Directory tenanta.

Pro zjednodušení kroků při konfiguraci Azure AD s Service Fabric clusterem jsme vytvořili sadu Windows PowerShell skriptů. Stáhněte si skripty do počítače.

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

Vytvořte dvě aplikace Azure AD pro řízení přístupu ke clusteru: jednu webovou aplikaci a jednu nativní aplikaci. Po vytvoření aplikací, které reprezentují váš cluster, přiřaďte uživatele k rolím podporovaným Service Fabric:jen pro čtení a správce.

Spusťte a jako parametry zadejte ID tenanta, název clusteru a adresu SetupApplications.ps1 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, Azure China, Azure Germany) zadejte -Location parametr .

ID tenanta nebo adresáře najdete v části Azure Portal. Vyberte Azure Active Directory > Vlastnosti a zkopírujte hodnotu ID adresáře.

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

WebApplicationReplyUrl je výchozí koncový bod, který Azure AD vrátí uživatelům po dokončení přihlášení. Nastavte tento koncový bod Service Fabric Explorer koncového bodu 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 Azure AD. Po přihlášení skript vytvoří webové a nativní aplikace, které reprezentují váš Service Fabric clusteru. V aplikacích tenanta v Azure Portalby se měly zobrazit dvě nové položky:

  • Název clusteru _ Clusteru
  • Název clusteru _ Klienta

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

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

Přidání konfigurace Azure AD pro použití Azure AD pro klientský přístup

V části azuredeploy.jsnanakonfigurujte Azure AD 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ů doazuredeploy.parameters.js souboru parametrů. 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í diagnostických dat v clusteru

Když používáte cluster Service Fabric, je vhodné shromáždit protokoly ze všech uzlů v centrálním umístění. Díky protokolům 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 tomto clusteru.

Jedním ze způsobů nahrávání a shromažďování protokolů je použití rozšíření Azure Diagnostics (WAD), které odesílá protokoly do služby Azure Storage a také má možnost odesílat protokoly do Azure Application Insights nebo Event Hubs. Můžete také použít externí proces ke čtení událostí z úložiště a jejich umístění do produktu analytické platformy, jako jsou protokoly Azure Monitor nebo jiné řešení pro analýzu protokolů.

Pokud postupuje podle tohoto kurzu, kolekce diagnostiky je už v šabloně nakonfigurovaná.

Pokud máte existující cluster, který nemá nasazenou diagnostiku, můžete ho přidat nebo aktualizovat prostřednictvím šablony clusteru. Upravte šablonu Resource Manager, která se používá k vytvoření existujícího clusteru, nebo ji stáhněte z portálu. Upravte soubor template.jspomocí následujících úloh:

Do části resources (prostředky) 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 do části parameters šablony zadejte . Zástupný text úč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čů (jedna 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 bodu v čase. EventStore je stavová služba Service Fabric, která udržuje události z clusteru. Událost se zveřejňuje prostřednictvím rozhraní Service Fabric Explorer, REST a rozhraní API. EventStore dotazuje cluster přímo, aby mohl získat diagnostická data o libovolné entitě v clusteru, a měl by vám pomoct:

  • Diagnostika problémů s vývojem nebo testováním nebo tam, kde můžete používat kanál monitorování
  • Ověřte, že se správně zpracovávají akce správy, které v clusteru prochádáte.
  • Získání snímku o tom, Service Fabric komunikuje s konkrétní entitou

Pokud chcete povolit službu EventStore ve vašem clusteru, přidejte následující kód do vlastnosti fabricSettings 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í Azure Monitor protokolů pro cluster

Azure Monitor protokolů doporučujeme monitorovat události na úrovni clusteru. Pokud chcete nastavit Azure Monitor 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í z vašeho clusteru. Tato data protokolu jsou uložená v účtu úložiště applicationDiagnosticsStorageAccountName v tabulkách WADServiceFabric*EventTable, WADWindowsEventLogsTable aGINTWEventTable.

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 do každé škálovací sady virtuálních počítačů v clusteru rozšíření agenta Log Analytics 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, a to 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.jsv Resource Manager 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 certifikát od certifikační autority jako certifikát clusteru. 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ý používá kryptografický otisk certifikátu k identifikaci certifikátu clusteru. Žádné dva certifikáty nemůže mít stejný kryptografický otisk, což ztěžuje správu certifikátů. Přepnutí nasazeného clusteru z kryptografického otisku certifikátu na běžné názvy certifikátů zjednodušuje správu certifikátů. Informace o tom, jak aktualizovat cluster tak, aby při správě certifikátů používat běžné názvy 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 pro nasazení nového clusteru v Azure. Rutina vytvoří v Azure nový trezor klíčů a nahraje váš 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 pro nasazení nového clusteru v Azure. Rutina vytvoří nový trezor klíčů v Azure, přidá do něj nový certifikát podepsaný svým držitelem a místně stáhne soubor certifikátu.

# 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řipojte se ke 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 připojit se 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 už dříve nastavili ověřování klientů Azure AD, spusťte následující příkaz:

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

Pokud jste nenastaví ověřování klientů Azure AD, 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řipojeni 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 cluster škálovat.

  • Vytvoření virtuální sítě v Azure pomocí PowerShellu
  • Vytvoření trezoru klíčů a nahrání certifikátu
  • Nastavení Azure Active Directory ověřování
  • Konfigurace shromažďování diagnostických dat
  • Nastavení služby EventStore
  • Nastavení Azure Monitor protokolů
  • Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
  • Zabezpečit cluster 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.