Een Service Fabric-cluster implementeren in Azure Stack Hub

Gebruik het Service Fabric-clusteritem 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 Azure-documentatie 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 voor het implementeren van het Service Fabric-cluster:

  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 sleutel vereist zijn. Zie Vereisten voor het maken van dit certificaat aan de serverzijde.

      Notitie

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

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

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

    • Windows Server 2016: de sjabloon gebruikt de Windows Server 2016-installatiekopieën om het cluster te maken.
    • Aangepaste scriptextensie : virtuele-machine-extensie van Microsoft.
    • PowerShell Desired Stage Configuration - Virtual Machine Extension van 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 neemt een Key Vault als invoer. Vervolgens haalt de sjabloon het clustercertificaat op bij de installatie 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 met de services voor Compute, Network, Storage en 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

Zie Manage Key Vault on Azure Stack Hub with PowerShell (Key Vault beheren in Azure Stack Hub met PowerShell) voor meer informatie.

Het Marketplace-item implementeren

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

    Service Fabric-cluster selecteren

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

    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 in de velden URL van service fabric-implementatiepakket en Service Fabric-runtimepakket-URL .

    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. Anders mislukken uw implementaties.

    Voor niet-verbonden implementaties downloadt u deze pakketten van de opgegeven locatie en host u deze lokaal op een Azure Stack Hub-blob.

    Basisbeginselen

  3. Op de pagina Netwerkinstellingen kunt u specifieke poorten opgeven die moeten worden geopend voor uw toepassingen:

    Netwerkinstellingen

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

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

    • Bron Key Vault: geef de volledige keyVault id tekenreeks op uit de scriptresultaten.
    • URL van clustercertificaat: geef de volledige URL van de Secret Id uit de scriptresultaten op.
    • 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 op naar het geheim.
    • Vingerafdruk van servercertificaat: geef de vingerafdruk op voor het servercertificaat
    • Beheer clientcertificaatvingerafdrukken: geef de Beheer vingerafdruk van het clientcertificaat op die is gemaakt in de vereisten.

    Scriptuitvoer

    Beveiliging

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

Toegang tot het Service Fabric-cluster

U kunt toegang krijgen 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 Beheer-clientcertificaat en kan worden geverifieerd bij uw Service Fabric-cluster.

    a. Open Internet Explorer en ga naar Internetopties>Inhoudscertificaten>.

    b. Selecteer in Certificaten de optie Importeren om de wizard Certificaat importeren te starten en klik vervolgens op Volgende. Klik op de pagina Te importeren bestand op Bladeren en selecteer het Beheer Clientcertificaat dat u hebt opgegeven voor de Sjabloon Azure Resource Manager.

    Notitie

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

    c. Zorg ervoor dat u 'Exchange van persoonlijke gegevens' hebt geselecteerd in de vervolgkeuzelijst met extensies van het venster Bestandenverkenner.

    Uitwisseling van persoonlijke gegevens

    d. Selecteer op de pagina Certificaatarchiefde optie Persoonlijk en voltooi de wizard.
    Certificaatarchief

  2. Ga als volgende te werk om de FQDN van uw Service Fabric-cluster te vinden:

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

    Openbaar IP-adres

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

    DNS-naam

  3. Bekijk de resultaten van de sjabloonimplementatie om de URL voor de Service Fabric Explorer en het eindpunt van de clientverbinding te vinden.

  4. Ga in uw browser naar https://*FQDN*:19080. Vervang FQDN door de FQDN van uw Service Fabric-cluster uit stap 2.
    Als u een zelfondertekend certificaat hebt gebruikt, krijgt u een waarschuwing dat de verbinding niet beveiligd is. Als u wilt doorgaan 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.

    Verifiëren

Service Fabric PowerShell gebruiken

  1. Installeer de Microsoft Azure Service Fabric SDK via Uw ontwikkelomgeving voorbereiden in Windows in de Documentatie voor 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>Systeem en beveiligingssysteem> en selecteer vervolgens Geavanceerde systeeminstellingen.

    Configuratiescherm

    b. Selecteer op het tabblad Geavanceerd van Systeemeigenschappende optie Omgevingsvariabelen.

    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.

    Lijst met omgevingsvariabelen

  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:// voor de naam van het cluster in het script. Poort 19000 is vereist.

Volgende stappen

Kubernetes implementeren in Azure Stack Hub