Opret et Azure-filshare i Azure Container Instances

Fuldført

Azure Container Instances er som standard tilstandsløs. Hvis objektbeholderen går ned eller stopper, går hele dens tilstand tabt. Hvis du vil bevare tilstanden ud over objektbeholderens levetid, skal du montere en diskenhed fra et eksternt lager. Som vist i dette undermodul kan Azure Container Instances montere et Azure-filshare, der er oprettet med Azure Files. Azure Files tilbyder fuldt administrerede filshares i cloudmiljøet, der er tilgængelige via SMB-protokollen (Industry Standard Server Message Block). Brug af et Azure-filshare med Azure Container Instances indeholder fildelingsfunktioner, der svarer til at bruge et Azure-filshare med virtuelle Azure-maskiner.

Begrænsninger

  • Du kan kun montere Azure Files-shares til Linux-objektbeholdere.
  • Enhedsmontering af Azure-filshare kræver, at Linux-objektbeholderen kører som rod.
  • Azure File Share Volume Mounts er begrænset til CIFS-understøttelse.

Udrul objektbeholder og tilslutningsenhed

Hvis du vil indsætte et Azure-filshare som en diskenhed i en objektbeholder ved hjælp af Kommandolinjegrænsefladen i Azure, skal du angive tilslutningspunktet for deling og diskenhed, når du opretter objektbeholderen med az container create. Følgende er et eksempel på kommandoen:

az container create \
    --resource-group $ACI_PERS_RESOURCE_GROUP \
    --name hellofiles \
    --image mcr.microsoft.com/azuredocs/aci-hellofiles \
    --dns-name-label aci-demo \
    --ports 80 \
    --azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
    --azure-file-volume-account-key $STORAGE_KEY \
    --azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
    --azure-file-volume-mount-path /aci/logs/

Den --dns-name-label værdi skal være entydig i det Azure-område, hvor du opretter objektbeholderforekomsten. Opdater værdien i den foregående kommando, hvis du modtager en DNS-navnemærkat fejlmeddelelse, når du udfører kommandoen.

Udrul objektbeholder og tilslutningsmængde – YAML

Du kan også udrulle en objektbeholdergruppe og montere en diskenhed i en objektbeholder med Azure CLI og en YAML-skabelon. Udrulning via YAML-skabelon er den foretrukne metode, når du udruller objektbeholdergrupper, der består af flere objektbeholdere.

Følgende YAML-skabelon definerer en objektbeholdergruppe med én objektbeholder, der er oprettet med det aci-hellofiles billede. Objektbeholderen monterer Azure-filsharet acishare-, der tidligere blev oprettet som en diskenhed. Følgende er et eksempel på en YAML-fil.

apiVersion: '2019-12-01'
location: eastus
name: file-share-demo
properties:
  containers:
  - name: hellofiles
    properties:
      environmentVariables: []
      image: mcr.microsoft.com/azuredocs/aci-hellofiles
      ports:
      - port: 80
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
      volumeMounts:
      - mountPath: /aci/logs/
        name: filesharevolume
  osType: Linux
  restartPolicy: Always
  ipAddress:
    type: Public
    ports:
      - port: 80
    dnsNameLabel: aci-demo
  volumes:
  - name: filesharevolume
    azureFile:
      sharename: acishare
      storageAccountName: <Storage account name>
      storageAccountKey: <Storage account key>
tags: {}
type: Microsoft.ContainerInstance/containerGroups

Tilslut flere diskenheder

Hvis du vil installere flere diskenheder i en objektbeholderforekomst, skal du installere ved hjælp af en Azure Resource Manager-skabelon eller en YAML-fil. Hvis du vil bruge en skabelon eller YAML-fil, skal du angive oplysninger om delingen og definere diskenhederne ved at udfylde matrixen volumes i afsnittet properties i skabelonen.

Hvis du f.eks. har oprettet to Azure Files-shares med navnet share1 og share2- på lagerkontoen myStorageAccount, vil den volumes matrix i en Resource Manager-skabelon se ud som følger:

"volumes": [{
  "name": "myvolume1",
  "azureFile": {
    "shareName": "share1",
    "storageAccountName": "myStorageAccount",
    "storageAccountKey": "<storage-account-key>"
  }
},
{
  "name": "myvolume2",
  "azureFile": {
    "shareName": "share2",
    "storageAccountName": "myStorageAccount",
    "storageAccountKey": "<storage-account-key>"
  }
}]

Derefter skal du for hver objektbeholder i den objektbeholdergruppe, hvor du vil montere diskenhederne, udfylde matrixen volumeMounts i afsnittet properties i objektbeholderdefinitionen. Dette monterer f.eks. de to diskenheder myvolume1 og myvolume2, der tidligere er defineret:

"volumeMounts": [{
  "name": "myvolume1",
  "mountPath": "/mnt/share1/"
},
{
  "name": "myvolume2",
  "mountPath": "/mnt/share2/"
}]