Obsługa wdrażania narzędzia Docker Compose w usłudze Azure Service Fabric (wersja zapoznawcza)

Platforma Docker używa pliku docker-compose.yml do definiowania aplikacji wielokontenerowych. Aby ułatwić klientom zapoznanie się z platformą Docker w celu organizowania istniejących aplikacji kontenerów w usłudze Azure Service Fabric, udostępniliśmy natywną obsługę wersji zapoznawczej wdrożenia platformy Docker Compose. Usługa Service Fabric może akceptować wersję 3 i nowsze docker-compose.yml plików.

Ponieważ ta obsługa jest dostępna w wersji zapoznawczej, obsługiwana jest tylko podzbiór dyrektyw Compose.

Aby użyć tej wersji zapoznawczej, utwórz klaster w wersji 5.7 lub nowszej środowiska uruchomieniowego usługi Service Fabric za pośrednictwem witryny Azure Portal wraz z odpowiednim zestawem SDK.

Uwaga

Ta funkcja jest dostępna w wersji zapoznawczej i nie jest obsługiwana w środowisku produkcyjnym. Poniższe przykłady są oparte na środowisku uruchomieniowym w wersji 6.0 i zestawie SDK w wersji 2.8.

Wdrażanie pliku Docker Compose w usłudze Service Fabric

Następujące polecenia tworzą aplikację usługi Service Fabric (o nazwie fabric:/TestContainerApp), którą można monitorować i zarządzać jak dowolną inną aplikacją usługi Service Fabric. Dla zapytań dotyczących kondycji można użyć określonej nazwy aplikacji. Usługa Service Fabric rozpoznaje wartość "DeploymentName" jako identyfikator wdrożenia Compose.

Użyj PowerShell

Utwórz wdrożenie narzędzia Service Fabric Compose na podstawie pliku docker-compose.yml, uruchamiając następujące polecenie w programie PowerShell:

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

RegistryUserName i RegistryPassword zapoznaj się z nazwą użytkownika i hasłem rejestru kontenerów. Po zakończeniu wdrażania możesz sprawdzić jego stan przy użyciu następującego polecenia:

Get-ServiceFabricComposeDeploymentStatus -DeploymentName TestContainerApp

Aby usunąć wdrożenie redagowania za pomocą programu PowerShell, użyj następującego polecenia:

Remove-ServiceFabricComposeDeployment  -DeploymentName TestContainerApp

Aby rozpocząć uaktualnianie wdrożenia redagowania za pomocą programu PowerShell, użyj następującego polecenia:

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

Aby wycofać uaktualnienie wdrożenia redagowania za pomocą programu PowerShell, użyj następującego polecenia:

Start-ServiceFabricComposeDeploymentRollback -DeploymentName TestContainerApp

Po zaakceptowaniu uaktualnienia można śledzić postęp uaktualniania przy użyciu następującego polecenia:

Get-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp

Korzystanie z interfejsu wiersza polecenia usługi Azure Service Fabric (sfctl)

Alternatywnie możesz użyć następującego polecenia interfejsu wiersza polecenia usługi Service Fabric:

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

Po utworzeniu wdrożenia możesz sprawdzić jego stan przy użyciu następującego polecenia:

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

Aby usunąć wdrożenie narzędzia Compose, użyj następującego polecenia:

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

Aby rozpocząć uaktualnianie wdrożenia redagowania, użyj następującego polecenia:

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 ]

Aby wycofać uaktualnienie wdrożenia redagowania, użyj następującego polecenia:

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

Po zaakceptowaniu uaktualnienia można śledzić postęp uaktualniania przy użyciu następującego polecenia:

sfctl compose upgrade-status --deployment-name TestContainerApp

Obsługiwane dyrektywy Compose

