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 Server Core 2016 Server a IIS. Tento rychlý start popisuje nasazení kontejneru Windows. V tomto rychlém startu se dozvíte, jak nasadit kontejner Linuxu.
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:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. 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
- Předplatné Azure (můžete si vytvořit bezplatný účet).
- Vývojový počítač, na kterém běží:
- Visual Studio 2019 nebo Windows 2019
- Sada Service Fabric SDK a nástroje.
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 a základní image 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.
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 se nespouštějí na hostitelích s Windows Serverem 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
.
Také v souboru ApplicationManifest.xml změňte passwordEncrypted na false. Účet a heslo jsou prázdné pro image veřejného kontejneru, která je v Docker Hubu, takže šifrování vypneme, protože š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ů uvedených v příručce k Azure PowerShellu.
Než spustíte následující skript, spusťte Connect-AzAccount
v PowerShellu připojení k Azure.
Zkopírujte následující skript do schránky a otevřete prostředí Windows PowerShell ISE. Vložte obsah do prázdného okna Bez názvu1.ps1. Potom zadejte hodnoty proměnných ve skriptu: subscriptionId
, certpwd
, certfolder
, adminuser
, adminpwd
, atd. Před spuštěním skriptu musí existovat zadaný adresář certfolder
.
#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 vyhledejte ClusterEndpoint
ve výstupu. 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 skriptu PowerShellu výše.
Přejděte do tohoto adresáře a spusťte následující příkaz PowerShellu, nahraďte název souboru PFX, který je v certfolder
adresáři, a heslo, které jste zadali v certpwd
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
příkaz spustí:
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.
Po spuštění výše uvedeného příkazu zkopírujte následující CN= v okně PowerShellu Import-PfxCertificate
a přidejte do něj port 19000
. 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 nainstalovaného certifikátu při spuštění Import-PfxCertificate
v předchozím kroku. Pak vyberte 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:
Vyčištění
Během běhu clusteru se vám budou úč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 Windows.