Подключение тома 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" см. в следующих статьях: