Wdrażanie klastra Service Fabric w usłudze Azure Stack Hub

Użyj elementu klastra Service Fabric z Azure Marketplace, aby wdrożyć zabezpieczony klaster Service Fabric w usłudze Azure Stack Hub.

Aby uzyskać więcej informacji na temat pracy z Service Fabric, zobacz Omówieniescenariuszy zabezpieczeń klastra Service Fabric i Service Fabric klastra w dokumentacji platformy Azure.

Klaster Service Fabric w usłudze Azure Stack Hub nie używa dostawcy zasobów Microsoft.ServiceFabric. Zamiast tego w usłudze Azure Stack Hub klaster Service Fabric to zestaw skalowania maszyn wirtualnych ze wstępnie zainstalowanym oprogramowaniem przy użyciu Desired State Configuration (DSC).

Wymagania wstępne

Do wdrożenia klastra Service Fabric wymagane są następujące elementy:

  1. Certyfikat klastra
    Jest to certyfikat serwera X.509 dodany do Key Vault podczas wdrażania Service Fabric.

    • Nazwa CN tego certyfikatu musi być zgodna z w pełni kwalifikowaną nazwą domeny (FQDN) utworzonego klastra Service Fabric.

    • Format certyfikatu musi być PFX, ponieważ wymagane są zarówno klucze publiczne, jak i prywatne. Zobacz wymagania dotyczące tworzenia tego certyfikatu po stronie serwera.

      Uwaga

      Do celów testowych można użyć certyfikatu z podpisem własnym w miejscu certyfikatu serwera X.509. Certyfikaty z podpisem własnym nie muszą być zgodne z nazwą FQDN klastra.

  2. Certyfikat klienta administracyjnego
    Jest to certyfikat używany przez klienta do uwierzytelniania w klastrze Service Fabric, który może być podpisany samodzielnie. Zobacz wymagania dotyczące tworzenia tego certyfikatu klienta.

  3. W witrynie Azure Stack Hub Marketplace muszą być dostępne następujące elementy:

    • Windows Server 2016 — szablon używa obrazu Windows Server 2016 do utworzenia klastra.
    • Rozszerzenie niestandardowego skryptu — rozszerzenie maszyny wirtualnej firmy Microsoft.
    • Konfiguracja żądanego etapu programu PowerShell — rozszerzenie maszyny wirtualnej firmy Microsoft.

Dodawanie wpisu tajnego do usługi Key Vault

Aby wdrożyć klaster Service Fabric, należy określić prawidłowy identyfikator wpisu tajnego Key Vault lub adres URL klastra Service Fabric. Szablon usługi Azure Resource Manager przyjmuje Key Vault jako dane wejściowe. Następnie szablon pobiera certyfikat klastra podczas instalowania klastra Service Fabric.

Ważne

Aby dodać wpis tajny do Key Vault do użycia z Service Fabric, należy użyć programu PowerShell. Nie używaj portalu.

Użyj następującego skryptu, aby utworzyć Key Vault i dodać do niego certyfikat klastra. (Zobacz wymagania wstępne). Przed uruchomieniem skryptu przejrzyj przykładowy skrypt i zaktualizuj wskazane parametry, aby pasować do środowiska. Ten skrypt wyświetli również wartości, które należy podać do szablonu usługi Azure Resource Manager.

Porada

Zanim skrypt zakończy się pomyślnie, musi istnieć publiczna oferta obejmująca usługi obliczeniowe, sieciowe, Storage i 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

Aby uzyskać więcej informacji, zobacz Zarządzanie Key Vault w usłudze Azure Stack Hub przy użyciu programu PowerShell.

Wdrażanie elementu witryny Marketplace

  1. W portalu użytkowników przejdź do pozycji + Utwórz zasóbKompute>>Service Fabric Klaster.

    Select Service Fabric Cluster

  2. Dla każdej strony, takiej jak Podstawy, wypełnij formularz wdrożenia. Użyj wartości domyślnych, jeśli nie masz pewności co do wartości.

    W przypadku wdrożeń w rozłączonym usłudze Azure Stack Hub lub w celu wdrożenia innej wersji Service Fabric pobierz pakiet wdrożenia Service Fabric i odpowiadający mu pakiet środowiska uruchomieniowego i hostuj go w obiekcie blob usługi Azure Stack Hub. Podaj te wartości do adresu URL pakietu wdrażania Service Fabric i pól adresu URL pakietu środowiska uruchomieniowego Service Fabric.

    Uwaga

    Istnieją problemy ze zgodnością między najnowszą wersją Service Fabric a odpowiednim zestawem SDK. Dopóki ten problem nie zostanie rozwiązany, podaj następujące parametry do adresu URL pakietu wdrożenia i adresu URL pakietu uruchomieniowego. Wdrożenia nie powiedzą się w przeciwnym razie.

    W przypadku rozłączonych wdrożeń pobierz te pakiety z określonej lokalizacji i hostuj je lokalnie w obiekcie blob usługi Azure Stack Hub.

    Basics

  3. Na stronie Sieć Ustawienia można określić określone porty do otwarcia dla aplikacji:

    Network Settings

  4. Na stronie Zabezpieczenia dodaj wartości utworzone na podstawie tworzenia Key Vault platformy Azure i przekazywania wpisu tajnego.

    W polu Odcisk palca certyfikatu klienta administratora wprowadź odcisk palca certyfikatu klienta administratora. (Zobacz wymagania wstępne).

    • Key Vault źródła: określ cały keyVault id ciąg z wyników skryptu.
    • Adres URL certyfikatu klastra: określ cały adres URL z Secret Id wyników skryptu.
    • Odcisk palca certyfikatu klastra: określ odcisk palca certyfikatu klastra z wyników skryptu.
    • Adres URL certyfikatu serwera: jeśli chcesz użyć oddzielnego certyfikatu od certyfikatu klastra, przekaż certyfikat do usługi Keyvault i podaj pełny adres URL wpisu tajnego.
    • Odcisk palca certyfikatu serwera: określ odcisk palca certyfikatu serwera
    • Odciski palca certyfikatu klienta administratora: określ odcisk palca certyfikatu klienta administratora utworzony w wymaganiach wstępnych.

    Script output

    Security

  5. Ukończ pracę kreatora, a następnie wybierz pozycję Utwórz, aby wdrożyć klaster Service Fabric.

Uzyskiwanie dostępu do klastra Service Fabric

Dostęp do klastra Service Fabric można uzyskać przy użyciu Service Fabric Explorer lub Service Fabric programu PowerShell.

Korzystanie z Service Fabric Explorer

  1. Upewnij się, że przeglądarka ma dostęp do certyfikatu klienta administratora i może uwierzytelnić się w klastrze Service Fabric.

    a. Otwórz program Internet Explorer i przejdź do pozycji Opcje>internetoweContentCertificates>.

    b. W obszarze Certyfikaty wybierz pozycję Importuj , aby uruchomić Kreatora importu certyfikatów, a następnie kliknij przycisk Dalej. Na stronie Plik do zaimportowania kliknij przycisk Przeglądaj, a następnie wybierz certyfikat klienta administratora dostarczony do szablonu usługi Azure Resource Manager.

    Uwaga

    Ten certyfikat nie jest certyfikatem klastra, który został wcześniej dodany do Key Vault.

    c. Upewnij się, że na liście rozwijanej rozszerzenia okna Eksplorator plików wybrano pozycję "Dane osobowe Exchange".

    Personal information exchange

    d. Na stronie Magazyn certyfikatów wybierz pozycję Osobiste, a następnie ukończ kreatora.
    Certificate store

  2. Aby znaleźć nazwę FQDN klastra Service Fabric:

    a. Przejdź do grupy zasobów skojarzonej z klastrem Service Fabric i znajdź zasób publiczny adres IP. Wybierz obiekt skojarzony z publicznym adresem IP, aby otworzyć blok Publiczny adres IP .

    Public IP address

    b. W bloku Publiczny adres IP nazwa FQDN jest wyświetlana jako nazwa DNS.

    DNS name

  3. Aby znaleźć adres URL Service Fabric Explorer i punkt końcowy połączenia klienta, przejrzyj wyniki wdrożenia szablonu.

  4. W przeglądarce przejdź do adresu https://*FQDN*:19080. Zastąp nazwę FQDN nazwą FQDN klastra Service Fabric z kroku 2.
    Jeśli użyto certyfikatu z podpisem własnym, zostanie wyświetlone ostrzeżenie, że połączenie nie jest bezpieczne. Aby przejść do witryny sieci Web, wybierz pozycję Więcej informacji, a następnie przejdź do strony internetowej.

  5. Aby uwierzytelnić się w lokacji, należy wybrać certyfikat do użycia. Wybierz pozycję Więcej opcji, wybierz odpowiedni certyfikat, a następnie kliknij przycisk OK, aby nawiązać połączenie z Service Fabric Explorer.

    Authenticate

Korzystanie z programu Service Fabric PowerShell

  1. Zainstaluj zestaw SDK Microsoft Azure Service Fabric z sekcji Przygotowywanie środowiska deweloperskiego na Windows w dokumentacji usługi Azure Service Fabric.

  2. Po zakończeniu instalacji skonfiguruj systemowe zmienne środowiskowe, aby upewnić się, że polecenia cmdlet Service Fabric są dostępne z poziomu programu PowerShell.

    a. Przejdź do pozycji Panel sterowania>System i zabezpieczeniaSystem>, a następnie wybierz pozycję Zaawansowane ustawienia systemowe.

    Control panel

    b. Na karcie Zaawansowane właściwości systemu wybierz pozycję Zmienne środowiskowe.

    c. W obszarze Zmienne systemowe zmodyfikuj ścieżkę i upewnij się, że folder C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code znajduje się na początku listy zmiennych środowiskowych.

    Environment variable list

  3. Po zmianie kolejności zmiennych środowiskowych uruchom ponownie program PowerShell, a następnie uruchom następujący skrypt programu PowerShell, aby uzyskać dostęp do klastra Service Fabric:

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

    Uwaga

    Nie ma https:// przed nazwą klastra w skrycie. Wymagany jest port 19000.

Następne kroki

Wdrażanie rozwiązania Kubernetes w usłudze Azure Stack Hub