Поделиться через


Справочник по YAML: экземпляры контейнеров Azure

В этой статье описывается синтаксис и свойства файла YAML, поддерживаемого экземплярами контейнеров Azure при настройке группы контейнеров. Используйте файл YAML для ввода конфигурации группы в команду az container create в Azure CLI.

Файл YAML — это удобный способ настройки группы контейнеров для воспроизводимых развертываний. Это более сжатая альтернатива использованию шаблона Resource Manager или пакетов SDK для создания или обновления группы контейнеров.

Примечание

Данный справочник относится к файлам YAML для экземпляров контейнеров Azure REST API версии 2021-10-01.

схема

Ниже приведена схема для файла YAML, включающая комментарии, выделяющие ключевые свойства. Описание свойств этой схемы см. в разделе Значения свойств.

name: string  # Name of the container group
apiVersion: '2021-10-01'
location: string
tags: {}
identity: 
  type: string
  userAssignedIdentities: {}
properties: # Properties of container group
  containers: # Array of container instances in the group
  - name: string # Name of an instance
    properties: # Properties of an instance
      image: string # Container image used to create the instance
      command:
      - string
      ports: # External-facing ports exposed on the instance, must also be set in group ipAddress property 
      - protocol: string
        port: integer
      environmentVariables:
      - name: string
        value: string
        secureValue: string
      resources: # Resource requirements of the instance
        requests:
          memoryInGB: number
          cpu: number
          gpu:
            count: integer
            sku: string
        limits:
          memoryInGB: number
          cpu: number
          gpu:
            count: integer
            sku: string
      volumeMounts: # Array of volume mounts for the instance
      - name: string
        mountPath: string
        readOnly: boolean
      livenessProbe:
        exec:
          command:
          - string
        httpGet:
          httpHeaders:
          - name: string
            value: string
          path: string
          port: integer
          scheme: string
        initialDelaySeconds: integer
        periodSeconds: integer
        failureThreshold: integer
        successThreshold: integer
        timeoutSeconds: integer
      readinessProbe:
        exec:
          command:
          - string
        httpGet:
          httpHeaders:
          - name: string
            value: string
          path: string
          port: integer
          scheme: string
        initialDelaySeconds: integer
        periodSeconds: integer
        failureThreshold: integer
        successThreshold: integer
        timeoutSeconds: integer
  imageRegistryCredentials: # Credentials to pull a private image
  - server: string
    username: string
    password: string
    identity: string
    identityUrl: string
  restartPolicy: string
  ipAddress: # IP address configuration of container group
    ports:
    - protocol: string
      port: integer
    type: string
    ip: string
    dnsNameLabel: string
    dnsNameLabelReusePolicy: string
  osType: string
  volumes: # Array of volumes available to the instances
  - name: string
    azureFile:
      shareName: string
      readOnly: boolean
      storageAccountName: string
      storageAccountKey: string
    emptyDir: {}
    secret: {}
    gitRepo:
      directory: string
      repository: string
      revision: string
  diagnostics:
    logAnalytics:
      workspaceId: string
      workspaceKey: string
      workspaceResourceId: string
      logType: string
      metadata: {}
  subnetIds: # Subnet to deploy the container group into
    - id: string
      name: string
  dnsConfig: # DNS configuration for container group
    nameServers:
    - string
    searchDomains: string
    options: string
  sku: string # SKU for the container group
  encryptionProperties:
    vaultBaseUrl: string
    keyName: string
    keyVersion: string
  initContainers: # Array of init containers in the group
  - name: string
    properties:
      image: string
      command:
      - string
      environmentVariables:
      - name: string
        value: string
        secureValue: string
      volumeMounts:
      - name: string
        mountPath: string
        readOnly: boolean

Значения свойств

В следующих таблицах описаны значения, которые следует указать в этой схеме.

Объект Microsoft.ContainerInstance/containerGroups

Имя Тип Обязательно Значение
name строка Да Имя группы контейнеров.
версия_API enum Да 2021-10-01 (последняя), 2021-09-01, 2021-07-01, 2021-03-01, 2020-11-01, 2019-12-01, 2018-10-01, 2018-09-01, 2018-07-01, 2018-06-01, 2018-04-01
location строка Нет Местоположение ресурса.
tags объект Нет Теги ресурса.
удостоверение object Нет Удостоверение группы контейнеров, если оно настроено. - Объект ContainerGroupIdentity
properties объект Да Объект ContainerGroupProperties

Объект ContainerGroupIdentity

Имя Тип Обязательно Значение
тип enum Нет Тип удостоверения, используемого для группы контейнеров. Тип SystemAssigned, UserAssigned включает как условно созданное удостоверение, так и набор удостоверений, назначенных пользователем. Тип None удалит все удостоверения из группы контейнеров. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities объект Нет Список удостоверений пользователей, связанных с группой контейнеров. Ключевые словарные ссылки на удостоверение пользователя будут представлять собой идентификаторы ресурса Azure Resource Manager в следующем формате: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Объект ContainerGroupProperties

