Hızlı başlangıç: Windows kapsayıcıları Service Fabric'e dağıtma
Azure Service Fabric; ölçeklenebilir ve güvenilir mikro hizmetleri ve kapsayıcıları dağıtmayı ve yönetmeyi sağlayan bir dağıtılmış sistemler platformudur.
Bir Service Fabric kümesindeki Windows kapsayıcısında mevcut olan bir uygulamayı çalıştırmak için uygulamanızda herhangi bir değişiklik yapılması gerekmez. Bu hızlı başlangıç, Service Fabric uygulamasında önceden oluşturulmuş bir Docker kapsayıcısı görüntüsünü dağıtmayı gösterir. işiniz bittiğinde, çalışan bir Windows server Core 2016 sunucusu ve ııs kapsayıcısına sahip olacaksınız. bu hızlı başlangıçta Windows kapsayıcısının dağıtımı açıklanmaktadır. Bir Linux kapsayıcısı dağıtmak için Bu hızlı başlangıcı okuyun.

Bu hızlı başlangıçta şunları yapmayı öğrenirsiniz:
- Docker görüntü kapsayıcısını paketleme
- İletişimi yapılandırma
- Service Fabric uygulamasını oluşturma ve paketleme
- Kapsayıcı uygulamasını Azure’a dağıtma
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Önkoşullar
- Bir Azure aboneliği (ücretsiz bir hesap oluşturabilirsiniz).
- Şunları çalıştıran bir geliştirme bilgisayarı:
- Visual Studio 2019 veya Windows 2019.
- Service Fabric SDK’sı ve araçları.
Visual Studio ile Docker görüntü kapsayıcısını paketleme
Service Fabric SDK’sı ve araçları, bir kapsayıcıyı Service Fabric kümesine dağıtmanıza yardımcı olan bir hizmet şablonu sağlar.
Visual Studio'yu “Yönetici” olarak başlatın. dosya > yeni > Project seçin.
Service Fabric uygulama seçin, "myfirstcontainer" olarak adlandırın ve oluştur' a tıklayın.
Barındırılan Kapsayıcılar ve Uygulamalar şablonlarından Kapsayıcı’yı seçin.
görüntü adı' nda, Windows Server Core server ve ııs temel görüntüsünü"mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016" girin.
80 numaralı bağlantı noktasında hizmete gelen isteklerin, kapsayıcı üzerindeki 80 numaralı bağlantı noktasıyla eşlenmesi için kapsayıcının bağlantı noktasından konağa bağlantı noktası eşlenmesini yapılandırın. Kapsayıcı Bağlantı Noktası’nı "80" olarak ve Ana Bilgisayar Bağlantı Noktası’nı "80" olarak ayarlayın.
Hizmeti "MyContainerService" olarak adlandırın ve Tamam’a tıklayın.

