Podpora nasazení Docker Compose v Azure Service Fabric (Preview)

Docker používá k definování vícekontejnerových aplikací soubor docker-compose.yml . Abychom zákazníkům s Dockerem usnadnili orchestraci existujících kontejnerových aplikací v Azure Service Fabric, přidali jsme podporu preview pro nasazení Docker Compose nativně na platformě. Service Fabric může přijmout verzi 3 a novější soubory docker-compose.yml .

Vzhledem k tomu, že tato podpora je ve verzi Preview, podporuje se pouze podmnožina direktiv Compose.

Pokud chcete použít tuto verzi Preview, vytvořte cluster s modulem runtime Service Fabric verze 5.7 nebo vyšší prostřednictvím webu Azure Portal spolu s odpovídající sadou SDK.

Poznámka:

Tato funkce je ve verzi Preview a není podporována v produkčním prostředí. Následující příklady jsou založené na modulu runtime verze 6.0 a sadě SDK verze 2.8.

Nasazení souboru Docker Compose ve službě Service Fabric

Následující příkazy vytvoří aplikaci Service Fabric (pojmenovanou fabric:/TestContainerApp), kterou můžete monitorovat a spravovat stejně jako jakoukoli jinou aplikaci Service Fabric. Pro dotazy na stav můžete použít zadaný název aplikace. Service Fabric rozpozná "DeploymentName" jako identifikátor nasazení Compose.

Použití PowerShellu

Spuštěním následujícího příkazu v PowerShellu vytvořte nasazení Service Fabric Compose z souboru docker-compose.yml:

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

RegistryUserName a RegistryPassword projděte si uživatelské jméno a heslo registru kontejneru. Po dokončení nasazení můžete pomocí následujícího příkazu zkontrolovat jeho stav:

Get-ServiceFabricComposeDeploymentStatus -DeploymentName TestContainerApp

Pokud chcete odstranit nasazení Pro psaní zpráv prostřednictvím PowerShellu, použijte následující příkaz:

Remove-ServiceFabricComposeDeployment  -DeploymentName TestContainerApp

Pokud chcete spustit upgrade nasazení pro psaní zpráv prostřednictvím PowerShellu, použijte následující příkaz:

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

Pokud chcete vrátit upgrade nasazení compose prostřednictvím PowerShellu, použijte následující příkaz:

Start-ServiceFabricComposeDeploymentRollback -DeploymentName TestContainerApp

Po přijetí upgradu je možné průběh upgradu sledovat pomocí následujícího příkazu:

Get-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp

Použití Azure Service Fabric CLI (sfctl)

Alternativně můžete použít následující příkaz Service Fabric CLI:

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

Po vytvoření nasazení můžete pomocí následujícího příkazu zkontrolovat jeho stav:

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

Pokud chcete odstranit nasazení Compose, použijte následující příkaz:

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

Pokud chcete spustit upgrade nasazení Pro psaní zpráv, použijte následující příkaz:

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 ]

Pokud chcete vrátit upgrade nasazení compose, použijte následující příkaz:

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

Po přijetí upgradu je možné průběh upgradu sledovat pomocí následujícího příkazu:

sfctl compose upgrade-status --deployment-name TestContainerApp

Podporované direktivy compose

Tato verze Preview podporuje podmnožinu možností konfigurace z formátu Compose verze 3, včetně následujících primitiv:

  • Služby > – nasazení > replik
  • > Omezení nasazení služeb > pro umístění >
  • Limity prostředků > pro nasazení > služeb >
    • -cpu-shares
    • -Paměti
    • -memory-swap
  • Příkazy služeb >
  • Prostředí služeb >
  • Porty služeb >
  • Obrázek služeb >
  • Izolace služeb > (pouze pro Windows)
  • Ovladač protokolování > služeb >
  • Možnosti ovladače > protokolování > služeb >
  • Svazek a nasazení > svazku

Nastavte cluster pro vynucování limitů prostředků, jak je popsáno v zásadách správného řízení prostředků Service Fabric. Všechny ostatní direktivy Docker Compose nejsou pro tuto verzi Preview podporované.

Oddíl Porty

V části Porty zadejte protokol HTTP nebo HTTPS, který bude používat naslouchací proces služby Service Fabric. Tím zajistíte správné publikování protokolu koncového bodu se službou pojmenování, aby bylo možné předávat požadavky reverzním proxy serverem:

  • Pokud chcete směrovat na nezabezpečené služby Service Fabric Compose, zadejte /http. Například – 80:80/http.
  • Pokud chcete směrovat na zabezpečené služby Service Fabric Compose, zadejte /https. Například – 443:443/https.

Poznámka:

Syntaxe oddílu Porty /http a /https je specifická pro Service Fabric, aby se zaregistrovala správná adresa URL naslouchacího procesu Service Fabric. Pokud je syntaxe souboru Docker compose ověřená prostřednictvím kódu programu, může to způsobit chybu ověření.

Výpočet ServiceDnsName

Pokud je název služby, který zadáte v souboru Compose, plně kvalifikovaný název domény (to znamená, že obsahuje tečku [.]), název DNS zaregistrovaný službou Service Fabric je <ServiceName> (včetně tečky). Pokud ne, každý segment cesty v názvu aplikace se stane popiskem domény v názvu DNS služby, přičemž první segment cesty se stane popiskem domény nejvyšší úrovně.

Pokud je fabric:/SampleApp/MyComposeAppnapříklad zadaný název aplikace , <ServiceName>.MyComposeApp.SampleApp bude to registrovaný název DNS.

Vytvoření nasazení (definice instance) a modelu aplikace Service Fabric (definice typu)

Soubor docker-compose.yml popisuje nasaditelnou sadu kontejnerů, včetně jejich vlastností a konfigurací. Soubor může například obsahovat proměnné prostředí a porty. V souboru docker-compose.yml můžete také zadat parametry nasazení, jako jsou omezení umístění, limity prostředků a názvy DNS.

Aplikační model Service Fabric používá typy služeb a typy aplikací, kde můžete mít mnoho instancí aplikace stejného typu. Můžete mít například jednu instanci aplikace pro každého zákazníka. Tento model založený na typu podporuje více verzí stejného typu aplikace, který je zaregistrovaný v modulu runtime.

Zákazník A může mít například instanci aplikace typu 1.0 typu AppTypeA a zákazník B může mít instanci jiné aplikace se stejným typem a verzí. Definujete typy aplikací v manifestech aplikace a při vytváření aplikace zadáte název aplikace a parametry nasazení.

I když tento model nabízí flexibilitu, plánujeme také podporovat jednodušší model nasazení založený na instancích, kde jsou typy implicitní ze souboru manifestu. V tomto modelu získá každá aplikace vlastní nezávislý manifest. Tuto snahu ve verzi Preview přidáváme přidáním podpory docker-compose.yml, což je formát nasazení založený na instancích.

Další kroky