Dela via


Stöd för Docker Compose-distribution i Azure Service Fabric (förhandsversion)

Docker använder docker-compose.yml-filen för att definiera program med flera containrar. För att göra det enkelt för kunder som är bekanta med Docker att orkestrera befintliga containerprogram i Azure Service Fabric har vi inkluderat förhandsversionsstöd för Docker Compose-distribution internt på plattformen. Service Fabric kan acceptera version 3 och senare av docker-compose.yml filer.

Eftersom det här stödet finns i förhandsversionen stöds endast en delmängd av Compose-direktiven.

Om du vill använda den här förhandsversionen skapar du klustret med version 5.7 eller senare av Service Fabric-körningen via Azure-portalen tillsammans med motsvarande SDK.

Kommentar

Den här funktionen är i förhandsversion och stöds inte i produktion. Exemplen nedan baseras på körningsversion 6.0 och SDK version 2.8.

Distribuera en Docker Compose-fil i Service Fabric

Följande kommandon skapar ett Service Fabric-program (med namnet fabric:/TestContainerApp), som du kan övervaka och hantera som alla andra Service Fabric-program. Du kan använda det angivna programnamnet för hälsofrågor. Service Fabric identifierar "DeploymentName" som identifierare för Compose-distributionen.

Använda PowerShell

Skapa en Service Fabric Compose-distribution från en docker-compose.yml-fil genom att köra följande kommando i PowerShell:

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

RegistryUserName och RegistryPassword se användarnamnet och lösenordet för containerregistret. När du har slutfört distributionen kan du kontrollera dess status med hjälp av följande kommando:

Get-ServiceFabricComposeDeploymentStatus -DeploymentName TestContainerApp

Om du vill ta bort Compose-distributionen via PowerShell använder du följande kommando:

Remove-ServiceFabricComposeDeployment  -DeploymentName TestContainerApp

Om du vill starta en uppgradering av Compose-distributionen via PowerShell använder du följande kommando:

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

Om du vill återställa uppgraderingen av Compose-distributionen via PowerShell använder du följande kommando:

Start-ServiceFabricComposeDeploymentRollback -DeploymentName TestContainerApp

När uppgraderingen har godkänts kan uppgraderingen spåras med hjälp av följande kommando:

Get-ServiceFabricComposeDeploymentUpgrade -DeploymentName TestContainerApp

Använda Azure Service Fabric CLI (sfctl)

Du kan också använda följande Service Fabric CLI-kommando:

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

När du har skapat distributionen kan du kontrollera dess status med hjälp av följande kommando:

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

Om du vill ta bort Compose-distributionen använder du följande kommando:

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

Om du vill starta en uppgradering av compose-distributionen använder du följande kommando:

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 ]

Om du vill återställa uppgraderingen av Compose-distributionen använder du följande kommando:

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

När uppgraderingen har godkänts kan uppgraderingen spåras med hjälp av följande kommando:

sfctl compose upgrade-status --deployment-name TestContainerApp

Skriv-direktiv som stöds

Den här förhandsversionen stöder en delmängd av konfigurationsalternativen från formatet Compose version 3, inklusive följande primitiver:

  • > Distribuera repliker för tjänster >
  • Villkor > för distribution > av tjänster >
  • Gränser för distribuerade > resurser > för tjänster >
    • -cpu-shares
    • -Minne
    • -memory-swap
  • Tjänstkommandon >
  • Tjänstemiljö >
  • Tjänstportar >
  • Avbildning av tjänster >
  • Isolering av tjänster > (endast för Windows)
  • Loggningsdrivrutin > för tjänster >
  • > Alternativ för tjänstloggningsdrivrutin >>
  • Volym och distribuera > volym

Konfigurera klustret för att framtvinga resursgränser enligt beskrivningen i Service Fabric-resursstyrning. Alla andra Docker Compose-direktiv stöds inte för den här förhandsversionen.

Avsnittet Portar

Ange antingen http- eller https-protokollet i avsnittet Portar som ska användas av Service Fabric-tjänstens lyssnare. Detta säkerställer att slutpunktsprotokollet publiceras korrekt med namngivningstjänsten så att omvänd proxy kan vidarebefordra begäranden:

  • Om du vill dirigera till oskyddade Service Fabric Compose-tjänster anger du /http. Till exempel - "80:80/http".
  • Om du vill dirigera till säkra Service Fabric Compose-tjänster anger du /https. Till exempel – "443:443/https".

Kommentar

Syntaxen för avsnittet /http och /https Ports är specifik för Service Fabric för att registrera rätt Url för Service Fabric-lyssnaren. Om Docker Compose-filsyntaxen verifieras programmatiskt kan det orsaka ett valideringsfel.

ServiceDnsName-beräkning

Om det tjänstnamn som du anger i en Compose-fil är ett fullständigt domännamn (dvs. den innehåller en punkt [.]) är <ServiceName> DNS-namnet som registrerats av Service Fabric (inklusive punkten). Annars blir varje sökvägssegment i programnamnet en domänetikett i tjänstens DNS-namn, där det första sökvägssegmentet blir den översta domänetiketten.

Om det angivna programnamnet till exempel är fabric:/SampleApp/MyComposeApp, <ServiceName>.MyComposeApp.SampleApp är det registrerade DNS-namnet.

Skapa distribution (instansdefinition) jämfört med Service Fabric-appmodell (typdefinition)

En docker-compose.yml-fil beskriver en distributionsbar uppsättning containrar, inklusive deras egenskaper och konfigurationer. Filen kan till exempel innehålla miljövariabler och portar. Du kan också ange distributionsparametrar, till exempel placeringsbegränsningar, resursgränser och DNS-namn, i filen docker-compose.yml.

Service Fabric-programmodellen använder tjänsttyper och programtyper, där du kan ha många programinstanser av samma typ. Du kan till exempel ha en programinstans per kund. Den här typbaserade modellen stöder flera versioner av samma programtyp som är registrerade med körningen.

Kund A kan till exempel få ett program instansierat med apptyp 1.0 och kunden B kan få ett annat program instansierat med samma typ och version. Du definierar programtyperna i programmanifesten och anger programnamnet och distributionsparametrarna när du skapar programmet.

Även om den här modellen erbjuder flexibilitet planerar vi också att stödja en enklare, instansbaserad distributionsmodell där typer är implicita från manifestfilen. I den här modellen får varje program ett eget oberoende manifest. Vi förhandsgranskar den här åtgärden genom att lägga till stöd för docker-compose.yml, som är ett instansbaserat distributionsformat.

Nästa steg