Containergroepen in Azure Container Instances

De resource op het hoogste niveau in Azure Container Instances is de containergroep. In dit artikel wordt beschreven wat containergroepen zijn en welke typen scenario's ze inschakelen.

Wat is een containergroep?

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

In het volgende diagram ziet u een voorbeeld van een containergroep met meerdere containers:

Container groups diagram

Deze voorbeeldcontainergroep:

  • Is gepland op één hostcomputer.
  • Er wordt een DNS-naamlabel toegewezen.
  • Hiermee wordt één openbaar IP-adres weergegeven, met één blootgestelde poort.
  • Bestaat uit twee containers. Eén container luistert op poort 80, terwijl de andere luistert op poort 5000.
  • Bevat twee Azure-bestandsshares als volumekoppelingen en elke container koppelt een van de shares lokaal.

Notitie

Groepen met meerdere containers ondersteunen momenteel alleen Linux-containers. Voor Windows-containers ondersteunt Azure Container Instances alleen de implementatie van één containerinstantie. Hoewel we alle functies naar Windows-containers willen brengen, kunt u de huidige platformverschillen vinden in het serviceoverzicht.

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 extra Azure-serviceresources (bijvoorbeeld een Azure Files-share) moet implementeren wanneer u de containerinstanties implementeert. Vanwege de beknoptere aard van de YAML-indeling wordt een YAML-bestand aanbevolen wanneer uw implementatie alleen containerinstanties bevat. Zie de naslagdocumentatie voor Resource Manager-sjablonen of YAML-referentiemateriaal voor meer informatie over eigenschappen die u kunt instellen.

Als u de configuratie van een containergroep wilt behouden, kunt u de configuratie exporteren naar een YAML-bestand met behulp van de Azure CLI-opdracht az container export. 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.

Resourcetoewijzing

Azure Container Instances wijst resources zoals CPU's, geheugen en optioneel GPU's (preview) toe aan een groep met meerdere containers door de resourceaanvragen van de exemplaren in de groep toe te voegen. Als u bijvoorbeeld CPU-resources maakt met twee containerinstanties, elke die 1 CPU aanvraagt, wordt aan de containergroep 2 CPU's toegewezen.

Resourcegebruik per containerinstanties

Aan elke containerinstantie in een groep worden de resources toegewezen die zijn opgegeven in de resourceaanvraag. 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 eigenschap van de resourceaanvraag .

  • Als u geen resourcelimiet opgeeft, is het maximale resourcegebruik van de containerinstantie hetzelfde als de resourceaanvraag.

  • Als u een limiet opgeeft voor een containerinstantie, kan het maximale gebruik van het exemplaar groter zijn dan de aanvraag, tot de limiet die u hebt ingesteld. Op dezelfde manier kan het resourcegebruik door andere containerinstanties in de groep afnemen. De maximale resourcelimiet die u voor een containerinstantie kunt instellen, is het totale aantal resources dat aan de groep is toegewezen.

In een groep met twee containerinstanties die elk 1 CPU aanvragen, kan een van uw containers bijvoorbeeld een workload uitvoeren waarvoor meer CPU's moeten worden uitgevoerd dan de andere.

In dit scenario kunt u een resourcelimiet instellen van maximaal 2 CPU's voor de containerinstantie. Met deze configuratie kan de containerinstantie maximaal 2 CPU's gebruiken, indien beschikbaar.

Notitie

Een kleine hoeveelheid resources van een containergroep wordt gebruikt door de onderliggende infrastructuur van de service. Uw containers hebben toegang tot de meeste, maar niet alle resources die aan de groep zijn toegewezen. Plan daarom een kleine resourcebuffer bij het aanvragen van resources voor containers in de groep.

Minimale en maximale toewijzing

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

  • Zie de beschikbaarheid van resources voor Azure Container Instances in de implementatieregio voor de maximale resources in een containergroep.

Netwerken

Containergroepen kunnen een extern GERICHT IP-adres, een of meer poorten op dat IP-adres en een DNS-label delen met een FQDN (Fully Qualified Domain Name). 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.

Storage

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

Groepen met meerdere containers zijn handig in gevallen waarin u één functionele taak wilt verdelen in een klein aantal containerinstallatiekopieën. Deze installatiekopieën kunnen vervolgens worden geleverd door verschillende teams en hebben afzonderlijke resourcevereisten.

Voorbeeldgebruik kan het volgende omvatten:

  • Een container met een webtoepassing en een container die de meest recente inhoud ophaalt uit broncodebeheer.
  • Een toepassingscontainer en een logboekregistratiecontainer. De logboekregistratiecontainer verzamelt de logboeken en metrische gegevensuitvoer door de hoofdtoepassing en schrijft deze naar langetermijnopslag.
  • Een toepassingscontainer en een bewakingscontainer. De bewakingscontainer doet periodiek een aanvraag naar de toepassing om ervoor te zorgen dat deze wordt uitgevoerd en correct reageert, en genereert een waarschuwing als dit niet het juiste is.
  • Een front-endcontainer en een back-endcontainer. De front-end kan een webtoepassing dienen, waarbij de back-end 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: