Mount an Azure file share in Azure Container Instances

Befejeződött

Az Azure Container Instances alapértelmezés szerint állapot nélküli. Ha a tároló összeomlik vagy leáll, az összes állapota elvész. Ha azt szeretné, hogy az állapot a tároló élettartamán túl is megmaradjon, külső tárból kell csatlakoztatnia egy kötetet. Ahogy az ebben az egységben látható, az Azure Container Instances csatlakoztathat egy Azure Files-fájlmegosztást. Az Azure Files teljes körűen felügyelt felhőbeli fájlmegosztást nyújt, amely az iparági szabványos Server Message Block (SMB) protokollon keresztül érhető el. Ha Azure-fájlmegosztást használ az Azure Container Instances szolgáltatással, az Azure-beli virtuális gépekkel való Azure-fájlmegosztáshoz hasonló fájlmegosztási funkciókat biztosít.

Korlátozások

  • Azure Files-megosztásokat csak Linux-tárolókhoz csatlakoztathat.
  • Az Azure-fájlmegosztás kötetének csatlakoztatásához a Linux-tárolót gyökérként kell futtatni.
  • Az Azure-fájlmegosztás kötet-csatlakoztatásai a CIFS-támogatásra korlátozódnak.

Tároló üzembe helyezése és kötet csatlakoztatása

Ha egy Azure-fájlmegosztást kötetként szeretne csatlakoztatni egy tárolóhoz az Azure CLI használatával, adja meg a megosztási és kötet-csatlakoztatási pontot a tároló az container createlétrehozásakor. A következő példa a parancsra:

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/

Az --dns-name-label értéknek egyedinek kell lennie abban az Azure-régióban, ahol a tárolópéldányt létrehozza. Frissítse az előző parancs értékét, ha a parancs végrehajtásakor DNS-névcímke hibaüzenet jelenik meg.

Tároló üzembe helyezése és kötet csatlakoztatása – YAML

Tárolócsoportot is üzembe helyezhet, és egy kötetet csatlakoztathat egy tárolóba az Azure CLI-vel és egy YAML-sablonnal. A TÖBB tárolóból álló tárolócsoportok telepítésekor a YAML-sablon általi üzembe helyezés az előnyben részesített módszer.

Az alábbi YAML-sablon egy tárolócsoportot határoz meg, amely egy tárolót hoz létre a aci-hellofiles rendszerképpel. A tároló csatlakoztatja a korábban kötetként létrehozott Azure-fájlmegosztási acishare-t . Az alábbiakban egy példa YAML-fájlt mutatunk be.

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

Több kötet csatlakoztatása

Ha több kötetet szeretne csatlakoztatni egy tárolópéldányhoz, üzembe kell helyeznie egy Azure Resource Manager-sablont vagy egy YAML-fájlt. Sablon vagy YAML-fájl használatához adja meg a megosztás részleteit, és határozza meg a köteteket a volumes sablon szakaszában található properties tömb feltöltésével.

Ha például a myStorageAccount tárfiókban létrehozott két Share1 és Share2 nevű Azure Files-megosztást, a volumes Resource Manager-sablon tömbje a következőhöz hasonlóan jelenik meg:

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

Ezután töltse ki volumeMounts a tömböt a tárolódefiníció szakaszában properties azon tárolócsoport minden tárolójára, amelyben csatlakoztatni szeretné a köteteket. Ez például csatlakoztatja a korábban definiált két kötetet, a myvolume1-et és a myvolume2-t:

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