Připojení sdílené složky ve službě Azure Container Instances
Ve výchozím nastavení je služba Azure Container Instances bezstavová. Pokud u kontejneru dojde k chybě nebo se kontejner zastaví, veškerý jeho stav se ztratí. Pokud chcete zachovat stav i po skončení doby života kontejneru, je nutné připojit svazek z externího úložiště. Jak je znázorněno v této lekci, služba Azure Container Instances může připojit sdílenou složku Azure vytvořenou pomocí služby Azure Files. Azure Files nabízí plně spravované sdílené složky v cloudu, které jsou přístupné přes standardní protokol Server Message Block (SMB). Použití sdílené složky Azure se službou Azure Container Instances poskytuje funkce pro sdílení souborů podobné použití sdílené složky Azure s virtuálními počítači Azure.
Omezení
- Sdílené složky Azure Files můžete připojit pouze ke kontejnerům Linuxu.
- Připojení svazku sdílené složky Azure vyžaduje, aby kontejner Linux běžel jako root.
- Připojení svazků sdílené složky Azure jsou omezená na podporu CIFS.
Nasazení kontejneru a připojení svazku
Pokud chcete připojit sdílenou složku Azure jako svazek v kontejneru pomocí Azure CLI, při vytváření kontejneru az container createpomocí rozhraní příkazového řádku Azure zadejte přípojný bod sdílené složky a svazku. Následuje příklad příkazu:
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/
Hodnota --dns-name-label musí být jedinečná v rámci oblasti Azure, ve které vytváříte instanci kontejneru. Pokud se při spuštění příkazu zobrazí chybová zpráva popisku názvu DNS, aktualizujte hodnotu v předchozím příkazu.
Nasazení kontejneru a připojení svazku – YAML
Můžete také nasadit skupinu kontejnerů a připojit svazek do kontejneru pomocí Azure CLI a šablony YAML. Nasazení pomocí šablony YAML je upřednostňovanou metodou při nasazování skupin kontejnerů sestávajících z více kontejnerů.
Následující šablona YAML definuje skupinu kontejnerů s jedním kontejnerem vytvořeným s imagí aci-hellofiles . Kontejner připojí sdílenou složku Azure vytvořenou dříve jako svazek. Následuje příklad souboru YAML.
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
Připojení více svazků
Pokud chcete připojit více svazků v instanci kontejneru, musíte nasadit pomocí šablony Azure Resource Manageru nebo souboru YAML. Pokud chcete použít šablonu nebo soubor YAML, zadejte podrobnosti o sdílené složce a definujte svazky vyplněním volumes pole v properties části šablony.
Pokud jste například vytvořili dvě sdílené složky Azure Files s názvem share1podobně jako následující:
"volumes": [{
"name": "myvolume1",
"azureFile": {
"shareName": "share1",
"storageAccountName": "myStorageAccount",
"storageAccountKey": "<storage-account-key>"
}
},
{
"name": "myvolume2",
"azureFile": {
"shareName": "share2",
"storageAccountName": "myStorageAccount",
"storageAccountKey": "<storage-account-key>"
}
}]
Dále pro každý kontejner ve skupině kontejnerů, ve které chcete připojit svazky, naplňte volumeMounts pole v properties části definice kontejneru. Tím se například připojí dva svazky myvolume1 a myvolume2, dříve definované:
"volumeMounts": [{
"name": "myvolume1",
"mountPath": "/mnt/share1/"
},
{
"name": "myvolume2",
"mountPath": "/mnt/share2/"
}]