Distribuera ett Service Fabric kluster i Azure Stack Hub

Använd Service Fabric-klusterobjektet från Azure Marketplace för att distribuera ett skyddat Service Fabric kluster i Azure Stack Hub.

Mer information om hur du arbetar med Service Fabric finns i Översikt över Azure Service Fabric och Service Fabric klustersäkerhetsscenarier i Azure-dokumentationen.

Det Service Fabric klustret i Azure Stack Hub använder inte resursprovidern Microsoft.ServiceFabric. I Azure Stack Hub är i stället det Service Fabric klustret en VM-skalningsuppsättning med förinstallerad programvara med hjälp av Desired State Configuration (DSC).

Förutsättningar

Följande krävs för att distribuera Service Fabric klustret:

  1. Klustercertifikat
    Det här är X.509-servercertifikatet som du lägger till i Key Vault när du distribuerar Service Fabric.

    • CN på det här certifikatet måste matcha det fullständigt kvalificerade domännamnet (FQDN) för det Service Fabric kluster som du skapar.

    • Certifikatformatet måste vara PFX eftersom både offentliga och privata nycklar krävs. Se kraven för att skapa det här certifikatet på serversidan.

      Anteckning

      Du kan använda ett självsignerat certifikat i stället för X.509-servercertifikatet i testsyfte. Självsignerade certifikat behöver inte matcha klustrets FQDN.

  2. Administratörsklientcertifikat
    Det här är det certifikat som klienten använder för att autentisera till det Service Fabric klustret, som kan vara självsignerat. Se kraven för att skapa det här klientcertifikatet.

  3. Följande objekt måste vara tillgängliga på Azure Stack Hub Marketplace:

    • Windows Server 2016 – Mallen använder Windows Server 2016-avbildningen för att skapa klustret.
    • Tillägg för anpassat skript – Tillägg för virtuell dator från Microsoft.
    • Önskad faskonfiguration för PowerShell – Tillägg för virtuell dator från Microsoft.

Lägga till en hemlighet i Key Vault

Om du vill distribuera ett Service Fabric kluster måste du ange rätt Key Vault hemlig identifierare eller URL för det Service Fabric klustret. Azure Resource Manager-mallen tar en Key Vault som indata. Sedan hämtar mallen klustercertifikatet när Service Fabric-klustret installeras.

Viktigt

Du måste använda PowerShell för att lägga till en hemlighet för att Key Vault för användning med Service Fabric. Använd inte portalen.

Använd följande skript för att skapa Key Vault och lägga till klustercertifikatet i det. (Se förutsättningarna.) Innan du kör skriptet granskar du exempelskriptet och uppdaterar de angivna parametrarna så att de matchar din miljö. Det här skriptet matar också ut de värden som du behöver ange till Azure Resource Manager-mallen.

Tips

Innan skriptet kan lyckas måste det finnas ett offentligt erbjudande som innehåller tjänsterna för Beräkning, Nätverk, Storage och 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

Mer information finns i Hantera Key Vault på Azure Stack Hub med PowerShell.

Distribuera Marketplace-objektet

  1. I användarportalen går du till + Skapa enresursBeräkna>>Service Fabric kluster.

    Select Service Fabric Cluster

  2. För varje sida, till exempel Grundläggande, fyller du i distributionsformuläret. Använd standardvärden om du inte är säker på ett värde.

    För distributioner till en frånkopplad Azure Stack Hub eller för att distribuera en annan version av Service Fabric laddar du ned Service Fabric-distributionspaketet och dess motsvarande körningspaket och är värd för det på en Azure Stack Hub-blob. Ange dessa värden för url:en för Service Fabric-distributionspaketet och Service Fabric url-fält för körningspaket.

    Anteckning

    Det finns kompatibilitetsproblem mellan den senaste versionen av Service Fabric och motsvarande SDK. Innan problemet har åtgärdats anger du följande parametrar till distributionspaketets URL och körningspaket-URL. Distributionerna misslyckas annars.

    För frånkopplade distributioner laddar du ned dessa paket från den angivna platsen och är värd för dem lokalt på en Azure Stack Hub-blob.

    Basics

  3. På sidan Nätverk Inställningar kan du ange specifika portar som ska öppnas för dina program:

    Network Settings

  4. På sidan Säkerhet lägger du till de värden som du fick från att skapa Azure-Key Vault och ladda upp hemligheten.

    För tumavtrycket för administratörsklientcertifikat anger du tumavtrycket för administratörsklientcertifikatet. (Se förutsättningarna.)

    • Källa Key Vault: Ange hela keyVault id strängen från skriptresultatet.
    • URL för klustercertifikat: Ange hela URL:en från Secret Id från skriptresultatet.
    • Tumavtryck för klustercertifikat: Ange tumavtrycket för klustercertifikatet från skriptresultatet.
    • Url till servercertifikat: Om du vill använda ett separat certifikat från klustercertifikatet laddar du upp certifikatet till ett nyckelvalv och anger den fullständiga URL:en till hemligheten.
    • Tumavtryck för servercertifikat: Ange tumavtrycket för servercertifikatet
    • Tumavtryck för administratörsklientcertifikat: Ange tumavtrycket för administratörsklientcertifikatet som skapades i förutsättningarna.

    Script output

    Security

  5. Slutför guiden och välj sedan Skapa för att distribuera Service Fabric-klustret.

