Behållargrupper i Azure Container Instances

Den översta resursen i Azure Container Instances är containergruppen. Den här artikeln beskriver vilka containergrupper som är och vilka typer av scenarier de aktiverar.

Vad är en containergrupp?

En containergrupp är en samling containrar som schemaläggs på samma värddator. Containrarna i en containergrupp delar en livscykel, resurser, lokalt nätverk och lagringsvolymer. Det liknar en podd i Kubernetes.

Följande diagram visar ett exempel på en containergrupp som innehåller flera containrar:

Container groups diagram

Det här exemplet på en containergrupp:

  • Schemaläggs på en enda värddator.
  • Tilldelas en DNS-namnetikett.
  • Exponerar en enskild offentlig IP-adress med en exponerad port.
  • Består av två containrar. En container lyssnar på port 80, medan den andra lyssnar på port 5000.
  • Innehåller två Azure-filresurser som volymmonteringar och varje container monterar en av resurserna lokalt.

Kommentar

Grupper med flera containrar stöder för närvarande endast Linux-containrar. För Windows-containrar stöder Azure Container Instances endast distribution av en enda containerinstans. Medan vi arbetar med att ta alla funktioner till Windows-containrar kan du hitta aktuella plattformsskillnader i tjänstöversikten.

Distribution

Här är två vanliga sätt att distribuera en grupp med flera containrar: använd en Resource Manager-mall eller en YAML-fil. En Resource Manager-mall rekommenderas när du behöver distribuera ytterligare Azure-tjänstresurser (till exempel en Azure Files-resurs) när du distribuerar containerinstanserna. På grund av YAML-formatets mer koncisa karaktär rekommenderas en YAML-fil när distributionen endast innehåller containerinstanser. Mer information om egenskaper som du kan ange finns i referensen för Resource Manager-mallen eller YAML-referensdokumentationen.

Om du vill bevara en containergrupps konfiguration kan du exportera konfigurationen till en YAML-fil med hjälp av Azure CLI-kommandot az container export. Med Export kan du lagra dina konfigurationer för containergrupper i versionskontrollen för "konfiguration som kod". Du kan också använda den exporterade filen som utgångspunkt när du utvecklar en ny konfiguration i YAML.

Resursallokeringen

Azure Container Instances allokerar resurser som processorer, minne och eventuellt GPU:er (förhandsversion) till en grupp med flera containrar genom att lägga till resursbegäranden för instanserna i gruppen. Om du till exempel tar CPU-resurser, om du skapar en containergrupp med två containerinstanser, som var och en begär 1 CPU, tilldelas containergruppen 2 processorer.

Resursanvändning efter containerinstanser

Varje containerinstans i en grupp allokeras de resurser som anges i resursbegäran. De maximala resurser som används av en containerinstans i en grupp kan dock skilja sig om du konfigurerar dess valfria resursgränsegenskap . Resursgränsen för en containerinstans måste vara större än eller lika med den obligatoriska egenskapen för resursbegäran .

  • Om du inte anger någon resursgräns är containerinstansens maximala resursanvändning densamma som resursbegäran.

  • Om du anger en gräns för en containerinstans kan instansens maximala användning vara större än begäran, upp till den gräns som du anger. På motsvarande sätt kan resursanvändningen för andra containerinstanser i gruppen minska. Den maximala resursgränsen som du kan ange för en containerinstans är det totala antalet resurser som allokerats till gruppen.

I en grupp med två containerinstanser som var och en begär 1 CPU kan en av dina containrar till exempel köra en arbetsbelastning som kräver att fler processorer körs än den andra.

I det här scenariot kan du ange en resursgräns på upp till 2 processorer för containerinstansen. Med den här konfigurationen kan containerinstansen använda upp till 2 processorer om den är tillgänglig.

Kommentar

En liten mängd av en containergrupps resurser används av tjänstens underliggande infrastruktur. Dina containrar kommer att kunna komma åt de flesta men inte alla resurser som allokerats till gruppen. Därför planerar du en liten resursbuffert när du begär resurser för containrar i gruppen.

Minsta och högsta allokering

  • Allokera minst 1 PROCESSOR och 1 GB minne till en containergrupp. Enskilda containerinstanser i en grupp kan etableras med mindre än 1 CPU och 1 GB minne.

  • Maximala resurser i en containergrupp finns i resurstillgängligheten för Azure Container Instances i distributionsregionen.

Nätverk

Containergrupper kan dela en extern IP-adress, en eller flera portar på ip-adressen och en DNS-etikett med ett fullständigt domännamn (FQDN). För att externa klienter ska kunna nå en container i gruppen måste du exponera porten på IP-adressen och från containern. En containergrupps IP-adress och FQDN släpps när containergruppen tas bort.

I en containergrupp kan containerinstanser nå varandra via localhost på valfri port, även om dessa portar inte exponeras externt på gruppens IP-adress eller från containern.

Du kan också distribuera containergrupper till ett virtuellt Azure-nätverk så att containrar kan kommunicera säkert med andra resurser i det virtuella nätverket.

Lagring

Du kan ange externa volymer som ska monteras i en containergrupp. Volymer som stöds är:

Du kan mappa dessa volymer till specifika sökvägar i de enskilda containrarna i en grupp.

Vanliga scenarier

Grupper med flera containrar är användbara i fall där du vill dela upp en enda funktionell uppgift i ett litet antal containeravbildningar. Dessa bilder kan sedan levereras av olika team och ha separata resurskrav.

Exempel på användning kan vara:

  • En container som betjänar ett webbprogram och en container som hämtar det senaste innehållet från källkontrollen.
  • En programcontainer och en loggningscontainer. Loggningscontainern samlar in loggar och måttutdata från huvudprogrammet och skriver dem till långsiktig lagring.
  • En programcontainer och en övervakningscontainer. Övervakningscontainern skickar regelbundet en begäran till programmet för att säkerställa att den körs och svarar korrekt och genererar en avisering om den inte är det.
  • En klientdelscontainer och en serverdelscontainer. Klientdelen kan hantera ett webbprogram, där serverdelen kör en tjänst för att hämta data.

Nästa steg

Lär dig hur du distribuerar en containergrupp med flera containrar med en Azure Resource Manager-mall: