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. İşiniz bittiğinde, çalışan bir Windows Server Core 2016 Server ve IIS kapsayıcınız olur. Bu hızlı başlangıçta Bir Windows kapsayıcısı dağıtma işlemi açıklanmaktadır. 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
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. 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).
- Çalışan 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>Proje’yi seçin.
Service Fabric uygulamasını 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ı alanına Windows Server Core Server ve IIS temel görüntüsü olan "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ışmaz. 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. Docker Hub'daki genel kapsayıcı görüntüsü için hesap ve parola boş olduğundan, boş bir parolayı şifrelemek bir derleme hatası oluşturacağından şifrelemeyi kapatıyoruz.
<RepositoryCredentials AccountName="" Password="" PasswordEncrypted="false" />
Küme oluşturma
Aşağıdaki örnek betik, X.509 sertifikasıyla güvenliği sağlanan 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. Service Fabric kümesi oluşturma bölümünde bu betiği kullanarak küme oluşturma hakkında daha fazla bilgi edinebilirsiniz.
Gerekirse, Azure PowerShell kılavuzunda bulunan yönergeleri kullanarak Azure PowerShell'i yükleyin.
Aşağıdaki betiği çalıştırmadan önce PowerShell'de Azure ile bağlantı oluşturmak için komutunu çalıştırın Connect-AzAccount
.
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. Ardından betikteki değişkenler için değerler sağlayın: subscriptionId
, certpwd
, certfolder
, adminuser
, , adminpwd
ve benzeri. Betiği çalıştırmadan önce belirttiğiniz certfolder
dizin 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şkenler için değerlerinizi sağladıktan sonra betiği çalıştırmak için F5 tuşuna basın.
Betik çalıştırıldıktan ve küme oluşturulduktan sonra çıktıda öğesini ClusterEndpoint
bulun. Örneğin:
...
ClusterEndpoint : https://southcentralus.servicefabric.azure.com/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0
Kümenin sertifikasını yükleme
Şimdi PFX'i CurrentUser\My sertifika deposuna yükleyeceğiz. PFX dosyası, yukarıdaki PowerShell betiğindeki ortam değişkenini certfolder
kullanarak belirttiğiniz dizinde yer alır.
Bu dizine geçin ve dizininizdeki certfolder
PFX dosyasının adını ve değişkende certpwd
belirttiğiniz parolayı değiştirerek aşağıdaki PowerShell komutunu çalıştırın. Bu örnekte geçerli dizin, PowerShell betiğinde certfolder
değişkeni tarafından belirtilen dizine ayarlanır. Import-PfxCertificate
Buradan komut çalıştırılır:
PS C:\mycertificates> Import-PfxCertificate -FilePath .\mysfclustergroup20190130193456.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString Password#1234 -AsPlainText -Force)
Komut Parmak İzi'ni 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 unutmayı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ızda Import-PfxCertificate
PowerShell penceresinde aşağıdaki CN= içeriğini kopyalayın ve bağlantı noktasını 19000
ekleyin. Örneğin, mysfcluster.SouthCentralUS.cloudapp.azure.com:19000
. Bağlantı Uç Noktası alanına kopyalayın. Bu değeri unutmayın çünkü bu değere gelecekteki bir adımda ihtiyacınız olacaktır.
Gelişmiş Bağlantı Parametrelerine tıklayıp bağlantı parametresi bilgilerini doğrulayın. FindValue ve ServerCertThumbprint değerleri, önceki adımda çalıştırdığınızda Import-PfxCertificate
yüklenen sertifikanın parmak iziyle eşleşmelidir.
Yayımla öğesine tıklayın.
Kümedeki her uygulamanın benzersiz bir adı olmalıdır. Ad çakışması varsa Visual Studio projesini yeniden adlandırın ve yeniden dağıtın.
Bir tarayıcı açın ve önceki adımda Bağlantı Uç Noktası alanına eklediğ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 ücret ödemeye devam edebilirsiniz. Kümenizi silmeyi gö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 edinmek için Windows kapsayıcı uygulamaları öğreticisine geçin.