Een Service Fabric-cluster implementeren in Azure Stack Hub

Gebruik het Service Fabric Cluster-item uit de Azure Marketplace om een beveiligd Service Fabric-cluster te implementeren in Azure Stack Hub.

Zie Overzicht van Azure Service Fabric en Service Fabric clusterbeveiligingsscenario's in de Documentatie van Azure voor meer informatie over het werken met Service Fabric.

Het Service Fabric-cluster in Azure Stack Hub maakt geen gebruik van de resourceprovider Microsoft.ServiceFabric. In plaats daarvan is het Service Fabric cluster in Azure Stack Hub een virtuele-machineschaalset met vooraf geïnstalleerde software met behulp van Desired State Configuration (DSC).

Vereisten

Het volgende is vereist om het Service Fabric-cluster te implementeren:

  1. Clustercertificaat
    Dit is het X.509-servercertificaat dat u toevoegt aan Key Vault bij het implementeren van Service Fabric.

    • De CN op dit certificaat moet overeenkomen met de FQDN (Fully Qualified Domain Name) van het Service Fabric cluster dat u maakt.

    • De certificaatindeling moet PFX zijn, omdat zowel de openbare als de persoonlijke sleutels vereist zijn. Zie de vereisten voor het maken van dit certificaat aan de serverzijde.

      Notitie

      U kunt een zelfondertekend certificaat gebruiken in plaats van het X.509-servercertificaat voor testdoeleinden. Zelfondertekende certificaten hoeven niet overeen te komen met de FQDN-naam van het cluster.

  2. Clientcertificaat voor beheerder
    Dit is het certificaat dat de client gebruikt om te verifiëren bij het Service Fabric-cluster, dat zelfondertekend kan zijn. Zie de vereisten voor het maken van dit clientcertificaat.

  3. De volgende items moeten beschikbaar zijn in Azure Stack Hub Marketplace:

    • Windows Server 2016: de sjabloon maakt gebruik van de Windows Server 2016 installatiekopieën om het cluster te maken.
    • Aangepaste scriptextensie - Extensie voor virtuele machines van Microsoft.
    • PowerShell Desired Stage Configuration - Virtual Machine Extension from Microsoft.

Een geheim toevoegen aan Key Vault

Als u een Service Fabric-cluster wilt implementeren, moet u de juiste Key Vault geheime id of URL voor het Service Fabric-cluster opgeven. De Azure Resource Manager-sjabloon gebruikt een Key Vault als invoer. Vervolgens haalt de sjabloon het clustercertificaat op bij het installeren van het Service Fabric-cluster.

Belangrijk

U moet PowerShell gebruiken om een geheim toe te voegen aan Key Vault voor gebruik met Service Fabric. Gebruik de portal niet.

Gebruik het volgende script om de Key Vault te maken en het clustercertificaat eraan toe te voegen. (Zie de vereisten.) Voordat u het script uitvoert, controleert u het voorbeeldscript en werkt u de aangegeven parameters bij zodat deze overeenkomen met uw omgeving. Met dit script worden ook de waarden uitgevoerd die u moet opgeven voor de Azure Resource Manager-sjabloon.

Tip

Voordat het script kan slagen, moet er een openbare aanbieding zijn die de services voor Compute, Network, Storage en Key Vault bevat.

   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

Zie Key Vault beheren in Azure Stack Hub met PowerShell voor meer informatie.

Het Marketplace-item implementeren

  1. Ga in de gebruikersportal naar + Een resourceCompute>>Service Fabric-cluster maken.

    Select Service Fabric Cluster

  2. Vul voor elke pagina, zoals Basisinformatie, het implementatieformulier in. Gebruik standaardwaarden als u niet zeker weet of u een waarde hebt.

    Voor implementaties naar een niet-verbonden Azure Stack Hub of om een andere versie van Service Fabric te implementeren, downloadt u het Service Fabric implementatiepakket en het bijbehorende runtimepakket en hostt u het op een Azure Stack Hub-blob. Geef deze waarden op voor de URL van het Service Fabric-implementatiepakket en Service Fabric url-velden voor runtimepakketten.

    Notitie

    Er zijn compatibiliteitsproblemen tussen de nieuwste versie van Service Fabric en de bijbehorende SDK. Totdat dit probleem is opgelost, geeft u de volgende parameters op voor de URL van het implementatiepakket en de URL van het runtimepakket. Uw implementaties mislukken anders.

    Voor niet-verbonden implementaties downloadt u deze pakketten vanaf de opgegeven locatie en hostt u deze lokaal op een Azure Stack Hub Blob.

    Basics

  3. Op de pagina Netwerk Instellingen kunt u specifieke poorten opgeven die u voor uw toepassingen wilt openen:

    Network Settings

  4. Voeg op de pagina Beveiliging de waarden toe die u hebt verkregen van het maken van de Azure-Key Vault en het uploaden van het geheim.

    Voer voor de vingerafdruk van het clientcertificaat van de beheerder de vingerafdruk van het clientcertificaat van de beheerder in. (Zie de vereisten.)

    • Bron Key Vault: geef de volledige keyVault id tekenreeks op uit de scriptresultaten.
    • Url van clustercertificaat: geef de volledige URL op van de Secret Id resultaten van het script.
    • Vingerafdruk van clustercertificaat: geef de vingerafdruk van het clustercertificaat op uit de scriptresultaten.
    • URL van servercertificaat: als u een afzonderlijk certificaat van het clustercertificaat wilt gebruiken, uploadt u het certificaat naar een sleutelkluis en geeft u de volledige URL naar het geheim op.
    • Vingerafdruk van servercertificaat: geef de vingerafdruk op voor het servercertificaat
    • Vingerafdruk van het clientcertificaat van de beheerder: geef de vingerafdruk van het clientcertificaat van de beheerder op die is gemaakt in de vereisten.

    Script output

    Security

  5. Voltooi de wizard en selecteer Vervolgens Maken om het Service Fabric-cluster te implementeren.