Få åtkomst till Service Fabric-klustret

Du kan komma åt Service Fabric-klustret med hjälp av antingen Service Fabric Explorer eller Service Fabric PowerShell.

Använda Service Fabric Explorer

  1. Kontrollera att webbläsaren har åtkomst till ditt administratörsklientcertifikat och kan autentisera till ditt Service Fabric kluster.

    a. Öppna Internet Explorer och gå till InternetalternativContentCertificates>>.

    b. På Certifikat väljer du Importera för att starta guiden Importera certifikat och klickar sedan på Nästa. På sidan Fil att importera klickar du på Bläddra och väljer det administratörsklientcertifikat som du angav i mallen Azure Resource Manager.

    Anteckning

    Det här certifikatet är inte det klustercertifikat som tidigare lades till i Key Vault.

    c. Kontrollera att du har valt "Personlig information Exchange" i listrutan tillägg i fönstret Utforskaren.

    Personal information exchange

    d. På sidan Certifikatarkiv väljer du Personlig och slutför sedan guiden.
    Certificate store

  2. Så här hittar du FQDN för ditt Service Fabric kluster:

    a. Gå till den resursgrupp som är associerad med ditt Service Fabric kluster och leta upp resursen offentlig IP-adress. Välj objektet som är associerat med den offentliga IP-adressen för att öppna bladet Offentlig IP-adress .

    Public IP address

    b. På bladet Offentlig IP-adress visas FQDN som DNS-namn.

    DNS name

  3. Om du vill hitta URL:en för Service Fabric Explorer och klientanslutningsslutpunkten granskar du resultatet av malldistributionen.

  4. Gå till https://*FQDN*:19080 i webbläsaren. Ersätt FQDN med FQDN för ditt Service Fabric kluster från steg 2.
    Om du har använt ett självsignerat certifikat får du en varning om att anslutningen inte är säker. Om du vill fortsätta till webbplatsen väljer du Mer information och sedan Gå vidare till webbsidan.

  5. Om du vill autentisera till webbplatsen måste du välja ett certifikat som ska användas. Välj Fler alternativ, välj lämpligt certifikat och klicka sedan på OK för att ansluta till Service Fabric Explorer.

    Authenticate

Använda Service Fabric PowerShell

  1. Installera Microsoft Azure Service Fabric SDK från Förbered din utvecklingsmiljö på Windows i Azure Service Fabric-dokumentationen.

  2. När installationen är klar konfigurerar du systemmiljövariablerna så att de Service Fabric cmdletarna är tillgängliga från PowerShell.

    a. Gå till Kontrollpanelen>System och SecuritySystem> och välj sedan Avancerade systeminställningar.

    Control panel

    b. På fliken Avancerat i Systemegenskaper väljer du Miljövariabler.

    c. För Systemvariabler redigerar du Sökväg och kontrollerar att C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code finns överst i listan över miljövariabler.

    Environment variable list

  3. När du har ändrat ordningen på miljövariablerna startar du om PowerShell och kör sedan följande PowerShell-skript för att få åtkomst till det Service Fabric klustret:

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

    Anteckning

    Det finns inga https:// före namnet på klustret i skriptet. Port 19000 krävs.

Nästa steg

Distribuera Kubernetes till Azure Stack Hub