Delen via


Containergroepen in Azure Container Instances

De hoofdniveau-bron in Azure Container Instances is de containergroep. Dit artikel beschrijft wat containergroepen zijn en de soorten scenario's die ze mogelijk maken.

Wat is een containergroep?

Een containergroep is een verzameling containers die worden gepland op dezelfde hostmachine. De containers in een containergroep delen een levenscyclus, hulpbronnen, lokaal netwerk en opslagvolumes. Het is vergelijkbaar in concept met een pod in Kubernetes.

Het volgende diagram toont een voorbeeld van een containergroep die meerdere containers omvat.

Diagram van containergroepen

Deze voorbeeldcontainergroep.

  • Is ingepland op een enkele hostmachine.
  • Er wordt een DNS-naamlabel toegewezen.
  • Biedt een enkel openbaar IP-adres aan, met één geporteerde poort.
  • Bestaat uit twee containers. Eén container luistert op poort 80, terwijl de andere luistert op poort 5000.
  • Bevat twee Azure-bestandssharingen als volumemounts, en elke container mount lokaal een van de sharingen.

Opmerking

Groepen met meerdere containers ondersteunen momenteel alleen Linux-containers. Voor Windows-containers ondersteunt Azure Container Instances alleen de implementatie van één containerinstantie. Terwijl we eraan werken om alle functies naar Windows-containers te brengen, kun je de huidige platformverschillen vinden in de service Overzicht.

Implementatie

Hier volgen twee veelvoorkomende manieren om een groep met meerdere containers te implementeren: gebruik een Resource Manager-sjabloon of een YAML-bestand. Een Resource Manager-sjabloon wordt aanbevolen wanneer u andere Azure-servicebronnen moet implementeren (bijvoorbeeld een Azure Files-share) wanneer u de containerinstanties implementeert. Vanwege de beknoptere aard van het YAML-formaat, wordt een YAML-bestand aanbevolen wanneer uw implementatie alleen containerinstellingen bevat. Voor details over eigenschappen die u kunt instellen, raadpleegt u de Resource Manager-sjabloonreferentie of de YAML-referentie documentatie.

Om de configuratie van een containergroep te behouden, kun je de configuratie exporteren naar een YAML-bestand door het Azure CLI-commando az container export te gebruiken. Met Export kunt u de configuraties van uw containergroep opslaan in versiebeheer voor 'configuratie als code'. Of gebruik het geëxporteerde bestand als uitgangspunt bij het ontwikkelen van een nieuwe configuratie in YAML.

Toewijzing van middelen

Azure Container Instances wijst middelen toe zoals CPU's, geheugen en optioneel GPU's (preview) aan een multiconteiner-groep door de resource-aanvragen van de instanties in de groep toe te voegen. Als we CPU-resources als voorbeeld nemen, als u een containergroep maakt met twee containerinstellingen die elk één CPU aanvragen, dan krijgt de containergroep 2 CPU's toegewezen.

Resourcegebruik per containerinstanties

Elke containerinstantie in een groep krijgt de resources toegewezen die gespecificeerd zijn in zijn resourceverzoek. De maximumresources die door een containerinstantie in een groep worden gebruikt, kunnen echter verschillen als u de optionele eigenschap resourcelimiet configureert. De resourcelimiet van een containerinstantie moet groter zijn dan of gelijk zijn aan de verplichte resourceaanvraag-eigenschap.

  • Als je geen limiet voor middelen specificeert, is het maximale middelengebruik van het containerexemplaar hetzelfde als de middelenaanvraag.

  • Als u een limiet opgeeft voor een containerinstantie, kan het maximale gebruik van de instantie groter zijn dan de aanvraag, tot de ingestelde limiet. Dienovereenkomstig kan het middelengebruik door andere containerinstanties in de groep afnemen. De maximale hoeveelheid resources die je kunt instellen voor een containerinstantie is de totale hoeveelheid resources die aan de groep is toegewezen.

Bijvoorbeeld, in een groep met twee containerinstellingen die elk één CPU aanvragen, kan het voorkomen dat één van je containers een werklast heeft die meer CPU's nodig heeft dan de andere.

In dit scenario kunt u een limiet voor hulpbronnen instellen van maximaal 2 CPU’s voor de containerinstantie. Deze configuratie staat de containerinstantie toe om maximaal 2 CPU's te gebruiken, indien beschikbaar.

Opmerking

Een kleine hoeveelheid van de middelen van een containergroep wordt gebruikt door de onderliggende infrastructuur van de dienst. Uw containers zullen toegang hebben tot de meeste, maar niet alle, middelen die aan de groep zijn toegewezen. Om deze reden moet je een kleine hulpbronnenbuffer plannen bij het aanvragen van hulpbronnen voor containers in de groep.

Minimum- en maximumtoewijzing

  • Wijs een minimum van 1 CPU en 1 GB geheugen toe aan een containergroep. Afzonderlijke containerinstanties binnen een groep kunnen worden ingericht met minder dan één CPU en 1 GB geheugen.

  • Voor de maximale bronnen in een containergroep, zie de beschikbaarheid van bronnen voor Azure Container Instances in de uitrolregio.

Netwerken

Containergroepen kunnen een extern IP-adres, een of meer poorten op dat IP-adres en een DNS-label met een volledig gekwalificeerde domeinnaam (FQDN) delen. Als u wilt dat externe clients een container binnen de groep bereiken, moet u de poort beschikbaar maken op het IP-adres en vanuit de container. Het IP-adres en de FQDN van een containergroep worden vrijgegeven wanneer de containergroep wordt verwijderd.

Binnen een containergroep kunnen containerinstanties elkaar bereiken via localhost op elke poort, zelfs als deze poorten niet extern worden weergegeven op het IP-adres van de groep of vanuit de container.

U kunt eventueel containergroepen implementeren in een virtueel Azure-netwerk , zodat containers veilig kunnen communiceren met andere resources in het virtuele netwerk.

Opslag

U kunt externe volumes opgeven die moeten worden gekoppeld binnen een containergroep. Ondersteunde volumes zijn onder andere:

U kunt deze volumes toewijzen aan specifieke paden binnen de afzonderlijke containers in een groep.

Algemene scenario's

Multi-container groepen zijn nuttig in gevallen waarin je een enkele functionele taak wilt verdelen over enkele containerafbeeldingen. Deze afbeeldingen kunnen afzonderlijke bronnenvereisten hebben, en verschillende teams kunnen ze leveren.

Voorbeeldgebruik kan omvatten:

  • Een container die een webapplicatie bedient en een container die de nieuwste inhoud uit versiebeheer haalt.
  • Een applicatiecontainer en een logcontainer. De logboekcontainer verzamelt de logbestanden en metrische gegevens die door de hoofdtoepassing worden gegenereerd en schrijft ze naar de langdurige opslag.
  • Een applicatiecontainer en een monitoringscontainer. De bewakingscontainer maakt periodiek een verzoek aan de toepassing om te controleren of deze actief is en correct reageert, en geeft een waarschuwing af als dat niet het geval is.
  • Een front-end-container en een back-end-container. De voorkant kan een webapplicatie bedienen, terwijl de achterkant een service uitvoert om gegevens op te halen.

Volgende stappen

Meer informatie over het implementeren van een containergroep met meerdere containers met een Azure Resource Manager-sjabloon: