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

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

Aby uzyskać więcej informacji na temat pracy z usługą Service Fabric, zobacz Omówienie scenariuszy zabezpieczeń klastrausług Azure Service Fabric i Service Fabric w dokumentacji platformy Azure.

Klaster usługi 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 usługi Service Fabric to zestaw skalowania maszyn wirtualnych ze wstępnie zainstalowanym oprogramowaniem korzystającym z Desired State Configuration (DSC).

Wymagania wstępne

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

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

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

    • Format certyfikatu musi mieć format 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 Administracja
    Jest to certyfikat używany przez klienta do uwierzytelniania w klastrze usługi Service Fabric, który może być podpisany samodzielnie. Zobacz wymagania dotyczące tworzenia tego certyfikatu klienta.

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

    • 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 usługi Service Fabric, należy określić prawidłowy Key Vault identyfikator wpisu tajnego lub adres URL klastra usługi Service Fabric. Szablon usługi Azure Resource Manager przyjmuje Key Vault jako dane wejściowe. Następnie szablon pobiera certyfikat klastra podczas instalowania klastra usługi Service Fabric.

Ważne

Aby dodać wpis tajny do Key Vault do użycia z usługą 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 dopasować je do środowiska. Ten skrypt wyświetli również wartości, które należy podać w szablonie usługi Azure Resource Manager.

Porada

Zanim skrypt zakończy się pomyślnie, musi istnieć publiczna oferta obejmująca usługi obliczeniowe, sieciowe, magazynowe 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 Manage Key Vault on Azure Stack Hub with PowerShell (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ób>Obliczeniowy>klaster usługi Service Fabric.

    Wybieranie klastra usługi Service Fabric

  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 odłączonym usłudze Azure Stack Hub lub w celu wdrożenia innej wersji usługi Service Fabric pobierz pakiet wdrożeniowy usługi Service Fabric i odpowiadający mu pakiet środowiska uruchomieniowego i hostuj go w obiekcie blob usługi Azure Stack Hub. Podaj te wartości w polach Adres URL pakietu wdrożeniowego usługi Service Fabric i Adres URL pakietu środowiska uruchomieniowego usługi Service Fabric .

    Uwaga

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

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

    Podstawy

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

    Ustawienia sieciowe

  4. Na stronie Zabezpieczenia dodaj wartości, które uzyskasz podczas tworzenia Key Vault Platformy Azure i przekazywania wpisu tajnego.

    W przypadku odcisku palca certyfikatu klienta Administracja wprowadź odcisk palca certyfikatu klienta Administracja. (Zobacz wymagania wstępne).

    • Key Vault źródłowa: 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 magazynu kluczy i podaj pełny adres URL wpisu tajnego.
    • Odcisk palca certyfikatu serwera: określ odcisk palca certyfikatu serwera
    • Administracja odciski palca certyfikatu klienta: określ odcisk palca certyfikatu klienta Administracja utworzony w wymaganiach wstępnych.

    Dane wyjściowe skryptu

    Zabezpieczenia

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

Uzyskiwanie dostępu do klastra usługi Service Fabric

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

Korzystanie z Service Fabric Explorer

  1. Upewnij się, że przeglądarka ma dostęp do certyfikatu klienta Administracja i może uwierzytelniać się w klastrze usługi Service Fabric.

    a. Otwórz program Internet Explorer i przejdź do pozycjiCertyfikatyzawartości>Opcji> internetowych.

    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 Administracja 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ę "Wymiana informacji osobistych".

    Wymiana informacji osobistych

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

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

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

    Publiczny adres IP

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

    Nazwa DNS

  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 usługi Service Fabric z kroku 2.
    Jeśli używasz 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 przeprowadzić uwierzytelnianie w witrynie, musisz 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.

    Uwierzytelnianie

Korzystanie z programu PowerShell usługi Service Fabric

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

  2. Po zakończeniu instalacji skonfiguruj systemowe zmienne środowiskowe, aby upewnić się, że polecenia cmdlet usługi Service Fabric są dostępne w programie PowerShell.

    a. Przejdź do pozycji Panel sterowania>System i system zabezpieczeń>, a następnie wybierz pozycję Zaawansowane ustawienia systemu.

    Panel sterowania

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

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

    Lista zmiennych środowiskowych

  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 usługi 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