Rychlý start: Nasazení kontejnerů Windows do Service Fabric

Azure Service Fabric je platforma distribuovaných systémů pro nasazování a správu škálovatelných a spolehlivých mikroslužeb a kontejnerů.

Spuštění existující aplikace v kontejneru Windows v clusteru Service Fabric nevyžaduje žádné změny aplikace. Tento rychlý start ukazuje, jak nasadit předem připravenou image kontejneru Dockeru v aplikaci Service Fabric. Až budete hotovi, budete mít spuštěný kontejner Windows Serveru Core 2016 a služby IIS. Tento rychlý start popisuje nasazení kontejneru Windows. Přečtěte si tento rychlý start k nasazení kontejneru Linuxu.

Výchozí webová stránka služby IIS

V tomto rychlém startu se naučíte:

  • Zabalení kontejneru image Dockeru
  • Konfigurace komunikace
  • Sestavení a zabalení aplikace Service Fabric
  • Nasazení aplikace typu kontejner do Azure

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavky

Zabalení kontejneru image Dockeru pomocí sady Visual Studio

Sada Service Fabric SDK a nástroje poskytují šablonu služby, která vám pomůže s nasazením kontejneru do clusteru Service Fabric.

Spusťte sadu Visual Studio jako správce. Vyberte Soubor>nový>projekt.

Vyberte aplikaci Service Fabric, pojmenujte ji MyFirstContainer a klikněte na Vytvořit.

Z šablon Hostované kontejnery a aplikace vyberte Kontejner.

Do pole Název image zadejte "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016", základní image windows serveru Core Server a služby IIS.

Nakonfigurujte mapování portů kontejneru na porty hostitele tak, aby se příchozí požadavky na službu na portu 80 mapovaly na port 80 v kontejneru. Nastavte Port kontejneru na 80 a Port hostitele také na 80.

Pojmenujte službu MyContainerService a klikněte na OK.

Dialogové okno Nová služba

Specifikace čísla sestavení operačního systému pro image kontejneru

Kontejnery sestavené s konkrétní verzí Windows Serveru nemusí fungovat na hostiteli s jinou verzí Windows Serveru. Například kontejnery vytvořené pomocí Windows Serveru verze 1709 neběží na hostitelích, na kterých běží Windows Server 2016. Další informace najdete v článku o kompatibilitě operačního systému kontejneru a operačního systému hostitele s Windows Serverem.

Verze 6.1 modulu runtime služby Service Fabric a novější umožňuje specifikovat více imagí operačního systému na kontejner a označit jednotlivé image verzí sestavení daného operačního systému, na který by se měly nasazovat. Tímto se zajistí, že aplikace poběží na více hostitelích s různými verzemi operačního systému Windows. Další informace najdete v článku o zadání imagí kontejneru pro konkrétní sestavení operačního systému.

Společnost Microsoft publikuje různé image pro verze IIS sestavené na různých verzích Windows Serveru. Abyste měli jistotu, že služba Service Fabric nasadí kontejner kompatibilní s verzí Windows Serveru běžící v uzlech clusteru, ve kterých nasazuje vaši aplikaci, přidejte do souboru ApplicationManifest.xml následující řádky. Verze sestavení pro Windows Server 2016 je 14393 a verze sestavení pro Windows Server verze 1709 je 16299.

    <ContainerHostPolicies CodePackageRef="Code"> 
      <ImageOverrides> 
        ...
	      <Image Name="mcr.microsoft.com/windows/servercore/iis:windowsservercore-1803" /> 
          <Image Name= "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016" Os="14393" /> 
          <Image Name="mcr.microsoft.com/windows/servercore/iis:windowsservercore-1709" Os="16299" /> 
      </ImageOverrides> 
    </ContainerHostPolicies> 

Manifest služby dále specifikuje jenom jednu image na nanoserver, mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016.

V souboruApplicationManifest.xml také změňte PasswordEncrypted na false. Účet a heslo jsou prázdné pro image veřejného kontejneru, která je na Docker Hub, takže šifrování vypneme, protože zašifrování prázdného hesla vygeneruje chybu sestavení.

<RepositoryCredentials AccountName="" Password="" PasswordEncrypted="false" />

Vytvoření clusteru

Následující ukázkový skript vytvoří cluster Service Fabric s pěti uzly zabezpečený certifikátem X.509. Příkaz vytvoří certifikát podepsaný svým držitelem a nahraje ho do nového trezoru klíčů. Certifikát se také zkopíruje do místního adresáře. Další informace o vytvoření clusteru pomocí tohoto skriptu najdete v tématu Vytvoření clusteru Service Fabric.

V případě potřeby nainstalujte Azure PowerShell podle pokynů v průvodci Azure PowerShell.

Před spuštěním následujícího skriptu spusťte v PowerShellu příkaz Connect-AzAccount a vytvořte připojení k Azure.

