Azure Fundamentals · Les

Azure Container Instances

Start binnen enkele seconden een gecontaineriseerde applicatie met ACI zonder servers te beheren, configureer omgevingsvariabelen en volumekoppelingen en begrijp de facturering van ACI.

Les 2 van 413 stappen

Azure Container Instances is een gratis Azure Fundamentals-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Azure Fundamentals. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Azure Fundamentals bevat in totaal 4 lessen.

Wat is Azure Container Instances?

Azure Container Instances (ACI) is de snelste manier om een gecontaineriseerde workload in Azure uit te voeren zonder servers of orchestrators te beheren. U levert een containerimage aan en Azure voert deze binnen enkele seconden uit op gedeelde infrastructuur met meerdere tenants. ACI is ideaal voor kortdurende taken, batchtaken, buildagents en gebeurtenisgestuurde workloads waarbij het opzetten van een volledig Kubernetes-cluster onnodige overhead zou zijn.

Een containerinstantie maken

Start een ACI-container met één opdracht: az container create. Geef de image, resourcegroep, CPU en hoeveelheid geheugen op. ACI haalt de image op, wijst resources toe en start de container, meestal binnen 5 tot 10 seconden. Elke containerinstantie krijgt een unieke volledig gekwalificeerde domeinnaam (FQDN) als u een DNS-naamlabelf toevoegt, waardoor deze direct vanaf internet toegankelijk is.

# Run an Nginx container accessible from the internet
az container create \
  --name my-nginx \
  --resource-group MyRG \
  --image nginx:latest \
  --cpu 1 \
  --memory 1 \
  --dns-name-label my-nginx-demo \
  --ports 80

# Access at: http://my-nginx-demo.<region>.azurecontainer.io

Omgevingsvariabelen en beveiligde waarden

Geef configuratie door aan ACI-containers met omgevingsvariabelen die u tijdens het maken opgeeft. Gebruik voor gevoelige waarden, zoals API-sleutels of wachtwoorden, beveiligde omgevingsvariabelen. Deze worden na de implementatie niet weergegeven in de Azure-portal of in de uitvoer van de CLI, zodat onbedoelde blootstelling in logboeken of auditsporen wordt voorkomen. Beveiligde waarden blijven tijdens runtime in de container als normale omgevingsvariabelen toegankelijk.

# Pass regular and secure environment variables
az container create \
  --name my-app \
  --resource-group MyRG \
  --image mycontainerregistry.azurecr.io/myapp:v1.0 \
  --environment-variables APP_ENV=production \
  --secure-environment-variables \
    DATABASE_PASSWORD='super-secret-password' \
    API_KEY='my-api-key'

# View logs from the running container
az container logs --name my-app --resource-group MyRG

Facturering en resource-toewijzing voor ACI

ACI brengt kosten per seconde in rekening op basis van de CPU-kernen en de hoeveelheid geheugen in GB die u toewijst, zonder minimale factureringsperiode. U betaalt alleen zolang de container actief is: zodra deze stopt, stopt ook de facturering. Daardoor is ACI bijzonder kosteneffectief voor kortdurende workloads. U kunt per containergroep 0,1 tot 4 CPU-kernen en 0,1 tot 16 GB geheugen toewijzen, in ondersteunde combinaties.

# Small: 0.5 CPU, 0.5 GB memory
az container create --name small-task --resource-group MyRG \
  --image my-batch-image:latest --cpu 0.5 --memory 0.5 \
  --restart-policy Never  # Don't restart after completion

# Large: 4 CPU, 16 GB memory for intensive tasks
az container create --name ml-inference --resource-group MyRG \
  --image ml-model:latest --cpu 4 --memory 16

Beleid voor opnieuw starten

ACI ondersteunt drie beleidsregels voor opnieuw starten die bepalen wat er met een container gebeurt nadat deze is beëindigd. Always (standaard) start de container telkens opnieuw wanneer deze wordt beëindigd, wat geschikt is voor langdurig actieve services. Never voert de container één keer uit en laat deze vervolgens in een beëindigde toestand staan, wat ideaal is voor batchtaken. OnFailure start de container alleen opnieuw wanneer deze wordt beëindigd met een afsluitcode die niet nul is, wat handig is voor patronen waarbij na een fout opnieuw wordt geprobeerd.

# Batch job: run once, never restart
az container create \
  --name data-processor \
  --resource-group MyRG \
  --image my-batch-image:latest \
  --restart-policy Never \
  --environment-variables BATCH_DATE=2025-01-01

# Check the container's final state
az container show \
  --name data-processor \
  --resource-group MyRG \
  --query '{state:instanceView.state, exitCode:instanceView.currentState.exitCode}'

Containergroepen: implementaties met meerdere containers

Een containergroep is een verzameling containers die dezelfde levensduur, hetzelfde netwerk en dezelfde opslag delen, vergelijkbaar met een Kubernetes-pod. Containers in dezelfde groep delen een lokaal IP-adres en een poortnaamruimte, zodat ze via localhost met elkaar kunnen communiceren. Een veelgebruikt patroon is een hoofdcontainer voor de toepassing met daarnaast een sidecar-container, bijvoorbeeld een logagent of proxy, in dezelfde groep. U definieert deze groep met een YAML- of ARM-sjabloon.

# multi-container.yaml
apiVersion: '2021-09-01'
location: eastus
name: my-container-group
properties:
  containers:
  - name: app
    properties:
      image: myapp:v1.0
      ports: [{port: 80}]
      resources: {requests: {cpu: 1, memoryInGb: 1}}
  - name: log-forwarder
    properties:
      image: fluent-bit:latest
      resources: {requests: {cpu: 0.5, memoryInGb: 0.5}}
  osType: Linux
  restartPolicy: Always
