Tworzenie szablonu usługi Resource Manager klastra usługi Service Fabric
Klaster usługi Azure Service Fabric to połączony z siecią zestaw maszyn wirtualnych, w którym są wdrażane i zarządzane mikrousługi. Klaster usługi Service Fabric uruchomiony na platformie Azure to zasób platformy Azure, który jest wdrażany, zarządzany i monitorowany przy użyciu usługi Resource Manager. W tym artykule opisano sposób tworzenia szablonu usługi Resource Manager dla klastra usługi Service Fabric uruchomionego na platformie Azure. Po zakończeniu tworzenia szablonu można wdrożyć klaster na platformie Azure.
Zabezpieczenia klastra są konfigurowane podczas pierwszej konfiguracji klastra i nie można ich później zmienić. Przed skonfigurowaniem klastra przeczytaj scenariusze zabezpieczeń klastra usługi Service Fabric. Na platformie Azure usługa Service Fabric używa certyfikatu x509 do zabezpieczania klastra i jego punktów końcowych, uwierzytelniania klientów i szyfrowania danych. Firma Microsoft Entra ID zaleca się również zabezpieczanie dostępu do punktów końcowych zarządzania. Przed utworzeniem klastra należy utworzyć dzierżawy i użytkowników usługi Microsoft Entra. Aby uzyskać więcej informacji, przeczytaj Konfigurowanie identyfikatora entra firmy Microsoft w celu uwierzytelniania klientów.
Przed wdrożeniem klastra produkcyjnego w celu uruchamiania obciążeń produkcyjnych należy najpierw przeczytać listę kontrolną Gotowość produkcyjna.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Tworzenie szablonu usługi Resource Manager
Przykładowe szablony usługi Resource Manager są dostępne w przykładach platformy Azure w witrynie GitHub. Te szablony mogą służyć jako punkt wyjścia dla szablonu klastra.
W tym artykule użyto przykładowego szablonu i parametrów szablonu z pięcioma węzłami bezpiecznego klastra . Pobierz azuredeploy.json i azuredeploy.parameters.json na komputer i otwórz oba pliki w ulubionym edytorze tekstów.
Uwaga
W przypadku chmur krajowych (Azure Government, Microsoft Azure obsługiwanych przez firmę 21Vianet, Azure (Niemcy) należy również dodać następujące elementy fabricSettings
do szablonu: AADLoginEndpoint
, AADTokenEndpointFormat
i AADCertEndpointFormat
.
Dodawanie certyfikatów
Certyfikaty są dodawane do szablonu usługi Resource Manager klastra, odwołując się do magazynu kluczy kluczy, który zawiera klucze certyfikatów. Dodaj te parametry i wartości magazynu kluczy w pliku parametrów szablonu usługi Resource Manager (azuredeploy.parameters.json).
Dodawanie wszystkich certyfikatów do zestawu skalowania maszyn wirtualnych osProfile
Każdy certyfikat zainstalowany w klastrze musi być skonfigurowany w sekcji osProfile zasobu zestawu skalowania (Microsoft.Compute/virtualMachineScaleSets). Ta akcja powoduje, że dostawca zasobów zainstaluje certyfikat na maszynach wirtualnych. Ta instalacja obejmuje zarówno certyfikat klastra, jak i wszystkie certyfikaty zabezpieczeń aplikacji, które mają być używane dla aplikacji:
{
"apiVersion": "[variables('vmssApiVersion')]",
"type": "Microsoft.Compute/virtualMachineScaleSets",
...
"properties": {
...
"osProfile": {
...
"secrets": [
{
"sourceVault": {
"id": "[parameters('sourceVaultValue')]"
},
"vaultCertificates": [
{
"certificateStore": "[parameters('clusterCertificateStorevalue')]",
"certificateUrl": "[parameters('clusterCertificateUrlValue')]"
},
{
"certificateStore": "[parameters('applicationCertificateStorevalue')",
"certificateUrl": "[parameters('applicationCertificateUrlValue')]"
},
...
]
}
]
}
}
}
Konfigurowanie certyfikatu klastra usługi Service Fabric
Certyfikat uwierzytelniania klastra należy skonfigurować zarówno w zasobie klastra usługi Service Fabric (Microsoft.ServiceFabric/clusters), jak i rozszerzeniu usługi Service Fabric dla zestawów skalowania maszyn wirtualnych w zasobie zestawu skalowania maszyn wirtualnych. To rozwiązanie umożliwia dostawcy zasobów usługi Service Fabric skonfigurowanie go do użycia na potrzeby uwierzytelniania klastra i uwierzytelniania serwera dla punktów końcowych zarządzania.
Dodawanie informacji o certyfikacie zasobu zestawu skalowania maszyn wirtualnych
{
"apiVersion": "[variables('vmssApiVersion')]",
"type": "Microsoft.Compute/virtualMachineScaleSets",
...
"properties": {
...
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt_',variables('vmNodeType0Name'))]",
"properties": {
...
"settings": {
...
"certificate": {
"commonNames": ["[parameters('certificateCommonName')]"],
"x509StoreName": "[parameters('clusterCertificateStoreValue')]"
},
...
}
}
}
]
}
}
}
}
Dodawanie informacji o certyfikacie do zasobu klastra usługi Service Fabric
{
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"location": "[parameters('clusterLocation')]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
],
"properties": {
"certificateCommonNames": {
"commonNames": [
{
"certificateCommonName": "[parameters('certificateCommonName')]",
"certificateIssuerThumbprint": ""
}
],
"x509StoreName": "[parameters('certificateStoreValue')]"
},
...
}
}
Dodawanie konfiguracji firmy Microsoft Entra w celu używania identyfikatora Entra firmy Microsoft na potrzeby dostępu klienta
Konfigurację usługi Microsoft Entra można dodać do szablonu usługi Resource Manager klastra, odwołując się do magazynu kluczy zawierającego klucze certyfikatów. Dodaj te parametry i wartości firmy Microsoft w pliku parametrów szablonu usługi Resource Manager (azuredeploy.parameters.json).
Uwaga
W systemie Linux należy utworzyć dzierżawy i użytkowników firmy Microsoft przed utworzeniem klastra. Aby uzyskać więcej informacji, przeczytaj Konfigurowanie identyfikatora entra firmy Microsoft w celu uwierzytelniania klientów.
{
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
...
"properties": {
"certificateCommonNames": {
"commonNames": [
{
"certificateCommonName": "[parameters('certificateCommonName')]",
"certificateIssuerThumbprint": ""
}
],
"x509StoreName": "[parameters('certificateStoreValue')]"
},
...
"azureActiveDirectory": {
"tenantId": "[parameters('aadTenantId')]",
"clusterApplication": "[parameters('aadClusterApplicationId')]",
"clientApplication": "[parameters('aadClientApplicationId')]"
},
...
}
}
Wypełnianie pliku parametrów wartościami
Na koniec użyj wartości wyjściowych z magazynu kluczy i poleceń programu PowerShell usługi Azure AD, aby wypełnić plik parametrów.
Jeśli planujesz używać modułów programu PowerShell usługi Azure Service Fabric, nie musisz wypełniać informacji o certyfikacie klastra. Jeśli chcesz, aby system wygenerował certyfikat z podpisem własnym dla zabezpieczeń klastra, po prostu zachowaj je jako null.
Uwaga
Aby moduły RM pobierały i wypełniały te puste wartości parametrów, nazwy parametrów są znacznie zgodne z poniższymi nazwami
"clusterCertificateThumbprint": {
"value": ""
},
"certificateCommonName": {
"value": ""
},
"clusterCertificateUrlValue": {
"value": ""
},
"sourceVaultvalue": {
"value": ""
},
Jeśli używasz certyfikatów aplikacji lub używasz istniejącego klastra przekazanego do magazynu kluczy, musisz uzyskać te informacje i wypełnić je.
Moduły RM nie mają możliwości wygenerowania konfiguracji firmy Microsoft Entra, więc jeśli planujesz użyć identyfikatora Entra firmy Microsoft na potrzeby dostępu klienta, musisz go wypełnić.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
...
"clusterCertificateStoreValue": {
"value": "My"
},
"clusterCertificateThumbprint": {
"value": "<thumbprint>"
},
"clusterCertificateUrlValue": {
"value": "https://myvault.vault.azure.net:443/secrets/myclustercert/4d087088df974e869f1c0978cb100e47"
},
"applicationCertificateStorevalue": {
"value": "My"
},
"applicationCertificateUrlValue": {
"value": "https://myvault.vault.azure.net:443/secrets/myapplicationcert/2e035058ae274f869c4d0348ca100f08"
},
"sourceVaultvalue": {
"value": "/subscriptions/<guid>/resourceGroups/mycluster-keyvault/providers/Microsoft.KeyVault/vaults/myvault"
},
"aadTenantId": {
"value": "<guid>"
},
"aadClusterApplicationId": {
"value": "<guid>"
},
"aadClientApplicationId": {
"value": "<guid>"
},
...
}
}
Testowanie szablonu
Użyj następującego polecenia programu PowerShell, aby przetestować szablon usługi Resource Manager przy użyciu pliku parametrów:
Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json
W przypadku wystąpienia problemów i otrzymania tajemniczych komunikatów użyj opcji "-Debug".
Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug
Na poniższym diagramie pokazano, gdzie magazyn kluczy i konfiguracja firmy Microsoft Entra mieszczą się w szablonie usługi Resource Manager.
Następne kroki
Teraz, gdy masz szablon dla klastra, dowiedz się, jak wdrożyć klaster na platformie Azure. Jeśli jeszcze tego nie zrobiono, zapoznaj się z listą kontrolną Gotowość produkcyjna przed wdrożeniem klastra produkcyjnego.
Aby dowiedzieć się więcej o składni i właściwościach JSON dla zasobów wdrożonych w tym artykule, zobacz: