Развертывание кластера Service Fabric в Azure Stack HubDeploy a Service Fabric cluster in Azure Stack Hub

Используйте элемент Кластер Service Fabric в Azure Marketplace для развертывания защищенного кластера Service Fabric в Azure Stack Hub.Use the Service Fabric Cluster item from the Azure Marketplace to deploy a secured Service Fabric cluster in Azure Stack Hub.

Дополнительные сведения о работе с Service Fabric и сценариях защиты кластера Service Fabric можно найти в документации Azure.For more information about working with Service Fabric, see Overview of Azure Service Fabric and Service Fabric cluster security scenarios in the Azure documentation.

Кластер Service Fabric в Azure Stack Hub не использует поставщик ресурсов Microsoft.ServiceFabric.The Service Fabric cluster in Azure Stack Hub doesn't use the resource provider Microsoft.ServiceFabric. Вместо этого в Azure Stack Hub кластер Service Fabric представляет собой масштабируемый набор виртуальных машин с ПО, предустановленным с помощью платформы Desired State Configuration (DSC).Instead, in Azure Stack Hub, the Service Fabric cluster is a virtual machine scale set with preinstalled software using Desired State Configuration (DSC).

Предварительные требованияPrerequisites

Ниже перечислены необходимые условия для развертывания кластера Service Fabric.The following are required to deploy the Service Fabric cluster:

  1. Сертификат кластераCluster certificate
    Этот сертификат сервера X.509 вы добавляете в Key Vault при развертывании Service Fabric.This is the X.509 server certificate you add to Key Vault when deploying Service Fabric.

    • Имя этого сертификата должно соответствовать полному доменному имени (FQDN) созданного вами кластера Service Fabric.The CN on this cert must match the Fully Qualified Domain Name (FQDN) of the Service Fabric cluster you create.

    • Сертификат должен быть PFX-файлом, так как и открытый, и закрытый ключи являются обязательными.The certificate format must be PFX, as both the public and private keys are required. Дополнительные сведения см. в разделе с требованиями для создания сертификата на стороне сервера.See requirements for creating this server-side cert.

      Примечание

      Вы можете использовать самозаверяющий сертификат вместо сертификата сервера X.509 для тестирования.You can use a self-signed certificate inplace of the X.509 server certificate for test purposes. Самозаверяющие сертификаты не обязательно должны совпадать с FQDN кластера.Self-signed certificates do not need to match the FQDN of the cluster.

  2. Сертификат клиента администрирования.Admin Client certificate
    Это сертификат, который клиент использует для проверки подлинности в кластере Service Fabric. Он может быть самозаверяющим.This is the certificate that the client uses to authenticate to the Service Fabric cluster, which can be self-signed. Дополнительные сведения см. в разделе с требованиями для создания клиентского сертификата.See requirements for creating this client cert.

  3. Следующие компоненты должны быть доступны в Azure Stack Hub Marketplace.The following items must be available in the Azure Stack Hub Marketplace:

    • Windows Server 2016 — этот шаблон использует образ Windows Server 2016 для создания кластера.Windows Server 2016 - The template uses the Windows Server 2016 image to create the cluster.
    • Расширение для пользовательских скриптов — расширение виртуальной машины от корпорации Майкрософт.Custom Script Extension - Virtual Machine Extension from Microsoft.
    • Настройка требуемого состояния PowerShell — расширение виртуальной машины от корпорации Майкрософт.PowerShell Desired Stage Configuration - Virtual Machine Extension from Microsoft.

Добавление секрета в Key VaultAdd a secret to Key Vault

Чтобы развернуть кластер Service Fabric, необходимо указать правильный идентификатор секрета Key Vault или URL-адрес для кластера Service Fabric.To deploy a Service Fabric cluster, you must specify the correct Key Vault Secret Identifier or URL for the Service Fabric cluster. Шаблон Azure Resource Manager принимает Key Vault в качестве входного параметра.The Azure Resource Manager template takes a Key Vault as input. Затем при установке кластера Service Fabric шаблон получает сертификат кластера.Then the template retrieves the Cluster certificate when installing the Service Fabric cluster.

Важно!

Добавить секрет в Key Vault для использования в Service Fabric можно с помощью PowerShell.You must use PowerShell to add a secret to Key Vault for use with Service Fabric. Не используйте портал.Do not use the portal.

Используйте приведенный ниже скрипт, чтобы создать Key Vault и добавить сертификат кластера.Use the following script to create the Key Vault and add the cluster certificate to it. (См. раздел Предварительные требования.) Прежде чем запустить скрипт, просмотрите его пример и обновите указанные параметры в соответствии со своей средой.(See the prerequisites.) Before you run the script, review the sample script and update the indicated parameters to match your environment. Этот скрипт также будет выводить значения, которые необходимо указать в шаблоне Azure Resource Manager.This script will also output the values you need to provide to the Azure Resource Manager template.

Совет

Для успешного выполнения скрипта нужно предоставить общедоступное предложение, которое содержит службы для вычислительных ресурсов, сети, хранилища и Key Vault.Before the script can succeed, there must be a public offer that includes the services for Compute, Network, Storage, and 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
   Login-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.For more information, see Manage Key Vault on Azure Stack Hub with PowerShell.

Развертывание элемента MarketplaceDeploy the Marketplace item

  1. На пользовательском портале последовательно выберите + Создать ресурс > Вычисление > Кластер Service Fabric.In the user portal, go to + Create a resource > Compute > Service Fabric Cluster.

    Выбор кластера Service Fabric

  2. Для каждой страницы, например Основные сведения, заполните форму развертывания.For each page, like Basics, fill out the deployment form. Используйте значения по умолчанию, если вы не знаете нужные значения.Use defaults if you're not sure of a value.

    Чтобы выполнить развертывание в отключенной инфраструктуре Azure Stack Hub или развертывание другой версии Service Fabric, скачайте пакет развертывания Service Fabric и соответствующий пакет среды выполнения и разместите их в большом двоичном объекте Azure Stack Hub.For deployments to a disconnected Azure Stack Hub or to deploy another version of Service Fabric, download the Service Fabric deployment package and its corresponding runtime package and host it on an Azure Stack Hub blob. Укажите эти значения в полях URL-адреса пакета развертывания Service Fabric и URL-адреса пакета среды выполнения Service Fabric.Provide these values to the Service Fabric deployment package URL and Service Fabric runtime package URL fields.

    Примечание

    У последних выпусков Service Fabric и соответствующих пакетов SDK существуют проблемы с совместимостью.There are compatibility issues between the latest release of Service Fabric and its corresponding SDK. Пока они не устранены, укажите следующие параметры для URL-адреса пакета развертывания и URL-адреса пакета среды выполнения.Until that issue is addressed, please provide the following parameters to the deployment package URL and runtime package URL. Иначе развертывание завершится сбоем.Your deployments will fail otherwise.

    Для отключенных развертываний скачайте эти пакеты из указанного расположения и разместите их локально в большом двоичном объекте Azure Stack Hub.For disconnected deployments, download these packages from the specified location and host it locally on an Azure Stack Hub Blob.

    Основы

  3. На странице Параметры сети укажите определенные порты, чтобы открыть их для ваших приложений:On the Network Settings page, you can specify specific ports to open for your applications:

    Параметры сети

  4. На странице Безопасность добавьте значения, полученные при создании Azure Key Vault и передаче секрета.On the Security page, add the values that you got from creating the Azure Key Vault and Uploading the Secret.

    В соответствующем поле введите отпечаток сертификата клиента администрирования.For the Admin Client Certificate Thumbprint, enter the thumbprint of the Admin Client certificate. (См. раздел Предварительные требования.)(See the prerequisites.)

    • В поле "Исходное Key Vault" укажите всю строку keyVault id из результатов скрипта.Source Key Vault: Specify entire keyVault id string from the script results.
    • В поле URL-адреса сертификата кластера укажите полный URL-адрес из Secret Id из результатов скрипта.Cluster Certificate URL: Specify the entire URL from the Secret Id from the script results.
    • В поле отпечатка сертификата кластера укажите отпечаток сертификата кластера из результатов скрипта.Cluster Certificate thumbprint: Specify the Cluster Certificate Thumbprint from the script results.
    • URL-адрес сертификата сервера. Если вы хотите использовать отдельный сертификат из сертификата кластера, отправьте сертификат в Key Vault и укажите полный URL-адрес секрета.Server Certificate URL: If you wish to use a separate certificate from the Cluster certificate, upload the certificate to a keyvault and provide the full url to the secret.
    • В поле отпечатка сертификата сервера укажите отпечаток сертификата сервера.Server Certificate thumbprint: Specify the thumbprint for the Server Certificate
    • В поле отпечатков сертификата клиента администрирования укажите отпечаток сертификата клиента администрирования, созданный при выполнении предварительных требований.Admin Client Certificate Thumbprints: Specify the Admin Client Certificate Thumbprint created in the prerequisites.

    Выходные данные скрипта

    Безопасность

  5. Завершите работу мастера, а затем нажмите кнопку Создать для развертывания кластера Service Fabric.Complete the wizard, and then select Create to deploy the Service Fabric Cluster.

Доступ к кластеру Service FabricAccess the Service Fabric Cluster

Вы можете получить доступ к кластеру Service Fabric, используя Service Fabric Explorer или Service Fabric PowerShell.You can access the Service Fabric cluster by using either the Service Fabric Explorer or Service Fabric PowerShell.

