Развертывание кластера Service Fabric в Azure Stack Hub
Используйте элемент кластера Service Fabric из Azure Marketplace для развертывания защищенного кластера Service Fabric в Azure Stack Hub.
Дополнительные сведения о работе с Service Fabric см. в обзоре Azure Service Fabric и сценариях безопасности кластера Service Fabric в документации Azure.
В Azure Stack Hub кластер Service Fabric не использует ресурсный провайдер Microsoft.ServiceFabric. Вместо этого в Azure Stack Hub кластер Service Fabric — это масштабируемый набор виртуальных машин с предварительно установленным программным обеспечением, использующим конфигурацию требуемого состояния (DSC).
Необходимые условия
Для развертывания кластера Service Fabric необходимо выполнить следующие действия.
сертификат кластера
Это сертификат сервера X.509, добавляемый в Key Vault при развертывании Service Fabric.CN в этом сертификате должны соответствовать полному доменному имени (FQDN) создаваемого кластера Service Fabric.
Формат сертификата должен быть PFX, так как требуются открытые и закрытые ключи. См. требования для создания сертификата на стороне сервера.
Заметка
Для тестирования вместо серверного сертификата X.509 можно использовать самоподписанный сертификат. Самозаверяющий сертификат не должен соответствовать полному доменному имени кластера.
сертификат клиента администратора
Это сертификат, который клиент использует для проверки подлинности в кластере Service Fabric, который может быть самозаверяющим. См. требования с указанием для создания этого клиентского сертификата.Следующие элементы должны быть доступны в Azure Stack Hub Marketplace:
- Windows Server 2016 — шаблон использует образ Windows Server 2016 для создания кластера.
- расширение пользовательского скрипта — расширение виртуальной машины от Корпорации Майкрософт.
- Конфигурация PowerShell по состоянию на определённый момент времени — расширение виртуальной машины от Microsoft.
Добавление секрета в Key Vault
Чтобы развернуть кластер Service Fabric, необходимо указать правильный идентификатор секрета Key Vault или URL-адрес для кластера Service Fabric. Шаблон Azure Resource Manager принимает Key Vault в качестве входных данных. Затем шаблон извлекает сертификат кластера при установке кластера Service Fabric.
Важный
Необходимо использовать PowerShell для добавления секрета в Key Vault для использования с Service Fabric. Не используйте портал.
Используйте следующий сценарий, чтобы создать Key Vault и добавить в него сертификат кластера . (См. предварительные требования .) Перед запуском скрипта просмотрите пример скрипта и обновите указанные параметры, чтобы соответствовать вашей среде. Этот скрипт также выводит значения, которые необходимо предоставить шаблону Azure Resource Manager.
Совет
Прежде чем скрипт сможет завершиться успешно, необходимо предоставить общедоступное предложение, включающее службы для вычислений, сети, хранилища и Key Vault.
function Get-ThumbprintFromPfx($PfxFilePath, $Password)
{
return New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PfxFilePath, $Password)
}
function Publish-SecretToKeyVault ($PfxFilePath, $Password, $KeyVaultName)
{
$keyVaultSecretName = "ClusterCertificate"
$certContentInBytes = [io.file]::ReadAllBytes($PfxFilePath)
$pfxAsBase64EncodedString = [System.Convert]::ToBase64String($certContentInBytes)
$jsonObject = ConvertTo-Json -Depth 10 ([pscustomobject]@{
data = $pfxAsBase64EncodedString
dataType = 'pfx'
password = $Password
})
$jsonObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$jsonEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
$secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText -Force
$keyVaultSecret = Set-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName -SecretValue $secret
$pfxCertObject = Get-ThumbprintFromPfx -PfxFilePath $PfxFilePath -Password $Password
Write-Host "KeyVault id: " -ForegroundColor Green
(Get-AzKeyVault -VaultName $KeyVaultName).ResourceId
Write-Host "Secret Id: " -ForegroundColor Green
(Get-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName).id
Write-Host "Cluster Certificate Thumbprint: " -ForegroundColor Green
$pfxCertObject.Thumbprint
}
#========================== CHANGE THESE VALUES ===============================
$armEndpoint = "https://management.local.azurestack.external"
$tenantId = "your_tenant_ID"
$location = "local"
$clusterCertPfxPath = "Your_path_to_ClusterCert.pfx"
$clusterCertPfxPassword = "Your_password_for_ClusterCert.pfx"
#==============================================================================
Add-AzEnvironment -Name AzureStack -ARMEndpoint $armEndpoint
Connect-AzAccount -Environment AzureStack -TenantId $tenantId
$rgName = "sfvaultrg"
Write-Host "Creating Resource Group..." -ForegroundColor Yellow
New-AzResourceGroup -Name $rgName -Location $location
Write-Host "Creating Key Vault..." -ForegroundColor Yellow
$Vault = New-AzKeyVault -VaultName sfvault -ResourceGroupName $rgName -Location $location -EnabledForTemplateDeployment -EnabledForDeployment -EnabledForDiskEncryption
Write-Host "Publishing certificate to Vault..." -ForegroundColor Yellow
Publish-SecretToKeyVault -PfxFilePath $clusterCertPfxPath -Password $clusterCertPfxPassword -KeyVaultName $vault.VaultName
Дополнительные сведения см. в статье Управление Key Vault в Azure Stack Hub с помощьюPowerShell.
Развертывание элемента Marketplace
На пользовательском портале перейдите в раздел + Создание ресурса>Вычисление>Кластер Service Fabric.
Для каждой страницы, например основы, заполните форму развертывания. Используйте значения по умолчанию, если вы не уверены в значении.
Для развертываний в отключенном Azure Stack Hub или для развертывания другой версии Service Fabric скачайте пакет развертывания Service Fabric и соответствующий пакет среды выполнения и разместите его в BLOB-хранилище Azure Stack Hub. Укажите эти значения в полях URL-адрес пакета развертывания Service Fabric и URL-адрес пакета среды выполнения Service Fabric.
Заметка
Существуют проблемы совместимости между последним выпуском Service Fabric и соответствующим пакетом SDK. До устранения этой проблемы укажите следующие параметры URL-адресу пакета развертывания и URL-адресу пакета среды выполнения. Ваши развертывания завершатся ошибкой в противном случае.
- URL-адрес пакета развертывания Service Fabric: https://download.microsoft.com/download/8/3/6/836E3E99-A300-4714-8278-96BC3E8B5528/6.5.641.9590/Microsoft.Azure.ServiceFabric.WindowsServer.6.5.641.9590.zip
- URL-адрес пакета среды выполнения Service Fabric: https://download.microsoft.com/download/B/0/B/B0BCCAC5-65AA-4BE3-AB13-D5FF5890F4B5/6.5.641.9590/MicrosoftAzureServiceFabric.6.5.641.9590.cab
Для отключенных развертываний скачайте эти пакеты из указанного расположения и разместите их локально в Blob-хранилище Azure Stack Hub.
На странице параметров сети можно указать определенные порты для открытия приложений:
На странице безопасность добавьте значения, которые вы получили при создании Azure Key Vault и загрузке секрета.
Для сертификата клиентаадминистрирования введите отпечаток сертификата клиента администрирования. (См. предварительные требования .)
- Исходное хранилище ключей: укажите всю строку
keyVault id
из результатов скрипта. - URL-адрес сертификата кластера: укажите весь URL-адрес из раздела
Secret Id
результатов скрипта. - Отпечаток сертификата кластера: укажите из результатов скрипта отпечаток сертификата кластера .
- URL-адрес сертификата сервера: если вы хотите использовать отдельный сертификат от сертификата кластера, отправьте сертификат в keyvault и укажите полный URL-адрес секрета.
- Отпечаток сертификата сервера: укажите отпечаток сертификата сервера.
- Отпечатки сертификатов клиента администратора: укажите отпечаток сертификата клиента администратора, созданный в рамках предварительных требований.
- Исходное хранилище ключей: укажите всю строку
Завершите работу мастера и выберите Создать для развертывания кластера Service Fabric.
Доступ к кластеру Service Fabric
Доступ к кластеру Service Fabric можно получить с помощью Service Fabric Explorer или Service Fabric PowerShell.
Используйте Service Fabric Explorer
Убедитесь, что браузер имеет доступ к сертификату клиента администратора и может пройти проверку подлинности в кластере Service Fabric.
a. Откройте Internet Explorer и перейдите к >содержание>сертификаты.
b. В разделе Сертификаты выберите Импорт, чтобы запустить мастер импорта сертификатов, а затем нажмите Далее. На странице "Файл для импорта" нажмите "Обзор"и выберите сертификат клиента администрирования, который вы предоставили в шаблон Azure Resource Manager.
Заметка
Этот сертификат не является сертификатом кластера, который ранее был добавлен в Key Vault.
с. Убедитесь, что в раскрывающемся списке расширения окна проводника выбран параметр "Обмен персональными данными".
обмен персональными данными
д. На странице хранилища сертификатов выберите "Личный", а затем завершите работу мастера.
Чтобы найти полное доменное имя кластера Service Fabric, выполните следующие действия.
a. Перейдите в группу ресурсов, связанную с кластером Service Fabric, и найдите общедоступный IP-адрес ресурс. Выберите объект, связанный с общедоступным IP-адресом, чтобы открыть колонку общедоступный IP-адрес.
b. На блейде общедоступного IP-адреса полное доменное имя отображается как DNS-имя .
Чтобы найти URL-адрес для Service Fabric Explorer и конечной точки подключения клиента, просмотрите результаты развертывания шаблона.
В браузере перейдите к
https://*FQDN*:19080
. Замените полное доменное имя на полное доменное имя кластера Service Fabric на шаге 2.
Если вы использовали самозаверяющий сертификат, вы получите предупреждение о том, что подключение не безопасно. Чтобы продолжить на веб-сайт, выберите Подробнее, а затем Перейти на веб-страницу.Чтобы пройти проверку подлинности на сайте, необходимо выбрать сертификат для использования. Выберите Другие варианты, выберите соответствующий сертификат и нажмите кнопку ОК, чтобы подключиться к Service Fabric Explorer.
Использование PowerShell для Service Fabric
Установите пакет SDK Microsoft Azure Service Fabric из подготовки среды разработки на Windows в документации по Azure Service Fabric.
После завершения установки настройте системные переменные среды, чтобы убедиться, что командлеты Service Fabric доступны из PowerShell.
a. Перейдите в Панель управления >Система и безопасность>Система, а затем выберите Дополнительные параметры системы.
b. На вкладке Advanced в System Propertiesвыберите Переменные среды.
с. Для системных переменных измените путь и убедитесь, что C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code находится в верхней части списка переменных среды.
После изменения порядка переменных среды перезапустите PowerShell и запустите следующий скрипт PowerShell, чтобы получить доступ к кластеру Service Fabric:
Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric CLUSTER FQDN\]:19000" \` -X509Credential -ServerCertThumbprint 761A0D17B030723A37AA2E08225CD7EA8BE9F86A \` -FindType FindByThumbprint -FindValue 0272251171BA32CEC7938A65B8A6A553AA2D3283 \` -StoreLocation CurrentUser -StoreName My -Verbose
Заметка
Перед именем кластера в скрипте нет https://. Требуется порт 19000.