Ta wersja zapoznawcza obsługuje podzestaw opcji konfiguracji w formacie Compose w wersji 3, w tym następujące elementy pierwotne:

  • Usługi > wdrażają > repliki
  • Ograniczenia rozmieszczania wdrożeń >> usług >
  • Usługi > wdrażania > limitów zasobów >
    • -cpu-shares
    • -Pamięci
    • -memory-swap
  • Polecenia usług >
  • Środowisko usług >
  • Porty usług >
  • Obraz usług >
  • Izolacja usług > (tylko dla systemu Windows)
  • Sterownik rejestrowania > usług >
  • Opcje sterowników > rejestrowania > usług >
  • Wolumin i wdróż > wolumin

Skonfiguruj klaster do wymuszania limitów zasobów zgodnie z opisem w temacie Zarządzanie zasobami usługi Service Fabric. Wszystkie inne dyrektywy narzędzia Docker Compose nie są obsługiwane w tej wersji zapoznawczej.

Sekcja Porty

Określ protokół http lub https w sekcji Porty, które będą używane przez odbiornik usługi Service Fabric. Dzięki temu protokół punktu końcowego zostanie poprawnie opublikowany za pomocą usługi nazewnictwa, aby umożliwić zwrotnemu serwerowi proxy przekazywanie żądań:

  • Aby kierować do niezabezpieczonych usług Service Fabric Compose, określ /http. Na przykład — "80:80/http".
  • Aby kierować do bezpiecznych usług Service Fabric Compose, określ /https. Na przykład — "443:443/https".

Uwaga

Składnia sekcji /http i /https Ports jest specyficzna dla usługi Service Fabric w celu zarejestrowania poprawnego adresu URL odbiornika usługi Service Fabric. Jeśli składnia pliku docker compose jest weryfikowana programowo, może to spowodować błąd weryfikacji.

Obliczenia ServiceDnsName

Jeśli nazwa usługi określona w pliku Compose jest w pełni kwalifikowaną nazwą domeny (czyli zawiera kropkę [.]), nazwa DNS zarejestrowana przez usługę Service Fabric to <ServiceName> (w tym kropka). Jeśli nie, każdy segment ścieżki w nazwie aplikacji staje się etykietą domeny w nazwie DNS usługi, a pierwszy segment ścieżki staje się etykietą domeny najwyższego poziomu.

Jeśli na przykład określona nazwa aplikacji to fabric:/SampleApp/MyComposeApp, <ServiceName>.MyComposeApp.SampleApp będzie to zarejestrowana nazwa DNS.

Tworzenie wdrożenia (definicja wystąpienia) a model aplikacji usługi Service Fabric (definicja typu)

Plik docker-compose.yml opisuje wdrażalny zestaw kontenerów, w tym ich właściwości i konfiguracje. Na przykład plik może zawierać zmienne środowiskowe i porty. Można również określić parametry wdrożenia, takie jak ograniczenia umieszczania, limity zasobów i nazwy DNS, w pliku docker-compose.yml.

Model aplikacji usługi Service Fabric używa typów usług i typów aplikacji, w których można mieć wiele wystąpień aplikacji tego samego typu. Możesz na przykład mieć jedno wystąpienie aplikacji na klienta. Ten model oparty na typie obsługuje wiele wersji tego samego typu aplikacji, które są zarejestrowane w środowisku uruchomieniowym.

Na przykład klient A może utworzyć wystąpienie aplikacji o typie 1.0 klasy AppTypeA, a klient B może utworzyć wystąpienie innej aplikacji o tym samym typie i wersji. Typy aplikacji są definiowane w manifestach aplikacji, a podczas tworzenia aplikacji należy określić nazwę aplikacji i parametry wdrożenia.

Mimo że ten model zapewnia elastyczność, planujemy również obsługę prostszego modelu wdrażania opartego na wystąpieniach, w którym typy są niejawne z pliku manifestu. W tym modelu każda aplikacja uzyskuje własny niezależny manifest. Podgląd tego nakładu pracy polega na dodaniu obsługi pliku docker-compose.yml, który jest formatem wdrożenia opartego na wystąpieniach.

Następne kroki