Kapsayıcı görüntünüz için OS derlemesini belirtme
Windows Server'ın belirli bir sürümüyle derlenen kapsayıcılar, Windows Server'ın farklı sürümünü çalıştıran bir konakta çalışmayabilir. örneğin, Windows Server sürüm 1709 kullanılarak oluşturulan kapsayıcılar, Windows Server 2016 çalıştıran konaklarda çalıştırılmaktadır. Daha fazla bilgi için bkz. Windows Server kapsayıcı işletim sistemi ve ana bilgisayar işletim sistemi uyumluluğu.
Service Fabric çalışma zamanının sürüm 6.1 veya daha yeni bir sürümüyle, kapsayıcı başına birden çok işletim sistemi görüntüsü belirtebilir ve her birini dağıtılacağı işletim sisteminin derleme sürümüyle etiketleyebilirsiniz. Bu, uygulamanızın Windows işletim sisteminin farklı sürümlerini çalıştıran konaklar arasında çalıştırılabilmesine yardımcı olur. Daha fazla bilgi edinmek için bkz. İşletim sistemi derlemesine özgü kapsayıcı görüntüleri belirtme.
Microsoft, Windows Server'ın farklı sürümleri üzerinde oluşturulmuş IIS sürümleri için farklı görüntüler yayımlar. Service Fabric'in, uygulamanızın dağıtıldığı küme düğümlerinde çalıştırılan Windows Server sürümüyle uyumlu bir kapsayıcı dağıttığından emin olmak için, ApplicationManifest.xml dosyasına aşağıdaki satırları ekleyin. WIndows Server 2016 için derleme sürümü 14393, Windows Server 1709 sürümü için derleme sürümü 16299’dur.
<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>
Hizmet bildirimi, mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016 nano sunucusu için tek bir görüntü belirtmeye devam eder.
Ayrıca, ApplicationManifest.xml dosyasında, Passwordencrypted değerini false olarak değiştirin. Bu hesap ve parola, Docker Hub 'ında bulunan ortak kapsayıcı görüntüsü için boştur, bu nedenle boş bir parolanın şifrelenmesi bir yapı hatası üretecek için şifrelemeyi kapattık.
<RepositoryCredentials AccountName="" Password="" PasswordEncrypted="false" />
Küme oluşturma
aşağıdaki örnek betik, bir X. 509.440 sertifikasıyla korunan beş düğümlü bir Service Fabric kümesi oluşturur. Bu komut otomatik olarak imzalanan bir sertifika oluşturur ve bunu yeni bir anahtar kasasına yükler. Sertifika aynı zamanda bir yerel dizine de kopyalanır. bu betiği kullanarak bir küme oluşturma hakkında daha fazla bilgi için Service Fabric kümesi oluşturun.
gerekirse, Azure PowerShell kılavuzundabulunan yönergeleri kullanarak Azure PowerShell ' yi yüklemelisiniz.
Aşağıdaki betiği çalıştırmadan önce, PowerShell çalıştırmasında Connect-AzAccount Azure ile bir bağlantı oluşturun.
Aşağıdaki betiği panoya kopyalayın ve Windows PowerShell ISE'yi açın. İçeriği boş Untitled1.ps1 penceresine yapıştırın. Sonra betikteki Değişkenler için değerler sağlayın: subscriptionId ,,, certpwd certfolder adminuser ,, vb adminpwd . İçin belirttiğiniz dizin, certfolder betiği çalıştırmadan önce mevcut olmalıdır.
#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
Değişkenleri için değerlerinizi girdikten sonra, komut dosyasını çalıştırmak için F5 tuşuna basın.
Betiği çalıştıktan ve küme oluşturulduktan sonra ClusterEndpoint çıktıda bulun. Örnek:
...
ClusterEndpoint : https://southcentralus.servicefabric.azure.com/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0
Küme için sertifikayı yükler
Şimdi de PFX 'yi Currentuser\certificate deposuna yükleyeceğiz. PFX dosyası, certfolder Yukarıdaki PowerShell betiğindeki ortam değişkenini kullanarak belirttiğiniz dizinde olacaktır.
Bu dizine geçin ve ardından dizininizde bulunan PFX dosyasının adını certfolder ve değişkende belirttiğiniz parolayı değiştirerek aşağıdaki PowerShell komutunu çalıştırın certpwd . Bu örnekte, geçerli dizin, certfolder PowerShell betiğinin değişkeni tarafından belirtilen dizine ayarlanır. Import-PfxCertificateKomutun çalıştırıldığı komut:
PS C:\mycertificates> Import-PfxCertificate -FilePath .\mysfclustergroup20190130193456.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString Password#1234 -AsPlainText -Force)
Komut parmak Izini döndürür:
...
PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
Thumbprint Subject
---------- -------
0AC30A2FA770BEF566226CFCF75A6515D73FC686 CN=mysfcluster.SouthCentralUS.cloudapp.azure.com
Aşağıdaki adım için parmak izi değerini hatırlayın.
Visual Studio kullanarak uygulamayı Azure’a dağıtma
Uygulama hazır olduğuna göre, doğrudan Visual Studio'dan bir kümeye dağıtabilirsiniz.
Çözüm Gezgini'nde MyFirstContainer’a sağ tıklayın ve Yayımla’yı seçin. Yayımla iletişim kutusu görüntülenir.
Yukarıdaki komutu çalıştırdığınız zaman PowerShell penceresinde CN = içeriğini kopyalayın Import-PfxCertificate ve buna bağlantı noktası ekleyin 19000 . Örneğin, mysfcluster.SouthCentralUS.cloudapp.azure.com:19000. Bağlantıyı bağlantı uç noktası alanına kopyalayın. Gelecekteki bir adımda ihtiyaç duyacağınız için bu değeri unutmayın.
Gelişmiş Bağlantı Parametrelerine tıklayıp bağlantı parametresi bilgilerini doğrulayın. FindValue ve servercertparmak izi değerleri, önceki adımda çalıştırdığınızda yüklenen sertifikanın parmak izine uymalıdır Import-PfxCertificate .

Yayımla’ya tıklayın.
Kümedeki her uygulamanın benzersiz bir adı olmalıdır. ad çakışması varsa Visual Studio projeyi yeniden adlandırın ve yeniden dağıtın.
Bir tarayıcı açın ve önceki adımda bağlantı uç noktası alanına yerleştirdiğiniz adrese gidin. İsteğe bağlı olarak, URL’nin başına düzen tanımlayıcısını (http://) ve sonuna bağlantı noktasını (:80) ekleyebilirsiniz. Örneğin, http: / /mysfcluster.SouthCentralUS.cloudapp.Azure.com:80.
IIS varsayılan web sayfasını görmeniz gerekir: 
Temizleme
Küme çalışırken ücretlendirmeye devam edersiniz. Kümenizi silmeyigöz önünde bulundurun.
Sonraki adımlar
Bu hızlı başlangıçta şunları öğrendiniz:
- Docker görüntü kapsayıcısını paketleme
- İletişimi yapılandırma
- Service Fabric uygulamasını oluşturma ve paketleme
- Kapsayıcı uygulamasını Azure’a dağıtma
Service Fabric’te Windows kapsayıcılarıyla çalışma hakkında daha fazla bilgi için Windows kapsayıcı uygulamaları öğreticisiyle devam edin.