Behållargrupper i Azure Container Instances

Resursen på den översta nivån i Azure Container Instances är containergruppen. Den här artikeln beskriver vad containergrupper ä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:

Diagram över containergrupper

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.

Anteckning

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 med 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 natur rekommenderas en YAML-fil när distributionen endast innehåller containerinstanser. Mer information om egenskaper som du kan ange finns i referensen Resource Manager mall 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 Exportera kan du lagra dina konfigurationer för containergrupper i versionskontroll 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 skapar en containergrupp med två containerinstanser, där 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 en resursgräns är containerinstansens maximala resursanvändning samma 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 till exempel en grupp med två containerinstanser som var och en begär 1 CPU kan en av dina containrar köra en arbetsbelastning som kräver fler processorer för att köras ä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 det är tillgängligt.

Anteckning

En liten del 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 bör du planera en liten resursbuffert när du begär resurser för containrar i gruppen.

Minsta och högsta allokering

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

  • Maximalt antal resurser i en containergrupp finns i Resurstillgänglighet för Azure Container Instances i distributionsregionen.

Nätverk

Containergrupper kan dela en extern IP-adress, en eller flera portar på den 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.

Storage

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 avbildningar 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 gö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: