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 de typen scenario's die ze mogelijk maken.
Wat is een containergroep?
Een containergroep is een verzameling containers die op dezelfde hostcomputer worden gepland. De containers in een containergroep delen een levenscyclus, resources, lokaal netwerk en opslagvolumes. Het is qua concept vergelijkbaar met een pod in Kubernetes.
In het volgende diagram ziet u een voorbeeld van een containergroep die meerdere containers bevat:
Deze voorbeeldcontainergroep:
- Is gepland op één hostcomputer.
- Er is een DNS-naamlabel toegewezen.
- Hiermee wordt één openbaar IP-adres met één zichtbare poort weergegeven.
- Bestaat uit twee containers. De ene container luistert op poort 80, terwijl de andere op poort 5000 luistert.
- 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. Terwijl we werken aan het overbrengen van alle functies naar Windows-containers, kunt u de huidige platformverschillen vinden in het serviceoverzicht.
Implementatie
Hier volgen twee veelgebruikte 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 naslaginformatie over Resource Manager sjabloon of YAML-referentiedocumentatie 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 Exporteren kunt u uw containergroepconfiguraties 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 cpu-resources als voorbeeld neemt: als u een containergroep maakt met twee containerinstanties, die elk 1 CPU aanvragen, krijgt de containergroep 2 CPU's toegewezen.
Resourcegebruik door containerinstanties
Aan elke containerinstantie in een groep worden de resources toegewezen die zijn opgegeven in de resourceaanvraag. Het maximum aantal resources dat door een containerinstantie in een groep wordt gebruikt, kan echter afwijken als u de optionele resourcelimieteigenschap configureert. De resourcelimiet van een containerinstantie moet groter zijn dan of gelijk zijn aan de verplichte resourceaanvraageigenschap .
Als u geen resourcelimiet opgeeft, is het maximale resourcegebruik van het containerexemplaren 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. Het resourcegebruik door andere containerinstanties in de groep kan 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 nodig zijn dan de andere.
In dit scenario kunt u een resourcelimiet van maximaal 2 CPU's instellen voor het containerexemplaren. Met deze configuratie kan het containerexemplaren 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.
Minimum- en maximumtoewijzing
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 het maximum aantal resources in een containergroep.
Netwerken
Containergroepen kunnen een extern IP-adres, een of meer poorten op dat IP-adres en een DNS-label met een FQDN (Fully Qualified Domain Name) delen. Als u wilt dat externe clients een container binnen de groep kunnen 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 beschikbaar zijn op het IP-adres van de groep of vanuit de container.
Implementeer desgewenst containergroepen in een virtueel Azure-netwerk , zodat containers veilig kunnen communiceren met andere resources in het virtuele netwerk.
Storage
U kunt externe volumes opgeven die binnen een containergroep moeten worden gekoppeld. 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 over een klein aantal containerinstallatiekopieën. Deze installatiekopieën kunnen vervolgens worden geleverd door verschillende teams en hebben afzonderlijke resourcevereisten.
Voorbeelden van gebruik zijn:
- Een container die dienst doet aan een webtoepassing en een container die de meest recente inhoud uit broncodebeheer haalt.
- Een toepassingscontainer en een container voor logboekregistratie. De logboekregistratiecontainer verzamelt de uitvoer van logboeken en metrische gegevens door de hoofdtoepassing en schrijft deze naar langetermijnopslag.
- Een toepassingscontainer en een bewakingscontainer. De bewakingscontainer doet regelmatig een aanvraag naar de toepassing om ervoor te zorgen dat deze wordt uitgevoerd en correct reageert. Als dat niet het juiste is, wordt er een waarschuwing gegenereerd.
- 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: