Opret et Azure-filshare i Azure Container Instances
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/"
}]