Имя Тип Обязательно Значение
containers array Да Контейнеры в группе контейнеров. - Объект Container
imageRegistryCredentials array Нет Учетные данные реестра образов, из которого создается группа контейнеров. - Объект ImageRegistryCredential
restartPolicy enum Нет Политика перезапуска для всех контейнеров в группе контейнеров. - Always Всегда перезапускать — OnFailure Перезапустить при сбое — Never Никогда не перезапускать. Всегда, При сбое, Никогда
ipAddress объект Нет Тип IP-адреса группы контейнеров. - Объект IpAddress
osType enum Да Тип операционной системы, необходимый контейнерам в группе контейнеров. Windows или Linux
volumes. array Нет Список томов, которые могут быть смонтированы контейнерами в этой группе контейнеров. - Объект Volume
диагностика object Нет Диагностические сведения для группы контейнеров. - Объект ContainerGroupDiagnostics
subnetIds объект Нет Сведения о подсети для группы контейнеров. - Объект ContainerGroupSubnetIds
dnsConfig объект Нет Сведения о конфигурации DNS для группы контейнеров. - Объект DnsConfiguration
sku enum Нет SKU для группы контейнеров — стандартный или выделенный
encryptionProperties объект Нет Свойства шифрования для группы контейнеров. - Объект EncryptionProperties
initContainers array Нет Контейнеры инициализации для группы контейнеров. - Объект InitContainerDefinition

Объект Container

Имя Тип Обязательно Значение
name строка Да Предоставленное пользователем имя экземпляра контейнера.
properties объект Да Свойства экземпляра контейнера. - Объект ContainerProperties

Объект ImageRegistryCredential

Имя Тип Обязательно Значение
server строка Да Сервер реестра образов Docker без указания протокола, такого как http или https.
username строка Нет Имя пользователя для закрытого реестра.
password строка Нет Пароль для закрытого реестра.
удостоверение строка Нет Идентификатор ресурса пользователя или управляемого удостоверения, назначенного системой, используемого для проверки подлинности.
identityUrl строка Нет URL-адрес удостоверения для частного реестра.

Объект IpAddress

Имя Тип Обязательно Значение
ports; array Да Список портов, открытых для группы контейнеров. - Объект Port
тип enum Да Указывает, будет ли IP-адрес открыт для доступа через Интернет или частную виртуальную сеть. - Открытый или закрытый
ip Строка Нет IP-адрес, открытый для доступа через Интернет.
dnsNameLabel Строка Нет Метка имени DNS для IP-адреса.

Объект Volume

Имя Тип Обязательно Значение
name строка Да Имя тома.
azureFile объект Нет Том файлов Azure. - Объект AzureFileVolume
emptyDir объект Нет Пустой том каталога.
secret объект Нет Секретный том.
gitRepo объект Нет Том репозитория Git. - Объект GitRepoVolume

Объект ContainerGroupDiagnostics

Имя Тип Обязательно Значение
logAnalytics объект Нет Сведения Log Analytics для группы контейнеров. - Объект LogAnalytics

Объект ContainerGroupSubnetIds

Имя Тип Обязательно Значение
идентификатор строка Да Идентификатор подсети.
name строка Нет Имя подсети.

Объект DnsConfiguration

Имя Тип Обязательно Значение
nameServers array Да Серверы DNS для группы контейнеров. - string
searchDomains Строка Нет Домены поиска DNS для поиска имени узла в группе контейнеров.
options Строка Нет Параметры DNS для группы контейнеров.

Объект EncryptionProperties

Имя Тип Обязательно Значение
vaultBaseUrl строка Да Базовый URL-адрес хранилища ключей.
keyName строка Да Ключ шифрования.
keyVersion строка Да Версия ключа шифрования.

Объект InitContainerDefinition

Имя Тип Обязательно Значение
name строка Да Имя для контейнера инициализации.
properties объект Да Свойства для контейнера инициализации. - Объект InitContainerPropertiesDefinition

Объект ContainerProperties

Имя Тип Обязательно Значение
Изображение строка Да Имя образа, используемого для создания экземпляра контейнера.
. array Нет Команды для выполнения в экземпляре контейнера в форме exec. - string
ports; array Нет Порты, открытые для экземпляра контейнера. - Объект ContainerPort
environmentVariables array Нет Переменные среды, которые следует задать в экземпляре контейнера. - Объект EnvironmentVariable
ресурсов object Да Требования к ресурсу экземпляра контейнера. - Объект ResourceRequirements
volumeMounts array Нет Подключения томов, доступных для экземпляра контейнера. - Объект VolumeMount
livenessProbe объект Нет Проба активности. - Объект ContainerProbe
readinessProbe объект Нет Проба готовности. - Объект ContainerProbe

Объект Port

Имя Тип Обязательно Значение
protocol enum Нет Протокол, связанный с портом. -TCP или UDP
порт Целое число Да номер порта.

Объект AzureFileVolume

Имя Тип Обязательно Значение
ShareName строка Да Имя общей папки файлов Azure, которая будет установлена в качестве тома.
readOnly Логическое Нет Флаг, указывающий, является ли общая папка файлов Azure, установленная в качестве тома, доступной только для чтения.
storageAccountName строка Да Имя учетной записи хранения, содержащей общую папку файлов Azure.
storageAccountKey Строка Нет Ключ доступа учетной записи хранения, используемый для доступа к общей папке файлов Azure.

