Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кластер Azure Service Fabric — это подключенный к сети набор виртуальных машин, в котором вы развертываете микрослужбы и управляете ими. Кластер Service Fabric, работающий в Azure, является ресурсом Azure и развертывается, управляется и отслеживается с помощью Resource Manager. В этой статье описывается, как создать шаблон Resource Manager для кластера Service Fabric, работающего в Azure. По завершении шаблона можно развернуть кластер в Azure.
Безопасность кластера настраивается при первой настройке кластера и не может быть изменена позже. Перед настройкой кластера ознакомьтесь со статьей Сценарии защиты кластера Service Fabric. В Azure для защиты кластера и его конечных точек, проверки подлинности клиентов и шифрования данных Service Fabric требует использования сертификата x509. Microsoft Entra ID также рекомендуется для обеспечения безопасности доступа к конечным точкам управления. Перед созданием кластера необходимо создать арендаторов и пользователей Microsoft Entra. Дополнительные сведения см. в статье "Настройка идентификатора Microsoft Entra для проверки подлинности клиентов".
Прежде чем развертывать рабочий кластер для выполнения рабочих нагрузок, сначала ознакомьтесь с контрольным списком готовности к рабочей среде.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
Создание шаблона Resource Manager
Примеры шаблонов Resource Manager доступны в образцах Azure на сайте GitHub. Их можно использовать в качестве отправной точки для создания шаблона кластера.
В этой статье используются примеры шаблона и параметров шаблона для безопасного кластера с пятью узлами . Скачайте azuredeploy.json и azuredeploy.parameters.json на компьютер и откройте оба файла в избранном текстовом редакторе.
Примечание.
Для национальных облаков (Azure для государственных организаций, Microsoft Azure, управляемых 21Vianet, Azure в Германии) также следует добавить следующее в ваш шаблон: fabricSettings
, AADLoginEndpoint
и AADTokenEndpointFormat
.
Добавление сертификатов
Вы добавляете сертификаты в шаблон Resource Manager кластера, ссылаясь на хранилище ключей, содержащее ключи сертификатов. Добавьте эти параметры и значения хранилища ключей в файл параметров шаблона Resource Manager (azuredeploy.parameters.json).
Добавление всех сертификатов в масштабируемый набор виртуальных машин osProfile
Каждый сертификат, установленный в кластере, должен быть настроен в разделе osProfile ресурса масштабирующего набора виртуальных машин (Microsoft.Compute/virtualMachineScaleSets). Это действие указывает поставщику ресурсов установить сертификат на виртуальных машинах. Эта установка включает как сертификат кластера, так и все сертификаты безопасности приложений, которые планируется использовать для ваших приложений:
{
"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')]"
},
...
]
}
]
}
}
}
Настройка сертификата кластера Service Fabric
Сертификат аутентификации кластера должен быть настроен как в ресурсе кластера Service Fabric (Microsoft.ServiceFabric/clusters), так и в расширении Service Fabric для масштабируемых наборов виртуальных машин в ресурсе этих наборов. Это позволяет поставщику ресурсов Service Fabric настроить его для проверки подлинности кластера и проверки подлинности сервера для конечных точек управления.
Добавить сведения о сертификате для ресурса масштабируемого набора виртуальных машин
{
"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')]"
},
...
}
}
}
]
}
}
}
}
Добавление сведений о сертификате в ресурс кластера 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')]"
},
...
}
}
Добавление конфигурации Microsoft Entra для использования идентификатора Microsoft Entra для доступа к клиенту
Вы добавляете конфигурацию Microsoft Entra в шаблон Resource Manager кластера, ссылаясь на хранилище ключей, содержащее ключи сертификата. Добавьте эти параметры и значения Microsoft Entra в файл параметров шаблона Resource Manager (azuredeploy.parameters.json).
Примечание.
В Linux перед созданием кластера необходимо создать клиенты и пользователи Microsoft Entra. Дополнительные сведения см. в статье "Настройка идентификатора Microsoft Entra для проверки подлинности клиентов".
{
"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')]"
},
...
}
}
Заполнение файла параметров значениями
Наконец, используйте выходные значения из хранилища ключей и команд Microsoft Entra PowerShell для заполнения файла параметров.
Если вы планируете использовать модули Azure Service Fabric RM PowerShell, вам не нужно заполнять сведения о сертификате кластера. Если вы хотите, чтобы система создавала самозаверяющий сертификат для безопасности кластера, просто сохраните их как null.
Примечание.
Для того чтобы модули RM могли получить и заполнить эти пустые значения параметров, имена параметров должны соответствовать именам ниже.
"clusterCertificateThumbprint": {
"value": ""
},
"certificateCommonName": {
"value": ""
},
"clusterCertificateUrlValue": {
"value": ""
},
"sourceVaultvalue": {
"value": ""
},
Если вы используете сертификаты приложений или используете существующий кластер, отправленный в хранилище ключей, необходимо получить эти сведения и заполнить его.
Модули RM не имеют возможности создавать конфигурацию Microsoft Entra для вас, поэтому если вы планируете использовать идентификатор Microsoft Entra для клиентского доступа, его необходимо заполнить.
{
"$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>"
},
...
}
}
Тестирование шаблона
Используйте следующую команду PowerShell для тестирования шаблона Resource Manager с помощью файла параметров:
Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json
При возникновении проблем и получении криптографических сообщений используйте "-Debug" в качестве параметра.
Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug
На следующей схеме показано, где хранилище ключей и конфигурация Microsoft Entra соответствуют шаблону Resource Manager.
Дальнейшие действия
Теперь, когда у вас есть шаблон для кластера, узнайте, как развернуть кластер в Azure. Если вы еще не сделали этого, прочитайте контрольный список готовности к рабочей среде перед развертыванием рабочего кластера.
Дополнительные сведения о синтаксисе и свойствах JSON для ресурсов, развернутых в этой статье, см. в следующих статьях: