Referencia de YAML: Azure Container Instances

En este artículo se describen la sintaxis y las propiedades del archivo YAML admitido por Azure Container Instances para configurar un grupo de contenedores. Use un archivo YAML para introducir la configuración del grupo en el comando az container create en el CLI de Azure.

Un archivo YAML es una manera cómoda de configurar un grupo de contenedores para implementaciones reproducibles. Es una alternativa concisa al uso de una plantilla de Resource Manager o los SDK de Azure Container Instances para crear o actualizar un grupo de contenedores.

Nota

Esta referencia se aplica a los archivos YAML para Azure Container Instances versión 2021-10-01de la API REST.

Schema

El esquema del archivo YAML sigue, incluidos los comentarios para resaltar las propiedades clave. Para obtener una descripción de las propiedades de este esquema, vea la sección Valores de propiedad.

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
    autoGeneratedDomainNameLabelScope: 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

Valores de propiedades

En las tablas siguientes se describen los valores que debe establecer en el esquema.

Microsoft. ContainerInstance/containerGroups (objeto)

Nombre Tipo Required Value
nombre string Nombre del grupo de contenedores.
apiVersion enum 2021-10-01 (más reciente), 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 string No Ubicación del recurso.
tags object No Etiquetas de recursos.
identity object No Identidad del grupo de contenedores, si está configurada. - ContainerGroupIdentity (objeto)
properties object ContainerGroupProperties (objeto)

ContainerGroupIdentity (objeto)

Nombre Tipo Required Value
type enum No Tipo de identidad que se usa para el grupo de contenedores. El tipo "SystemAssigned, UserAssigned" incluye una identidad creada implícitamente y un conjunto de identidades asignadas por el usuario. El tipo "None" quita las identidades del grupo de contenedores. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object No Lista de identidades de usuario asociadas al grupo de contenedores. Las referencias de clave de diccionario de identidad de usuario son Azure Resource Manager identificadores de recursos con el formato : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ManagedIdentity/userAssignedIdentities/{identityName}'.

ContainerGroupProperties (objeto)

Nombre Tipo Required Value
contenedores array Contenedores dentro del grupo de contenedores. - Container (objeto)
imageRegistryCredentials array No Credenciales del Registro de imágenes a partir de las cuales se crea el grupo de contenedores. - ImageRegistryCredential (objeto)
restartPolicy enum No Reinicie la directiva para todos los contenedores del grupo de contenedores. - Always Reiniciar siempre- OnFailure Reiniciar en caso de error- Never No reiniciar nunca. - Siempre, OnFailure, Nunca
ipAddress object No Tipo de dirección IP del grupo de contenedores. - IpAddress (objeto)
osType enum Tipo de sistema operativo requerido por los contenedores del grupo de contenedores. - Windows o Linux
volumes array No La lista de volúmenes que los contenedores de este grupo de contenedores pueden montar. - Volume (objeto)
diagnostics object No Información de diagnóstico de un grupo de contenedores. - ContainerGroupDiagnostics (objeto)
subnetIds object No Información de subred de un grupo de contenedores. - ContainerGroupSubnetIds (objeto)
dnsConfig object No Información de configuración de DNS para un grupo de contenedores. - DnsConfiguration (objeto)
sku enum No SKU de un grupo de contenedores: estándar o dedicado
encryptionProperties object No Propiedades de cifrado de un grupo de contenedores. - EncryptionProperties (objeto)
initContainers array No Contenedores de inicialización de un grupo de contenedores. - InitContainerDefinition (objeto)

Container (objeto)

Nombre Tipo Required Value
nombre string Nombre proporcionado por el usuario de la instancia de contenedor.
properties object Propiedades de la instancia de contenedor. - ContainerProperties (objeto)

ImageRegistryCredential (objeto)

Nombre Tipo Required Value
server string El servidor del Registro de imágenes de Docker sin un protocolo como "http" y "https".
username string No Nombre de usuario del registro privado.
password string No Contraseña del registro privado.
identity string No Identificador de recurso de la identidad administrada asignada por el usuario que se usa para autenticarse. La identidad administrada asignada por el sistema no se admite para las extracción de imágenes de ACR.
identityUrl string No Dirección URL de identidad del registro privado.

IpAddress (objeto)

Nombre Tipo Required Value
ports array Lista de puertos expuestos en el grupo de contenedores. - Port (objeto)
type enum Especifica si la dirección IP se expone a la red virtual pública de Internet o privada. - Público o Privado
IP string No Dirección IP expuesta a la red pública de Internet.
dnsNameLabel string No Etiqueta de nombre DNS para la dirección IP.

Volume (objeto)

Nombre Tipo Required Value
nombre string Nombre del volumen.
azureFile object No El volumen de Azure File. - AzureFileVolume (objeto)
emptyDir object No Volumen de directorio vacío.
secret object No Volumen secreto.
gitRepo object No El volumen del repositorio de Git. - GitRepoVolume (objeto)

ContainerGroupDiagnostics (objeto)

Nombre Tipo Required Value
logAnalytics object No Información de log analytics del grupo de contenedores. - LogAnalytics (objeto)

ContainerGroupSubnetIds (objeto)

Nombre Tipo Required Value
id string Identificador de una subred.
nombre string No Nombre de la subred.

DnsConfiguration (objeto)

Nombre Tipo Required Value
nameServers array Los servidores DNS para el grupo de contenedores. - string
searchDomains string No Dominios de búsqueda DNS para la búsqueda de nombres de host en el grupo de contenedores.
options string No Opciones de DNS para el grupo de contenedores.

EncryptionProperties (objeto)

Nombre Tipo Required Value
vaultBaseUrl string Dirección URL base de keyvault.
keyName string Nombre de clave de cifrado.
keyVersion string Versión de la clave de cifrado.

InitContainerDefinition (objeto)

Nombre Tipo Required Value
nombre string Nombre del contenedor de inicialización.
properties object Propiedades del contenedor de inicialización. - Objeto InitContainerPropertiesDefinition

ContainerProperties (objeto)

Nombre Tipo Required Value
imagen string Nombre de la imagen utilizada para crear la instancia del contenedor.
command array No Los comandos que se van a ejecutar dentro de la instancia de contenedor en formato exec. - string
ports array No Puertos expuestos en la instancia de contenedor. - ContainerPort (objeto)
environmentVariables array No Variables de entorno que se van a establecer en la instancia de contenedor. - EnvironmentVariable (objeto)
resources object Requisitos de recursos de la instancia de contenedor. - ResourceRequirements (objeto)
volumeMounts array No El volumen monta los montajes disponibles para la instancia de contenedor. - VolumeMount (objeto)
livenessProbe object No Sondeo de ejecución. - ContainerProbe (objeto)
readinessProbe object No Sondeo de preparación. - ContainerProbe (objeto)

Port (objeto)

Nombre Tipo Required Value
protocol enum No Protocolo asociado al puerto. - TCP o UDP
port integer Número de puerto.

AzureFileVolume (objeto)

Nombre Tipo Required Value
shareName string Nombre del recurso compartido de archivos de Azure que se va a montar como un volumen.
Solo lectura boolean No Marca que indica si el recurso compartido de Azure File montado como volumen es de solo lectura.
storageAccountName string Nombre de la cuenta de almacenamiento que contiene el recurso compartido de archivos de Azure.
storageAccountKey string No La clave de acceso de la cuenta de almacenamiento que se usa para acceder al recurso compartido de archivos de Azure.

GitRepoVolume (objeto)

Nombre Tipo Required Value
directory string No Nombre del directorio de destino. No debe contener ni comenzar con '..'. Si se proporciona '.', el directorio de volúmenes es el repositorio de Git. De lo contrario, si se especifica, el volumen contiene el repositorio git en el subdirectorio con el nombre especificado.
repositorio string Dirección URL del repositorio
revisión string No Hash de confirmación para la revisión especificada.

LogAnalytics (objeto)

Nombre Tipo Required Value
workspaceId string El identificador del área de trabajo para Log Analytics
workspaceKey string La clave del área de trabajo para Log Analytics
IdentificadorDeRecursoDelEspacioDeTrabajo string No El identificador de recurso del área de trabajo para Log Analytics
Tipo de registro enum No Tipo de registro que se va a usar. - ContainerInsights o ContainerInstanceLogs
metadata object No Metadatos de Log Analytics.

Objeto InitContainerPropertiesDefinition

Nombre Tipo Required Value
imagen string No Imagen del contenedor de inicialización.
command array No Comando que se va a ejecutar en el contenedor de inicialización en formato exec. - string
environmentVariables array No Variables de entorno que se van a establecer en el contenedor de inicialización. - EnvironmentVariable (objeto)
volumeMounts array No El volumen monta los montajes disponibles para el contenedor de inicialización. - VolumeMount (objeto)

ContainerPort (objeto)

Nombre Tipo Required Value
protocol enum No Protocolo asociado al puerto. - TCP o UDP
port integer Número de puerto expuesto en el grupo de contenedores.

EnvironmentVariable (objeto)

Nombre Tipo Required Value
nombre string Nombre de la variable de entorno.
valor string No Valor de la variable de entorno.
secureValue string No Valor de la variable de entorno segura.

ResourceRequirements (objeto)

Nombre Tipo Required Value
requests object Solicitudes de recursos de esta instancia de contenedor. - ResourceRequests (objeto)
límites object No Límites de recursos de esta instancia de contenedor. - ResourceLimits (objeto)

VolumeMount (objeto)

Nombre Tipo Required Value
nombre string Nombre del montaje del volumen.
mountPath string Ruta de acceso dentro del contenedor donde se debe montar el volumen. No debe contener dos puntos (:).
Solo lectura boolean No Marca que indica si el montaje del volumen es de solo lectura.

ContainerProbe (objeto)

Nombre Tipo Required Value
exec object No Comando de ejecución que se va a sondear: objeto ContainerExec
httpGet (en inglés) object No La configuración de Http Get para sondear: objeto ContainerHttpGet
initialDelaySeconds integer No Segundos de retraso inicial.
periodSeconds integer No Segundos de período.
failureThreshold integer No Umbral de error.
successThreshold integer No Umbral de éxito.
timeoutSeconds integer No Los segundos de tiempo de espera.

ResourceRequests (objeto)

Nombre Tipo Required Value
memoryInGB number Solicitud de memoria en GB de esta instancia de contenedor.
CPU number Solicitud de CPU de esta instancia de contenedor.
gpu object No Solicitud de GPU de esta instancia de contenedor. - Objeto GpuResource

ResourceLimits (objeto)

Nombre Tipo Required Value
memoryInGB number No Límite de memoria en GB de esta instancia de contenedor.
CPU number No Límite de CPU de esta instancia de contenedor.
gpu object No Límite de GPU de esta instancia de contenedor. - Objeto GpuResource

ContainerExec (objeto)

Nombre Tipo Required Value
command array No Comandos que se van a ejecutar en el contenedor. - string

ContainerHttpGet (objeto)

Nombre Tipo Required Value
path string No Ruta de acceso al sondeo.
port integer Número de puerto que se va a sondear.
scheme enum No El esquema. - http o https
httpHeaders object No Encabezados HTTP incluidos en el sondeo. - HttpHeaders (objeto)

HttpHeaders (objeto)

Nombre Tipo Required Value
nombre string No Nombre del encabezado.
valor string No Valor del encabezado.

Importante

Las SKU de GPU K80 y P100 se retiran el 31 de agosto de 2023. Esto se debe a la retirada de las máquinas virtuales subyacentes usadas: serie NC y serie NCv2 Aunque las SKU V100 estarán disponibles, se volverá a modificar para usar Azure Kubernetes Service en su lugar. Los recursos de GPU no son totalmente compatibles y no se deben usar para cargas de trabajo de producción. Use los siguientes recursos para migrar a AKS hoy: Migración a AKS.

Objeto GpuResource

Nombre Tipo Required Value
count integer Recuento del recurso de GPU.
sku enum SKU del recurso de GPU. - V100

Pasos siguientes

Consulte el tutorial Implementación de un grupo de varios contenedores mediante un archivo YAML.

Vea ejemplos de uso de un archivo YAML para implementar grupos de contenedores en una red virtual o que monten un volumen externo.