Toegang tot het Service Fabric-cluster

U hebt toegang tot het Service Fabric-cluster met behulp van de Service Fabric Explorer of Service Fabric PowerShell.

Service Fabric Explorer gebruiken

  1. Zorg ervoor dat de browser toegang heeft tot uw beheerdersclientcertificaat en kan worden geverifieerd bij uw Service Fabric-cluster.

    a. Open Internet Explorer en ga naar InternetOptionsContentCertificates>>.

    b. Selecteer Importeren in certificaten om de wizard Certificaat importeren te starten en klik vervolgens op Volgende. Klik op de pagina Bestand om te importeren op Bladeren en selecteer het certificaat van de beheerderclient dat u hebt opgegeven voor de Azure Resource Manager-sjabloon.

    Notitie

    Dit certificaat is niet het clustercertificaat dat eerder is toegevoegd aan Key Vault.

    c. Zorg ervoor dat u 'Persoonlijke gegevens Exchange' hebt geselecteerd in de vervolgkeuzelijst voor de extensie van het Bestandenverkenner venster.

    Personal information exchange

    d. Selecteer Persoonlijk op de pagina Certificaatarchief en voltooi de wizard.
    Certificate store

  2. De FQDN van uw Service Fabric-cluster zoeken:

    a. Ga naar de resourcegroep die is gekoppeld aan uw Service Fabric-cluster en zoek de resource voor het openbare IP-adres. Selecteer het object dat is gekoppeld aan het openbare IP-adres om de blade Openbaar IP-adres te openen.

    Public IP address

    b. Op de blade Openbaar IP-adres wordt de FQDN weergegeven als DNS-naam.

    DNS name

  3. Als u de URL voor het Service Fabric Explorer en het eindpunt van de clientverbinding wilt vinden, bekijkt u de resultaten van de sjabloonimplementatie.

  4. Ga in uw browser naar https://*FQDN*:19080. Vervang FQDN door de FQDN-naam van uw Service Fabric-cluster uit stap 2.
    Als u een zelfondertekend certificaat hebt gebruikt, krijgt u een waarschuwing dat de verbinding niet is beveiligd. Als u door wilt gaan naar de website, selecteert u Meer informatie en gaat u naar de webpagina.

  5. Als u zich wilt verifiëren bij de site, moet u een certificaat selecteren dat u wilt gebruiken. Selecteer Meer opties, kies het juiste certificaat en klik vervolgens op OK om verbinding te maken met de Service Fabric Explorer.

    Authenticate

PowerShell Service Fabric gebruiken

  1. Installeer de Microsoft Azure Service Fabric SDK vanuit Uw ontwikkelomgeving voorbereiden op Windows in de documentatie van Azure Service Fabric.

  2. Nadat de installatie is voltooid, configureert u de omgevingsvariabelen van het systeem om ervoor te zorgen dat de Service Fabric cmdlets toegankelijk zijn vanuit PowerShell.

    a. Ga naar Configuratiescherm>System en SecuritySystem> en selecteer vervolgens Geavanceerde systeeminstellingen.

    Control panel

    b. Selecteer op het tabblad Geavanceerd van Systeemeigenschappenomgevingsvariabelen.

    c. Bewerk pad voor systeemvariabelen en zorg ervoor dat C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code boven aan de lijst met omgevingsvariabelen staat.

    Environment variable list

  3. Nadat u de volgorde van de omgevingsvariabelen hebt gewijzigd, start u PowerShell opnieuw op en voert u het volgende PowerShell-script uit om toegang te krijgen tot het Service Fabric-cluster:

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

    Notitie

    Er is geen https:// vóór de naam van het cluster in het script. Poort 19000 is vereist.

Volgende stappen

Kubernetes implementeren in Azure Stack Hub