En este artículo se abordan la sintaxis y las propiedades del archivo YAML compatible con Azure Container Instances para configurar un grupo de contenedores. Use un archivo YAML para especificar la configuración del grupo en el comando az container create en la 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 la versión de la API REST de Azure Container Instances2021-10-01
.
Schema
A continuación se muestra el esquema para el archivo YAML, con comentarios para resaltar las principales propiedades. 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
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
Valores de propiedad
Las tablas siguientes describen los valores que debe establecer en el esquema.
Objeto Microsoft.ContainerInstance/containerGroups
Nombre |
Type |
Obligatorio |
valor |
name |
string |
Sí |
Nombre del grupo de contenedores. |
apiVersion |
enum |
Sí |
2021-10-01 (la versión 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 |
ubicación |
string |
No |
Ubicación del recurso. |
etiquetas |
object |
No |
Etiquetas del recurso. |
identity |
object |
No |
Identidad del grupo de contenedores, si está configurada. - Objeto ContainerGroupIdentity |
properties |
object |
Sí |
Objeto ContainerGroupProperties |
Objeto ContainerGroupIdentity
Nombre |
Type |
Obligatorio |
Value |
type |
enum |
No |
Tipo de identidad utilizado 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 con el grupo de contenedores. Las referencias de clave de diccionario de identidad de usuario son identificadores de recursos de Azure Resource Manager con el formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. |
Objeto ContainerGroupProperties
Nombre |
Type |
Obligatorio |
Value |
containers |
array |
Sí |
Contenedores del grupo de contenedores. - Objeto Container |
imageRegistryCredentials |
array |
No |
Credenciales del registro de imágenes por las que se crea el grupo de contenedores. - Objeto ImageRegistryCredential |
restartPolicy |
enum |
No |
Directiva de reinicio para todos los contenedores del grupo de contenedores. - Always Reiniciar siempre- OnFailure Reiniciar con un error - Never No reiniciar nunca. - Always, OnFailure, Never |
ipAddress |
object |
No |
Tipo de dirección IP del grupo de contenedores. - Objeto IpAddress |
osType |
enum |
Sí |
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. - Objeto Volume |
diagnóstico |
object |
No |
Información de diagnóstico de un grupo de contenedores. - Objeto ContainerGroupDiagnostics |
subnetIds |
object |
No |
Información de subred para un grupo de contenedores. - Objeto ContainerGroupSubnetIds |
dnsConfig |
object |
No |
Información de configuración DNS de un grupo de contenedores. - Objeto DnsConfiguration |
sku |
enum |
No |
La SKU de un grupo de contenedores: estándar o dedicada |
encryptionProperties |
object |
No |
Propiedades de cifrado de un grupo de contenedores. - Objeto EncryptionProperties |
initContainers |
array |
No |
Contenedores de inicialización de un grupo de contenedores. - Objeto InitContainerDefinition |
Objeto Container
Nombre |
Type |
Obligatorio |
valor |
name |
string |
Sí |
Nombre proporcionado por el usuario de la instancia de contenedor. |
properties |
object |
Sí |
Propiedades de la instancia de contenedor. - Objeto ContainerProperties |
Objeto ImageRegistryCredential
Nombre |
Type |
Obligatorio |
Value |
server |
string |
Sí |
Servidor de registro de imagen 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 sistema o usuario que se usa para autenticarse. |
identityUrl |
string |
No |
Dirección URL de identidad del registro privado. |
Objeto IpAddress
Nombre |
Type |
Obligatorio |
Value |
ports |
array |
Sí |
Lista de puertos expuestos en el grupo de contenedores. - Objeto Port |
type |
enum |
Sí |
Especifica si la dirección IP se expone a la red virtual pública de Internet o privada. - Pública o privada |
ip |
string |
No |
Dirección IP expuesta a la red pública de Internet. |
dnsNameLabel |
string |
No |
Etiqueta del nombre DNS para la IP. |
Objeto Volume
Nombre |
Type |
Obligatorio |
valor |
name |
string |
Sí |
El nombre del objeto visual. |
azureFile |
object |
No |
Volumen de archivos de Azure. - Objeto AzureFileVolume |
emptyDir |
object |
No |
Volumen de directorio vacío. |
secret |
object |
No |
Volumen secreto. |
gitRepo |
object |
No |
Volumen de repositorio GIT. - Objeto GitRepoVolume |
Objeto ContainerGroupDiagnostics
Nombre |
Type |
Obligatorio |
Value |
logAnalytics |
object |
No |
Información de Log Analytics del grupo de contenedores. - Objeto LogAnalytics |
ContainerGroupSubnetIds object
Nombre |
Type |
Obligatorio |
Value |
id |
string |
Sí |
Identificador de una subred. |
name |
string |
No |
Nombre de la subred. |
Objeto DnsConfiguration
Nombre |
Type |
Obligatorio |
Value |
nameServers |
array |
Sí |
Servidores DNS para el grupo de contenedores. - cadena |
searchDomains |
string |
No |
Dominios de búsqueda de DNS para la búsqueda del nombre de host en el grupo de contenedores. |
opciones |
string |
No |
Opciones de DNS para el grupo de contenedores. |
Objeto EncryptionProperties
Nombre |
Type |
Obligatorio |
Value |
vaultBaseUrl |
string |
Sí |
Dirección URL base de keyvault. |
keyName |
string |
Sí |
Nombre de la clave de cifrado. |
keyVersion |
string |
Sí |
Versión de la clave de cifrado. |
Objeto InitContainerDefinition
Objeto ContainerProperties
Nombre |
Type |
Obligatorio |
Value |
imagen |
string |
Sí |
Nombre de la imagen utilizada para crear la instancia de contenedor. |
command |
array |
No |
Comandos para ejecutar dentro de la instancia de contenedor en el formato de ejecución. - cadena |
ports |
array |
No |
Puertos expuestos en la instancia de contenedor. - Objeto ContainerPort |
environmentVariables |
array |
No |
Variables de entorno para establecer en la instancia de contenedor. - Objeto EnvironmentVariable |
resources |
object |
Sí |
Requisitos de los recursos de la instancia de contenedor. - Objeto ResourceRequirements |
volumeMounts |
array |
No |
Montajes de volumen disponibles para la instancia de contenedor. - Objeto VolumeMount |
livenessProbe |
object |
No |
Sondeo de ejecución. - Objeto ContainerProbe |
readinessProbe |
object |
No |
Sondeo de preparación. - Objeto ContainerProbe |
Objeto Port
Nombre |
Type |
Obligatorio |
Value |
protocol |
enum |
No |
Protocolo asociado al puerto. - TCP o UDP |
port |
integer |
Sí |
Número del puerto. |
Objeto AzureFileVolume
Nombre |
Type |
Obligatorio |
Value |
shareName |
string |
Sí |
Nombre del recurso compartido de archivos de Azure que se va a montar como un volumen. |
readOnly |
boolean |
No |
Marca que indica si el recurso compartido de archivos de Azure montado como un volumen es de solo lectura. |
storageAccountName |
string |
Sí |
Nombre de la cuenta de almacenamiento que contiene el recurso compartido de archivos de Azure. |
storageAccountKey |
string |
No |
Clave de acceso de la cuenta de almacenamiento utilizada para acceder al recurso compartido de archivos de Azure. |
Objeto GitRepoVolume
Nombre |
Type |
Obligatorio |
Value |
directory |
string |
No |
Nombre del directorio de destino. No debe contener ".." ni empezar así. 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. |
repository |
string |
Sí |
Dirección URL del repositorio |
revision |
string |
No |
Hash de confirmación para la revisión especificada. |
Objeto LogAnalytics
Nombre |
Type |
Obligatorio |
Value |
workspaceId |
string |
Sí |
Identificador del área de trabajo de Log Analytics |
workspaceKey |
string |
Sí |
Clave del área de trabajo de Log Analytics |
workspaceResourceId |
string |
No |
Identificador del recurso del área de trabajo de Log Analytics |
logType |
enum |
No |
Tipo de registro que se va a usar. - ContainerInsights o ContainerInstanceLogs |
metadata |
object |
No |
Metadatos de Log Analytics. |
Objeto InitContainerPropertiesDefinition
Nombre |
Type |
Obligatorio |
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 del formulario de ejecución. - cadena |
environmentVariables |
array |
No |
Variables de entorno que se establecerán en el contenedor de inicialización. - Objeto EnvironmentVariable |
volumeMounts |
array |
No |
Montajes de volumen disponibles para el contenedor de inicialización. - Objeto VolumeMount |
Objeto ContainerPort
Nombre |
Type |
Obligatorio |
Value |
protocol |
enum |
No |
Protocolo asociado al puerto. - TCP o UDP |
port |
integer |
Sí |
Número de puerto expuesto en el grupo de contenedores. |
Objeto EnvironmentVariable
Nombre |
Type |
Obligatorio |
valor |
name |
string |
Sí |
Nombre de la variable de entorno. |
value |
string |
No |
Valor de la variable de entorno. |
secureValue |
string |
No |
Valor de la variable de entorno segura. |
Objeto ResourceRequirements
Nombre |
Type |
Obligatorio |
Value |
Solicitudes |
object |
Sí |
Solicitudes de los recursos de la instancia de contenedor. - Objeto ResourceRequests |
límites |
object |
No |
Límites de los recursos de la instancia de contenedor. - Objeto ResourceLimits |
Objeto VolumeMount
Nombre |
Type |
Obligatorio |
valor |
name |
string |
Sí |
Nombre del montaje de volumen. |
mountPath |
string |
Sí |
La ruta de acceso dentro del contenedor en la que se debe montar el volumen. No debe contener dos puntos (:). |
readOnly |
boolean |
No |
Marca que indica si el montaje del volumen es de solo lectura. |
Objeto ContainerProbe
Nombre |
Type |
Obligatorio |
Value |
exec |
object |
No |
Comando de ejecución para sondear - objeto ContainerExec |
httpGet |
object |
No |
La configuración de http get para sondear - objeto ContainerHttpGet |
initialDelaySeconds |
integer |
No |
Segundos de retardo iniciales. |
periodSeconds |
integer |
No |
Período de segundos. |
failureThreshold |
integer |
No |
Umbral de error. |
successThreshold |
integer |
No |
Umbral correcto. |
timeoutSeconds |
integer |
No |
Tiempo de espera en segundos. |
Objeto ResourceRequests
Nombre |
Type |
Obligatorio |
Value |
memoryInGB |
number |
Sí |
Solicitud de memoria en GB de esta instancia de contenedor. |
cpu |
number |
Sí |
Solicitud de CPU de esta instancia de contenedor. |
gpu |
object |
No |
Solicitud de GPU de esta instancia de contenedor. - Objeto GpuResource |
Objeto ResourceLimits
Nombre |
Type |
Obligatorio |
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 |
Objeto ContainerExec
Nombre |
Type |
Obligatorio |
Value |
command |
array |
No |
Comandos para ejecutar dentro del contenedor. - cadena |
Objeto ContainerHttpGet
Nombre |
Type |
Obligatorio |
Value |
path |
string |
No |
Ruta de acceso que se va a sondear. |
port |
integer |
Sí |
Número de puerto que se va a sondear. |
scheme |
enum |
No |
Esquema. - http o https |
httpHeaders |
object |
No |
Encabezados HTTP incluidos en el sondeo. - Objeto HttpHeaders |
Nombre |
Type |
Obligatorio |
valor |
name |
string |
No |
Nombre del encabezado. |
value |
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 recomienda usar Azure Kubernetes Service en su lugar. Los recursos de GPU no son totalmente compatibles y no deben usarse para cargas de trabajo de producción. Use los siguientes recursos para migrar a AKS hoy mismo: Cómo migrar a AKS.
Objeto GpuResource
Nombre |
Type |
Obligatorio |
Value |
count |
integer |
Sí |
Recuento del recurso de GPU. |
sku |
enum |
Sí |
SKU del recurso de GPU. - V100 |
Pasos siguientes
Vea el tutorial Implementación de un grupo de varios contenedores con un archivo YAML.
Vea ejemplos de uso de un archivo YAML para implementar grupos de contenedores en una red virtual o para montar un volumen externo.