Aracılığıyla paylaş


Azure Service Fabric'te Docker Compose dağıtım desteği

Docker, çok kapsayıcılı uygulamaları tanımlamak için docker-compose.yml dosyasını kullanır. Docker'ı bilen müşterilerin Azure Service Fabric'te mevcut kapsayıcı uygulamalarını düzenlemesini kolaylaştırmak için docker Compose dağıtımına yönelik önizleme desteğini platforma yerel olarak dahil ettik. Service Fabric dosyaların 3. ve sonraki sürümlerini docker-compose.yml kabul edebilir.

Bu destek önizleme aşamasında olduğundan, Compose yönergelerinin yalnızca bir alt kümesi desteklenir.

Bu önizlemeyi kullanmak için azure portalı aracılığıyla ilgili SDK ile birlikte Service Fabric çalışma zamanının 5.7 veya üzeri sürümüne sahip kümenizi oluşturun.

Not

Bu özellik önizleme aşamasındadır ve üretimde desteklenmez. Aşağıdaki örnekler çalışma zamanı sürümü 6.0 ve SDK sürüm 2.8'i temel alır.

Service Fabric'te Docker Compose dosyası dağıtma

Aşağıdaki komutlar, diğer Tüm Service Fabric uygulamaları gibi izleyip yönetebileceğiniz bir Service Fabric uygulaması (adlı fabric:/TestContainerApp) oluşturur. Sistem durumu sorguları için belirtilen uygulama adını kullanabilirsiniz. Service Fabric, Oluşturma dağıtımının tanımlayıcısı olarak "DeploymentName" değerini tanır.

PowerShell kullanma

PowerShell'de aşağıdaki komutu çalıştırarak bir docker-compose.yml dosyasından Service Fabric Oluşturma dağıtımı oluşturun:

New-ServiceFabricComposeDeployment -DeploymentName TestContainerApp -Compose docker-compose.yml [-RegistryUserName <>] [-RegistryPassword <>] [-PasswordEncrypted]

RegistryUserName ve RegistryPassword kapsayıcı kayıt defteri kullanıcı adı ve parolasına bakın. Dağıtımı tamamladıktan sonra, aşağıdaki komutu kullanarak durumunu dekleyebilirsiniz:

Get-ServiceFabricComposeDeploymentStatus -DeploymentName TestContainerApp

PowerShell aracılığıyla dağıtım oluştur'u silmek için aşağıdaki komutu kullanın:

Remove-ServiceFabricComposeDeployment  -DeploymentName TestContainerApp

PowerShell aracılığıyla dağıtım oluşturma yükseltmesi başlatmak için aşağıdaki komutu kullanın:

Start-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp -Compose docker-compose-v2.yml -Monitored -FailureAction Rollback

PowerShell aracılığıyla dağıtım oluşturma yükseltmesini geri almak için aşağıdaki komutu kullanın:

Start-ServiceFabricComposeDeploymentRollback -DeploymentName TestContainerApp

Yükseltme kabul edildikten sonra, yükseltme ilerleme durumu aşağıdaki komut kullanılarak izlenebilir:

Get-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp

Azure Service Fabric CLI(sfctl) kullanma

Alternatif olarak, aşağıdaki Service Fabric CLI komutunu kullanabilirsiniz:

sfctl compose create --deployment-name TestContainerApp --file-path docker-compose.yml [ [ --user --encrypted-pass ] | [ --user --has-pass ] ] [ --timeout ]

Dağıtımı oluşturduktan sonra, aşağıdaki komutu kullanarak durumunu dekleyebilirsiniz:

sfctl compose status --deployment-name TestContainerApp [ --timeout ]

Oluşturma dağıtımını silmek için aşağıdaki komutu kullanın:

sfctl compose remove  --deployment-name TestContainerApp [ --timeout ]

Dağıtım oluşturma yükseltmesini başlatmak için aşağıdaki komutu kullanın:

sfctl compose upgrade --deployment-name TestContainerApp --file-path docker-compose-v2.yml [ [ --user --encrypted-pass ] | [ --user --has-pass ] ] [--upgrade-mode Monitored] [--failure-action Rollback] [ --timeout ]

Dağıtım oluşturma yükseltmesini geri almak için aşağıdaki komutu kullanın:

sfctl compose upgrade-rollback --deployment-name TestContainerApp [ --timeout ]

Yükseltme kabul edildikten sonra, yükseltme ilerleme durumu aşağıdaki komut kullanılarak izlenebilir:

sfctl compose upgrade-status --deployment-name TestContainerApp

