Mount an emptyDir volume in Azure Container Instances (Подключение тома emptyDir в службе "Экземпляры контейнеров Azure")
Узнайте, как подключить том emptyDir для обмена данными между контейнерами в группе контейнеров службы "Экземпляры контейнеров Azure". Используйте тома emptyDir как временные кэши для контейнерных рабочих нагрузок.
Примечание.
Сейчас подключение тома emptyDir поддерживается только для контейнеров Linux. Мы работаем над тем, чтобы обеспечить все функции для контейнеров Windows, но для текущей платформы имеются отличия, подробнее о которых можно узнать в обзоре службы.
Том emptyDir
Том emptyDir предоставляет доступный для записи каталог каждому контейнеру в группе контейнеров. Контейнеры в группе могут считывать и записывать одни и те же файлы в томе. Также их можно подключать с использованием одинаковых или разных путей в каждом контейнере.
Некоторые примеры использования тома emptyDir:
- область временных файлов;
- контрольные точки во время длительных задач;
- хранение данных, полученных сопроводительным контейнером и обслуживаемых контейнером приложения.
В случае сбоев контейнеров данные в томе emptyDir сохраняются. Но при перезапуске контейнеров сохранность данных в томе emptyDir не гарантируется. Если группа контейнеров останавливается, том emptyDir не сохраняется.
Максимальный размер тома emptyDir для Linux составляет 50 ГБ.
Подключение тома emptyDir
Чтобы подключить том emptyDir в экземпляре контейнера, можно выполнить развертывание с помощью шаблона Azure Resource Manager, файла YAMLили других программных методов для развертывания группы контейнеров.
Сначала заполните массив volumes
в разделе properties
группы контейнеров в файле. Затем для каждого контейнера в группе контейнеров, в которой нужно подключить том emptyDir, заполните массив volumeMounts
в разделе properties
определения контейнера.
Например, при помощи следующего шаблона Resource Manager создается группа из двух контейнеров, в каждом из которых подключается том emptyDir:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"container2name": "aci-tutorial-sidecar",
"container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2021-03-01",
"name": "volume-demo-emptydir",
"location": "[resourceGroup().location]",
"properties": {
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
}
],
"volumeMounts": [
{
"name": "emptydir1",
"mountPath": "/mnt/empty"
}
]
}
},
{
"name": "[variables('container2name')]",
"properties": {
"image": "[variables('container2image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"volumeMounts": [
{
"name": "emptydir1",
"mountPath": "/mnt/empty"
}
]
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": "80"
}
]
},
"volumes": [
{
"name": "emptydir1",
"emptyDir": {}
}
]
}
}
]
}
Примеры развертывания группы контейнеров см. в статье Развертывание многоконтейнерной группы с помощью шаблона Resource Manager и Развертывание многоконтейнерной группы с помощью файла YAML.
Следующие шаги
Сведения о подключении других типов томов в службе "Экземпляры контейнеров Azure" см. в следующих статьях:
- Mount an Azure file share in Azure Container Instances (Подключение файлового ресурса Azure с помощью службы "Экземпляры контейнеров Azure")
- Подключение тома gitRepo в службе "Экземпляры контейнеров Azure"
- Подключение тома secret в службе "Экземпляры контейнеров Azure"