Zkopírujte následující skript do schránky a otevřete Windows PowerShell ISE. Vložte obsah do prázdného okna Untitled1.ps1. Pak zadejte hodnoty proměnných ve skriptu: subscriptionId, certpwd, certfolder, adminuser, adminpwdatd. Adresář, pro certfolder který zadáte, musí před spuštěním skriptu existovat.

#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId'

# Certificate variables.
$certpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\"

# Variables for VM admin.
$adminuser="vmadmin"
$adminpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force 

# Variables for common values
$clusterloc="SouthCentralUS"
$clustername = "mysfcluster"
$groupname="mysfclustergroup"       
$vmsku = "Standard_D2_v2"
$vaultname = "mykeyvault"
$subname="$clustername.$clusterloc.cloudapp.azure.com"

# Set the number of cluster nodes. Possible values: 1, 3-99
$clustersize=5 

# Set the context to the subscription Id where the cluster will be created
Select-AzSubscription -SubscriptionId $subscriptionId

# Create the Service Fabric cluster.
New-AzServiceFabricCluster -Name $clustername -ResourceGroupName $groupname -Location $clusterloc `
-ClusterSize $clustersize -VmUserName $adminuser -VmPassword $adminpwd -CertificateSubjectName $subname `
-CertificatePassword $certpwd -CertificateOutputFolder $certfolder `
-OS WindowsServer2016DatacenterwithContainers -VmSku $vmsku -KeyVaultName $vaultname

Po zadání hodnot proměnných spusťte skript stisknutím klávesy F5 .

Po spuštění skriptu a vytvoření clusteru ClusterEndpoint vyhledejte ve výstupu objekt . Příklad:

...
ClusterEndpoint : https://southcentralus.servicefabric.azure.com/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0

Instalace certifikátu pro cluster

Teď nainstalujeme PFX v úložišti certifikátů CurrentUser\My . Soubor PFX bude v adresáři, který jste zadali pomocí certfolder proměnné prostředí ve výše uvedeném skriptu PowerShellu.

Přejděte do tohoto adresáře a spusťte následující příkaz PowerShellu, který nahradí název souboru PFX, který je ve vašem certfolder adresáři, a heslo, které jste zadali certpwd v proměnné. V tomto příkladu je aktuální adresář nastavený na adresář určený proměnnou certfolder ve skriptu PowerShellu. Odtud se Import-PfxCertificate spustí příkaz:

PS C:\mycertificates> Import-PfxCertificate -FilePath .\mysfclustergroup20190130193456.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString Password#1234 -AsPlainText -Force)

Příkaz vrátí kryptografický otisk:

  ...
  PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

Thumbprint                                Subject
----------                                -------
0AC30A2FA770BEF566226CFCF75A6515D73FC686  CN=mysfcluster.SouthCentralUS.cloudapp.azure.com

Zapamatujte si hodnotu kryptografického otisku pro následující krok.

Nasazení aplikace do Azure pomocí sady Visual Studio

Aplikace je teď připravená a přímo ze sady Visual Studio ji můžete nasadit do clusteru.

V Průzkumníku řešení klikněte pravým tlačítkem na MyFirstContainer a zvolte Publikovat. Zobrazí se dialogové okno Publikovat.

Při spuštění výše uvedeného příkazu zkopírujte do okna PowerShellu Import-PfxCertificate následující obsah CN= a přidejte do něj port19000. Například, mysfcluster.SouthCentralUS.cloudapp.azure.com:19000. Zkopírujte ho do pole Koncový bod připojení . Tuto hodnotu si zapamatujte, protože ji budete potřebovat v dalším kroku.

Klikněte na Rozšířené parametry připojení a ověřte informace o parametrech připojení. Hodnoty FindValue a ServerCertThumbprint musí odpovídat kryptografickému otisku certifikátu nainstalovaného při spuštění Import-PfxCertificate v předchozím kroku.

Dialogové okno Publikovat

Klikněte na Publikovat.

Každá aplikace v clusteru musí mít jedinečný název. Pokud dojde ke konfliktu názvů, přejmenujte projekt sady Visual Studio a nasaďte ho znovu.

Otevřete prohlížeč a přejděte na adresu, kterou jste v předchozím kroku umístili do pole Koncový bod připojení . Volitelně můžete před adresu URL přidat identifikátor schématu http:// a připojit za ní port :80. Například http://mysfcluster.SouthCentralUS.cloudapp.azure.com:80..

Měla by se zobrazit výchozí webová stránka služby IIS: Výchozí webová stránka služby IIS

Vyčištění

Pokud je cluster spuštěný, budou se vám dál účtovat poplatky. Zvažte odstranění clusteru.

Další kroky

V tomto rychlém startu jste se naučili:

  • Zabalení kontejneru image Dockeru
  • Konfigurace komunikace
  • Sestavení a zabalení aplikace Service Fabric
  • Nasazení aplikace typu kontejner do Azure

Další informace o práci s kontejnery Windows v Service Fabric najdete v kurzu pro kontejnerové aplikace pro Windows.