Desteklenen Oluşturma yönergeleri

Bu önizleme, Aşağıdaki temel öğeler de dahil olmak üzere Oluşturma sürüm 3 biçimindeki yapılandırma seçeneklerinin bir alt kümesini destekler:

  • Hizmetler > Çoğaltmaları Dağıtıyor >
  • Hizmetler > Yerleştirme > Kısıtlamalarını Dağıtıyor >
  • Hizmetler > Kaynak > Dağıtma > Sınırları
    • -cpu paylaşımları
    • -bellek
    • -memory-swap
  • Hizmet > Komutları
  • Hizmetler > Ortamı
  • Hizmet > Bağlantı Noktaları
  • Hizmetler > Görüntüsü
  • Hizmet > Yalıtımı (yalnızca Windows için)
  • Hizmet > Günlüğü > Sürücüsü
  • Hizmet > Günlüğü > Sürücü > Seçenekleri
  • Birim ve Birim Dağıtma >

Service Fabric kaynak idaresinde açıklandığı gibi kümeyi kaynak sınırlarını zorlamak için ayarlayın. Bu önizleme için diğer tüm Docker Compose yönergeleri desteklenmez.

Bağlantı noktaları bölümü

Service Fabric hizmet dinleyicisi tarafından kullanılacak Bağlantı Noktaları bölümünde http veya https protokollerini belirtin. Bu, ters proxy'nin istekleri iletmesine izin vermek için uç nokta protokollerinin adlandırma hizmetiyle doğru şekilde yayımlanmasını sağlar:

  • Güvenli olmayan Service Fabric Compose hizmetlerine yönlendirmek için /http belirtin. Örneğin, - "80:80/http".
  • Güvenli Service Fabric Oluşturma hizmetlerine yönlendirmek için /https belirtin. Örneğin, - "443:443/https".

Not

Doğru Service Fabric dinleyici URL'sini kaydetmek için /http ve /https Bağlantı Noktaları bölüm söz dizimi Service Fabric'e özgüdür. Docker oluşturma dosyası söz dizimi program aracılığıyla doğrulanırsa doğrulama hatasına neden olabilir.

ServiceDnsName hesaplaması

Oluştur dosyasında belirttiğiniz hizmet adı tam etki alanı adıysa (yani nokta [.]) ise, Service Fabric tarafından kaydedilen DNS adı (nokta dahil) olur <ServiceName> . Aksi takdirde, uygulama adındaki her yol kesimi hizmet DNS adında bir etki alanı etiketine dönüşür ve ilk yol kesimi en üst düzey etki alanı etiketi olur.

Örneğin, belirtilen uygulama adı ise fabric:/SampleApp/MyComposeApp<ServiceName>.MyComposeApp.SampleApp kayıtlı DNS adı olacaktır.

Dağıtım oluşturma (örnek tanımı) ile Service Fabric uygulama modeli (tür tanımı) karşılaştırması

docker-compose.yml dosyası, özellikleri ve yapılandırmaları da dahil olmak üzere dağıtılabilir bir kapsayıcı kümesini açıklar. Örneğin, dosya ortam değişkenlerini ve bağlantı noktalarını içerebilir. Docker-compose.yml dosyasında yerleştirme kısıtlamaları, kaynak sınırları ve DNS adları gibi dağıtım parametrelerini de belirtebilirsiniz.

Service Fabric uygulama modeli, aynı türde birçok uygulama örneğine sahip olabileceğiniz hizmet türlerini ve uygulama türlerini kullanır. Örneğin, müşteri başına bir uygulama örneğiniz olabilir. Bu tür tabanlı model, çalışma zamanına kaydedilmiş aynı uygulama türünün birden çok sürümünü destekler.

Örneğin, A müşterisi AppTypeA'nın 1.0 türüyle örnek bir uygulama oluşturabilir ve B müşterisi de aynı tür ve sürüme sahip başka bir uygulamanın örneğini oluşturabilir. Uygulama bildirimlerinde uygulama türlerini tanımlarsınız ve uygulamayı oluştururken uygulama adını ve dağıtım parametrelerini belirtirsiniz.

Bu model esneklik sunsa da, türlerin bildirim dosyasından örtük olduğu daha basit, örnek tabanlı bir dağıtım modelini de desteklemeyi planlıyoruz. Bu modelde her uygulama kendi bağımsız bildirimini alır. Örnek tabanlı bir dağıtım biçimi olan docker-compose.yml için destek ekleyerek bu çabanın önizlemesini yapıyoruz.

Sonraki adımlar