type: Microsoft.ContainerInstance/containerGroups

# Deploy from YAML
# az container create --resource-group MyRG --file multi-container.yaml

Volumekoppelingen: integratie met Azure Files

ACI-containers zijn standaard stateless: gegevens die naar het bestandssysteem van de container worden geschreven, gaan verloren wanneer de container opnieuw wordt gestart. Koppel een Azure Files-share als volume om gegevens te behouden na het opnieuw starten van containers of om gegevens te delen tussen containers in dezelfde groep. Geef bij het maken van de containerinstantie de naam van het opslagaccount, de sleutel en de naam van de fileshare op.

# Mount an Azure Files share for persistent storage
az container create \
  --name stateful-app \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --azure-file-volume-account-name mystorageaccount \
  --azure-file-volume-account-key '<storage-account-key>' \
  --azure-file-volume-share-name myfileshare \
  --azure-file-volume-mount-path /data

# Data written to /data persists in the Azure Files share

GPU-containerinstanties

ACI ondersteunt GPU-containerinstanties (K80, V100) voor workloads voor ML-inferentie, videobewerking en wetenschappelijke berekeningen. GPU-instanties zijn beschikbaar in geselecteerde regio's en vereisen Linux-containers. De kosten worden per GPU/seconde berekend, waardoor ze voordelig zijn voor scenario's met pieken in inferentie: u start een GPU-container, voert het model uit en verwijdert de container direct weer. Dat is veel goedkoper dan een speciale GPU-VM die 24 uur per dag en 7 dagen per week actief is.

# Create a GPU-enabled container instance
az container create \
  --name gpu-inference \
  --resource-group MyRG \
  --image my-ml-model:latest \
  --gpu-count 1 \
  --gpu-sku V100 \
  --cpu 4 \
  --memory 16 \
  --os-type Linux

ACI met Virtual Network

Implementeer ACI-containergroepen in een speciaal subnet binnen een VNet om ze private IP-adressen te geven en ervoor te zorgen dat ze andere met het VNet verbonden resources, zoals databases en VM's, kunnen bereiken zonder deze aan internet bloot te stellen. Voor ACI-integratie met een VNet is een speciaal gedelegeerd subnet vereist, dat is gedelegeerd aan Microsoft.ContainerInstance/containerGroups. Het toewijzen van een openbaar IP-adres wordt niet ondersteund.

# Create an ACI container in a VNet
az container create \
  --name private-task \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --vnet MyVNet \
  --subnet ContainerSubnet \
  --restart-policy Never

# The container gets a private IP from the subnet CIDR
# It can reach VNet resources (SQL, Redis, VMs) on private IPs

ACI als virtueel Kubelet-knooppunt

ACI integreert via het opensourceproject Virtual Kubelet met AKS als een virtueel knooppunt. Wanneer een AKS-cluster te maken krijgt met een piek in de vraag die de capaciteit van de VM-knooppunten overschrijdt, kan Kubernetes pods plannen op een virtueel ACI-knooppunt, waarbij echte ACI-containerinstanties worden gestart. Dit biedt onbeperkte schaalbaarheid voor pieken zonder vooraf extra VM-knooppunten in te richten. U betaalt alleen voor de ACI-compute tijdens de piekperiode.

# Enable virtual nodes on an AKS cluster
az aks enable-addons \
  --name myAKSCluster \
  --resource-group MyRG \
  --addons virtual-node \
  --subnet-name VirtualNodeSubnet

# Schedule a burst pod on ACI via node selector
# spec:
#   nodeSelector:
#     kubernetes.io/role: agent
#     beta.kubernetes.io/os: linux
#     type: virtual-kubelet
#   tolerations:
#   - key: virtual-kubelet.io/provider
#     operator: Exists

Wanneer gebruikt u ACI, AKS of App Service?

Kies ACI voor kortdurende taken, batchtaken, CI-buildagents en eenmalige containers waarvoor de overhead van Kubernetes niet nodig is. Kies AKS voor langdurig actieve microservices met meerdere containers die servicedetectie, statuscontroles, rolling updates en clusternetwerken vereisen. Kies App Service wanneer u PaaS-gemakken wilt, zoals implementatieslots, beheerde certificaten en ingebouwde authenticatie, zonder zelf containernetwerken te beheren.

Korte controle

Toets uw begrip van de concepten uit Microsoft Azure Fundamentals (AZ-900) die in deze les zijn behandeld.

Samenvatting van de les

In deze les hebt u geleerd dat Azure Container Instances containers binnen enkele seconden uitvoeren zonder serverbeheer en kosten per seconde voor CPU en geheugen in rekening brengen, dat containergroepen meerdere containers dezelfde netwerk- en opslagvoorzieningen laten delen, vergelijkbaar met een Kubernetes-pod, en dat beleid voor opnieuw starten (Always, Never, OnFailure) de levensduur van containers na beëindiging bepaalt. Hierna verkennen we Kubernetes-concepten voor Azure.

Gratis beginnen

Leer Azure Fundamentals met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Azure Container Instances” gratis?

Ja — de volledige tekst van “Azure Container Instances” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Azure Fundamentals wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Azure Fundamentals bevat in totaal 4 lessen.

Wat leer ik in “Azure Container Instances”?

Start binnen enkele seconden een gecontaineriseerde applicatie met ACI zonder servers te beheren, configureer omgevingsvariabelen en volumekoppelingen en begrijp de facturering van ACI. Je oefent met Azure Fundamentals door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Azure Fundamentals te beginnen?

Ervaring vooraf is niet nodig. Azure Fundamentals op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Azure Container Instances”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Azure Fundamentals?

Ja. Elke les over Azure Fundamentals bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-concepten voor Azure
  4. Workloads implementeren op AKS
← Terug naar Azure Fundamentals