Объект GitRepoVolume

Имя Тип Обязательно Значение
directory. Строка Нет Имя целевого каталога. Не должно содержать знак '..' или начинаться с него. Если указан параметр ".", каталогом томов будет репозиторий Git. В другом случае, если он указан, том будет содержать репозиторий Git в подкаталоге с заданным именем.
repository строка Да URL-адрес репозитория
revision Строка Нет Зафиксировать хэш для указанной редакции.

Объект LogAnalytics

Имя Тип Обязательно Значение
workspaceId строка Да Идентификатор рабочей области для Log Analytics
workspaceKey строка Да Ключ рабочей области для Log Analytics
workspaceResourceId строка Нет Идентификатор ресурса рабочей области для Log Analytics
logType enum Нет Тип журнала, который должен использоваться. - ContainerInsights или ContainerInstanceLogs
метаданные object Нет Метаданные для Log Analytics.

Объект InitContainerPropertiesDefinition

Имя Тип Обязательно Значение
Изображение строка Нет Образ контейнера инициализации.
. array Нет Команда для выполнения в контейнере инициализации в форме exec. - string
environmentVariables array Нет Переменные среды, которые следует задать в контейнере инициализации. - Объект EnvironmentVariable
volumeMounts array Нет Подключения томов, доступных для контейнера инициализации. - Объект VolumeMount

Объект ContainerPort

Имя Тип Обязательно Значение
protocol enum Нет Протокол, связанный с портом. -TCP или UDP
порт Целое число Да Номер порта, открытого в группе контейнеров.

Объект EnvironmentVariable

Имя Тип Обязательно Значение
name строка Да Имя переменной среды.
value строка Нет Значение переменной среды.
secureValue Строка Нет Значение безопасной переменной среды.

Объект ResourceRequirements

Имя Тип Обязательно Значение
requests объект Да Запросы ресурса этого экземпляра контейнера. - Объект ResourceRequests
ограничения объект Нет Пределы ресурса этого экземпляра контейнера. - Объект ResourceLimits

Объект VolumeMount

Имя Тип Обязательно Значение
name строка Да Имя подключения тома.
mountPath строка Да Путь в контейнере где том должен быть подключен. Не должен содержать двоеточие (:).
readOnly Логическое Нет Флаг, указывающий, является ли подключение тома доступным только для чтения.

Объект ContainerProbe

Имя Тип Обязательно Значение
exec объект Нет Команда к проведению пробы — Объект ContainerExec
httpGet объект Нет Настройки Http Get для проведения пробы — Объект ContainerHttpGet
initialDelaySeconds Целое число Нет Начальная задержка в секундах.
periodSeconds Целое число Нет Период в секундах.
failureThreshold Целое число Нет Пороговое значение сбоя.
successThreshold Целое число Нет Пороговое значение успешного выполнения.
timeoutSeconds Целое число Нет Время ожидания в секундах.

Объект ResourceRequests

Имя Тип Обязательно Значение
memoryInGB number Да Запрос памяти в Гб для этого экземпляра контейнера.
cpu number Да Запрос ЦП этого контейнера.
gpu object Нет Запрос ГП этого контейнера. - Объект GpuResource

Объект ResourceLimits

Имя Тип Обязательно Значение
memoryInGB number Нет Ограничение памяти в Гб для этого экземпляра контейнера.
cpu number Нет Ограничение ЦП для этого экземпляра контейнера.
gpu object Нет Ограничение ГП для этого экземпляра контейнера. - Объект GpuResource

Объект ContainerExec

Имя Тип Обязательно Значение
. array Нет Команды для выполнения в контейнере. - string

Объект ContainerHttpGet

Имя Тип Обязательно Значение
path строка Нет Путь к пробе.
порт Целое число Да Номер порта для пробы.
схема enum Нет Схема. - http или https
httpHeaders объект Нет Заголовки HTTP, включаемые в зонд. - Объект HttpHeaders

Объект HttpHeaders

Имя Тип Обязательно Значение
name строка Нет Имя заголовка.
value строка Нет Значение заголовка.

Важно!

Номера SKU K80 и P100 GPU будут выведены из эксплуатации до 31 августа 2023 г. Это связано с прекращением использования базовых виртуальных машин: серий NC и NCv2 Несмотря на то, что будут доступны номера SKU версии 100, они повторно используют Служба Azure Kubernetes. Ресурсы GPU поддерживаются не полностью и не должны использоваться для рабочих нагрузок. Используйте следующие ресурсы для миграции на AKS в настоящее время: Как перейти на AKS.

Объект GpuResource

Имя Тип Обязательно Значение
count Целое число Да Число ресурсов ГП.
sku enum Да SKU ресурса ГП. — V100

Дальнейшие действия

См. учебник Развертывание многоконтейнерной группы с использованием файла YAML.

См. примеры использования файла YAML для развертывания групп контейнеров в виртуальной сети или подключения внешнего тома.