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 säkerhetsscenarier för Azure Service Fabric- och Service Fabric-kluster i Azure-dokumentationen.

Service Fabric-klustret i Azure Stack Hub använder inte resursprovidern Microsoft.ServiceFabric. I Azure Stack Hub är Service Fabric-klustret i stället 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. Admin klientcertifikat
    Det här är det certifikat som klienten använder för att autentisera till 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 Service Fabric-klustret. Azure Resource Manager-mallen tar en Key Vault som indata. Mallen hämtar sedan klustercertifikatet när du installerar Service Fabric-klustret.

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, lagring 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 en resurs>Compute>Service Fabric-kluster.

    Välj Service Fabric-kluster

  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 i fälten URL för Service Fabric-distributionspaketet och Service Fabric-körningspaketets URL .

    Anteckning

    Det finns kompatibilitetsproblem mellan den senaste versionen av Service Fabric och dess 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.

    Grundläggande inställningar

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

    Nätverksinställningar

  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 Admin klientcertifikat anger du tumavtrycket för Admin-klientcertifikatet. (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
    • Admin tumavtryck för klientcertifikat: Ange Admin tumavtrycket för klientcertifikatet som skapades i förutsättningarna.

    Skriptutdata

    Säkerhet

  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 Admin-klientcertifikat och kan autentisera till Ditt Service Fabric-kluster.

    a. Öppna Internet Explorer och gå tillInnehållscertifikat> för Internetalternativ>.

    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 Admin klientcertifikat 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 "Personal Information Exchange" i listrutan för tillägg i Utforskaren-fönstret.

    Utbyte av personlig information

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

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

    a. Gå till den resursgrupp som är associerad med Service Fabric-klustret 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 .

    Offentlig IP-adress

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

    DNS-namn

  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.

    Autentisera

Använda Service Fabric PowerShell

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

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

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

    Kontrollpanelen

    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.

    Miljövariabellista

  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 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