Использование Service Fabric ExplorerUse Service Fabric Explorer

  1. Удостоверьтесь, что веб-браузер имеет доступ к сертификату клиента администрирования и может пройти проверку подлинности в кластере Service Fabric.Ensure that the browser has access to your Admin client certificate and can authenticate to your Service Fabric cluster.

    а.a. Откройте Internet Explorer и последовательно выберите Свойства обозревателя > Содержимое > Сертификаты.Open Internet Explorer and go to Internet Options > Content > Certificates.

    b.b. На странице сертификатов выберите Импорт для запуска мастера импорта сертификатов, а затем нажмите кнопку Далее.On Certificates, select Import to start the Certificate Import Wizard, and then click Next. На странице File to Import (Файл для импорта) щелкните Обзор и выберите сертификат клиента администрирования, который вы указали в шаблоне Azure Resource Manager.On the File to Import page click Browse, and select the Admin Client certificate you provided to the Azure Resource Manager template.

    Примечание

    Этот сертификат не является сертификатом кластера, который был добавлен ранее в Key Vault.This certificate is not the Cluster certificate that was previously added to Key Vault.

    c.c. Убедитесь, что в окне проводника в раскрывающемся списке расширений выбрано значение "Файл обмена личной информацией".Ensure that you have "Personal Information Exchange" selected in the extension dropdown of the File Explorer window.

    Файл обмена личной информацией

    d.d. На странице Хранилища сертификатов выберите Личное, а затем завершите работу мастера.On the Certificate Store page, select Personal, and then complete the wizard.
    Хранилище сертификатовCertificate store

  2. Чтобы найти FQDN кластера Service Fabric, выполните следующие действия.To find the FQDN of your Service Fabric cluster:

    а.a. Перейдите к группе ресурсов, связанной с кластером Service Fabric, и найдите ресурс общедоступного IP-адреса.Go to the resource group that is associated with your Service Fabric cluster and locate the Public IP address resource. Выберите объект, связанный с общедоступным IP-адресом, чтобы открыть колонку Общедоступный IP-адрес.Select the object associated with the Public IP address to open the Public IP address blade.

    Общедоступный IP-адрес

    b.b. В колонке "Общедоступный IP-адрес" FQDN отображается как DNS-имя.On the Public IP address blade, the FQDN displays as DNS name.

    DNS-имя

  3. Чтобы найти URL-адрес для Service Fabric Explorer и конечную точку подключения клиента, просмотрите результаты развертывания шаблона.To find the URL for the Service Fabric Explorer, and the Client connection endpoint, review the results of the Template deployment.

  4. В браузере перейдите по адресу https://*FQDN*:19080.In your browser, go to https://*FQDN*:19080. Замените FQDN на полное доменное имя кластера Service Fabric из шага 2.Replace FQDN with the FQDN of your Service Fabric cluster from step 2.
    Если вы использовали самозаверяющий сертификат, отобразится предупреждение о том, что подключение не является безопасным.If you've used a self-signed certificate, you'll get a warning that the connection isn't secure. Чтобы перейти на веб-сайт, выберите Дополнительные сведения, а затем Перейти на веб-страницу.To continue to the web site, select More Information, and then Go on to the webpage.

  5. Для проверки подлинности на сайте нужно выбрать используемый сертификат.To authenticate to the site, you must select a certificate to use. Выберите More choices (Дополнительные варианты), выберите соответствующий сертификат и нажмите кнопку ОК для подключения к Service Fabric Explorer.Select More choices, pick the appropriate certificate, and then click OK to connect to the Service Fabric Explorer.

    Authenticate

Использование Service Fabric PowerShellUse Service Fabric PowerShell

  1. Установите пакет SDK для Microsoft Azure Service Fabric из раздела Установка пакета SDK и инструментов документации Azure Service Fabric.Install the Microsoft Azure Service Fabric SDK from Prepare your development environment on Windows in the Azure Service Fabric documentation.

  2. После завершения установки настройте системные переменные среды, чтобы убедиться, что командлеты Service Fabric доступны в PowerShell.After the installation is complete, configure the system Environment variables to ensure that the Service Fabric cmdlets are accessible from PowerShell.

    а.a. Последовательно выберите Панель управления > Система и безопасность > Система, а затем выберите Дополнительные параметры системы.Go to Control Panel > System and Security > System, and then select Advanced system settings.

    Панель управления

    b.b. На вкладке Дополнительно в свойствах системы выберите Переменные среды.On the Advanced tab of System Properties, select Environment Variables.

    c.c. Для системных переменных измените путь и убедитесь, что C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code находится в верхней части списка переменных среды.For System variables, edit Path and make sure that C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code is at the top of the list of environment variables.

    Список переменных среды

  3. После изменения порядка переменных среды перезапустите PowerShell и выполните следующий скрипт PowerShell для получения доступа к кластеру Service Fabric:After changing the order of the environment variables, restart PowerShell and then run the following PowerShell script to gain access to the Service Fabric cluster:

     Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric
     CLUSTER FQDN\]:19000" \`
    
     -X509Credential -ServerCertThumbprint
     761A0D17B030723A37AA2E08225CD7EA8BE9F86A \`
    
     -FindType FindByThumbprint -FindValue
     0272251171BA32CEC7938A65B8A6A553AA2D3283 \`
    
     -StoreLocation CurrentUser -StoreName My -Verbose
    

    Примечание

    В скрипте отсутствует https:// перед именем кластера.There is no https:// before the name of the cluster in the script. Требуется порт 19000.Port 19000 is required.

Дальнейшие действияNext steps

Развертывание Kubernetes в Azure Stack HubDeploy Kubernetes to Azure Stack Hub