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


Справочник по 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

Имя. Type Обязательное поле Стоимость
name строка Да Имя группы контейнеров.
версия_API перечисление Да 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
расположение строка Нет Расположение ресурса.
tags объект No Теги ресурса.
identity объект No Удостоверение группы контейнеров, если оно настроено. - Объект ContainerGroupIdentity
свойства объект Да Объект ContainerGroupProperties

Объект ContainerGroupIdentity

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

Объект ContainerGroupProperties

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

Объект Container

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

Объект ImageRegistryCredential

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

Объект IpAddress

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

Объект Volume

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

Объект ContainerGroupDiagnostics

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

Объект ContainerGroupSubnetIds

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

Объект DnsConfiguration

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

Объект EncryptionProperties

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

Объект InitContainerDefinition

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

Объект ContainerProperties

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

Объект Port

Имя. Type Обязательное поле Значение
protocol перечисление No Протокол, связанный с портом. -TCP или UDP
port integer Да номер порта.

Объект AzureFileVolume

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

Объект GitRepoVolume

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

Объект LogAnalytics

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

Объект InitContainerPropertiesDefinition

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

Объект ContainerPort

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

Объект EnvironmentVariable

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

Объект ResourceRequirements

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

Объект VolumeMount

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

Объект ContainerProbe

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

Объект ResourceRequests

Имя. Type Обязательное поле Значение
memoryInGB number Да Запрос памяти в Гб для этого экземпляра контейнера.
ЦП number Да Запрос ЦП этого контейнера.
Графический процессор объект No Запрос ГП этого контейнера. - Объект GpuResource

Объект ResourceLimits

Имя. Type Обязательное поле Значение
memoryInGB number No Ограничение памяти в Гб для этого экземпляра контейнера.
ЦП number No Ограничение ЦП для этого экземпляра контейнера.
Графический процессор объект No Ограничение ГП для этого экземпляра контейнера. - Объект GpuResource

Объект ContainerExec

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

Объект ContainerHttpGet

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

Объект HttpHeaders

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

Внимание

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

Объект GpuResource

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

Следующие шаги

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

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