Azure Fundamentals · leksjon

Azure Container Instances

Start en containerbasert applikasjon på sekunder med ACI uten å administrere servere, konfigurer miljøvariabler og volummonteringer, og forstå hvordan ACI faktureres.

Leksjon 2 av 413 trinn

Azure Container Instances er en gratis leksjon i Azure Fundamentals på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Azure Fundamentals, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Azure Fundamentals inneholder totalt 4 leksjoner.

Hva er Azure Container Instances?

Azure Container Instances (ACI) er den raskeste måten å kjøre en containerisert arbeidsbelastning i Azure på uten å administrere servere eller orkestratorer. De oppgir en containeravbildning, og Azure kjører den på sekunder i en delt infrastruktur med flere leietakere. ACI egner seg godt for kortvarige oppgaver, batchjobber, byggagenter og hendelsesdrevne arbeidsbelastninger der det ville vært unødvendig ressurskrevende å starte en full Kubernetes-klynge.

Opprette en containerinstans

Start en ACI-container med én enkelt az container create-kommando. Angi avbildningen, ressursgruppen, CPU og minne. ACI henter avbildningen, tildeler ressurser og starter containeren — vanligvis innen 5–10 sekunder. Hver containerinstans får et unikt fullstendig kvalifisert domenenavn (FQDN) hvis De tilordner en DNS-navneetikett, slik at den blir umiddelbart tilgjengelig fra internett.

# 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

Miljøvariabler og sikre verdier

Send konfigurasjon til ACI-containere ved hjelp av miljøvariabler som angis ved opprettelsen. For sensitive verdier som API-nøkler eller passord bør De bruke sikre miljøvariabler — disse vises ikke i Azure-portalen eller CLI-utdataene etter distribusjon, noe som hindrer utilsiktet eksponering i logger eller revisjonsspor. Sikre verdier er fortsatt tilgjengelige inne i containeren under kjøring som vanlige miljøvariabler.

# 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

ACI-fakturering og ressurstildeling

ACI faktureres per sekund basert på CPU-kjernene og antallet GB minne De tildeler, uten noen minimumsperiode for fakturering. De betaler bare mens containeren kjører — i det øyeblikket den stopper, stopper også faktureringen. Dette gjør ACI svært kostnadseffektivt for kortvarige arbeidsbelastninger. De kan tildele mellom 0,1 og 4 CPU-kjerner og mellom 0,1 og 16 GB minne per containergroup, i kombinasjoner som støttes.

# 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

Omstartspolicyer

ACI støtter tre omstartspolicyer som styrer containerens virkemåte etter at den avsluttes. Always (standard) starter containeren på nytt hver gang den avsluttes — egnet for langvarige tjenester. Never kjører containeren én gang og lar den forbli i avsluttet tilstand — ideelt for batchjobber. OnFailure starter bare containeren på nytt når den avsluttes med en avslutningskode som ikke er null — nyttig for mønstre med nytt forsøk ved feil.

# 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}'

Containergroups: distribusjon med flere containere

En containergroup er en samling containere som deler livssyklus, nettverk og lagring — omtrent som en Kubernetes-pod. Containere i samme gruppe deler en lokal IP-adresse og et portnavneområde, slik at de kan kommunisere via localhost. Et vanlig mønster er en hovedcontainer for applikasjonen og en sidecar-container (f.eks. en loggingsagent eller proxy) i samme gruppe, definert med en YAML- eller ARM-mal.

# 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

Volummonteringer: integrasjon med Azure Files

ACI-containere er tilstandsløse som standard — data som skrives til containerens filsystem, går tapt når containeren starter på nytt. Monter en Azure Files-filressurs som et volum for å bevare data ved omstarter av containere eller dele data mellom containere i samme gruppe. Angi lagringskontonavnet, nøkkelen og navnet på filressursen når De oppretter containerinstansen.

# 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-containerinstanser

ACI støtter GPU-containerinstanser (K80, V100) for arbeidsbelastninger innen ML-inferens, videobehandling og vitenskapelige beregninger. GPU-instanser er tilgjengelige i utvalgte regioner og krever Linux-containere. De faktureres per GPU/sekund, noe som gjør dem kostnadseffektive for inferensscenarier med kortvarige belastningstopper, der De starter en GPU-container, kjører modellen og umiddelbart avslutter den — langt billigere enn en dedikert GPU-VM som kjører døgnet rundt.

# 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 med virtuelt nettverk

Distribuer ACI-containergroups i et dedikert subnett i et VNet for å gi dem private IP-adresser og la dem få tilgang til andre VNet-tilkoblede ressurser (databaser, VM-er) uten å eksponere dem mot internett. VNet-integrert ACI krever et dedikert, delegert subnett (delegert til Microsoft.ContainerInstance/containerGroups) og støtter ikke tilordning av offentlige IP-adresser.

# 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 som en virtuell Kubelet-node

ACI integreres med AKS som en virtuell node via åpen kildekode-prosjektet Virtual Kubelet. Når en AKS-klynge opplever en belastningstopp som overstiger kapasiteten til VM-nodene, kan Kubernetes planlegge pods på en virtuell ACI-node — og starte faktiske ACI-containerinstanser. Dette gir ubegrenset skalering ved belastningstopper uten at ekstra VM-noder må klargjøres på forhånd, og De betaler bare for ACI-beregning i perioden med belastningstopp.

# 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

Når bør De bruke ACI, AKS eller App Service?

Velg ACI for kortvarige oppgaver, batchjobber, CI-byggagenter og enkeltstående containere der Kubernetes-overhead er unødvendig. Velg AKS for langvarige mikrotjenester med flere containere som krever tjenesteoppdagelse, helsesjekker, rullerende oppdateringer og klyngenettverk. Velg App Service når De ønsker PaaS-fordeler (distribusjonsspor, administrerte sertifikater og innebygd autentisering) uten å administrere containernettverket selv.

Hurtigsjekk

Test forståelsen Deres av Microsoft Azure Fundamentals-konsepter (AZ-900) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen har De lært at Azure Container Instances kjører containere på sekunder uten serveradministrasjon og faktureres per CPU- og minnesekund, at containergroups gjør det mulig for flere containere å dele nettverk og lagring som en Kubernetes-pod, og at omstartspolicyer (Always, Never, OnFailure) styrer containerens livssyklus etter avslutning. Neste tema er Kubernetes-konsepter for Azure.

Gratis å komme i gang

Lær deg Azure Fundamentals med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Azure Container Instances» gratis?

Ja – hele teksten i «Azure Container Instances» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Azure Fundamentals-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Azure Fundamentals inneholder totalt 4 leksjoner.

Hva lærer jeg i «Azure Container Instances»?

Start en containerbasert applikasjon på sekunder med ACI uten å administrere servere, konfigurer miljøvariabler og volummonteringer, og forstå hvordan ACI faktureres. Du øver på Azure Fundamentals med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Azure Fundamentals?

Ingen tidligere erfaring er nødvendig. Azure Fundamentals på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Azure Container Instances»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Azure Fundamentals-leksjonen?

Ja. Alle Azure Fundamentals-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-konsepter for Azure
  4. Distribuere arbeidsbelastninger på AKS
← Tilbake til Azure Fundamentals