Referência yaml: Instâncias de Contêiner do Azure

Este artigo aborda a sintaxe e as propriedades do arquivo YAML com suporte Instâncias de Contêiner do Azure para configurar um grupo de contêineres. Use um arquivo YAML para inserir a configuração do grupo no comando az container create no CLI do Azure.

Um arquivo YAML é uma maneira conveniente de configurar um grupo de contêineres para implantações reproduzíveis. É uma alternativa concisa usar um modelo de Resource Manager ou os SDKs Instâncias de Contêiner do Azure para criar ou atualizar um grupo de contêineres.

Observação

Essa referência se aplica a arquivos YAML para Instâncias de Contêiner do Azure versão 2021-10-01da API REST.

Schema

O esquema do arquivo YAML segue, incluindo comentários para realçar as propriedades de chave. Para obter uma descrição das propriedades neste esquema, consulte a seção Valores de propriedade .

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 propriedade

As tabelas a seguir descrevem os valores que você precisa definir no esquema.

Microsoft. Objeto ContainerInstance/containerGroups

Name Tipo Obrigatório Valor
nome cadeia Yes O nome do grupo de contêineres.
apiVersion enumeração Yes 2021-10-01 (mais recente), 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
local cadeia No O local do recurso.
tags objeto No As marcas de recurso.
identidade objeto No A identidade do grupo de contêineres, se configurada. - Objeto ContainerGroupIdentity
Propriedades objeto Yes Objeto ContainerGroupProperties

Objeto ContainerGroupIdentity

Name Tipo Obrigatório Valor
tipo enumeração No O tipo de identidade usado para o grupo de contêineres. O tipo 'SystemAssigned, UserAssigned' inclui uma identidade criada implicitamente e um conjunto de identidades atribuídas pelo usuário. O tipo 'None' remove as identidades do grupo de contêineres. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities objeto No A lista de identidades de usuário associadas ao grupo de contêineres. As referências de chave do dicionário de identidade do usuário são Azure Resource Manager IDs de recurso no formulário: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ManagedIdentity/userAssignedIdentities/{identityName}'.

Objeto ContainerGroupProperties

Name Tipo Obrigatório Valor
contêineres matriz Yes Os contêineres dentro do grupo de contêineres. - Objeto container
imageRegistryCredentials matriz No As credenciais do registro de imagem pelas quais o grupo de contêineres é criado. - Objeto ImageRegistryCredential
restartPolicy enumeração No Reinicie a política para todos os contêineres dentro do grupo de contêineres. - Always Sempre reinicie- OnFailure Reinicie com falha- Never Nunca reinicie. - Always, OnFailure, Never
ipAddress objeto No O tipo de endereço IP do grupo de contêineres. - Objeto IpAddress
osType enumeração Yes O tipo de sistema operacional exigido pelos contêineres no grupo de contêineres. - Windows ou Linux
volumes matriz No A lista de volumes que os contêineres neste grupo de contêineres podem montar. - Objeto volume
diagnostics objeto No As informações de diagnóstico de um grupo de contêineres. - Objeto ContainerGroupDiagnostics
IDs de sub-rede objeto No As informações de sub-rede de um grupo de contêineres. - Objeto ContainerGroupSubnetIds
dnsConfig objeto No As informações de configuração de DNS para um grupo de contêineres. - Objeto DnsConfiguration
sku enumeração No A SKU de um grupo de contêineres – Standard ou Dedicado
propriedades de criptografia objeto No As propriedades de criptografia de um grupo de contêineres. - Objeto EncryptionProperties
Contêineres de inicialização matriz No Os contêineres de inicialização de um grupo de contêineres. - Objeto InitContainerDefinition

Objeto Container

Name Tipo Obrigatório Valor
nome cadeia Yes O nome fornecido pelo usuário da instância de contêiner.
Propriedades objeto Yes As propriedades da instância de contêiner. - Objeto ContainerProperties

Objeto ImageRegistryCredential

Name Tipo Obrigatório Valor
servidor cadeia Yes O servidor de registro de imagem do Docker sem um protocolo como "http" e "https".
nome de usuário cadeia No O nome de usuário do registro privado.
senha cadeia No A senha do registro privado.
identidade cadeia No A ID do recurso da identidade gerenciada atribuída pelo usuário usada para autenticação. Não há suporte para a identidade gerenciada atribuída pelo sistema para pulls de imagem do ACR.
identityUrl cadeia No A URL de identidade do registro privado.

Objeto IpAddress

Name Tipo Obrigatório Valor
ports matriz Yes A lista de portas expostas no grupo de contêineres. - Objeto port
tipo enumeração Yes Especifica se o IP é exposto à Internet pública ou à rede virtual privada. - Público ou Privado
IP cadeia No O IP exposto à Internet pública.
dnsNameLabel cadeia No O rótulo de nome Dns para o IP.

Objeto volume

Name Tipo Obrigatório Valor
nome cadeia Yes O nome do volume.
azureFile objeto No O volume de Arquivo do Azure. - Objeto AzureFileVolume
emptyDir objeto No O volume de diretório vazio.
segredo objeto No O volume secreto.
gitRepo objeto No O volume de repositório git. - Objeto GitRepoVolume

Objeto ContainerGroupDiagnostics

Name Tipo Obrigatório Valor
logAnalytics objeto No Informações do log analytics do grupo de contêineres. - Objeto LogAnalytics

Objeto ContainerGroupSubnetIds

Name Tipo Obrigatório Valor
id cadeia Yes O identificador de uma sub-rede.
nome cadeia No O nome da sub-rede.

Objeto DnsConfiguration

Name Tipo Obrigatório Valor
nameServers matriz Yes Os servidores DNS para o grupo de contêineres. -String
searchDomains cadeia No Os domínios de pesquisa DNS para pesquisa de nome de host no grupo de contêineres.
Opções cadeia No As opções de DNS para o grupo de contêineres.

Objeto EncryptionProperties

Name Tipo Obrigatório Valor
vaultBaseUrl cadeia Yes A URL base do keyvault.
nome_chave cadeia Yes O nome da chave de criptografia.
keyVersion cadeia Yes A versão da chave de criptografia.

Objeto InitContainerDefinition

Name Tipo Obrigatório Valor
nome cadeia Yes O nome do contêiner de inicialização.
Propriedades objeto Yes As propriedades do contêiner de inicialização. - Objeto InitContainerPropertiesDefinition

Objeto ContainerProperties

Name Tipo Obrigatório Valor
imagem cadeia Yes O nome da imagem usada para criar a instância de contêiner.
comando matriz No Os comandos a serem executados na instância de contêiner no formulário executivo. - cadeia de caracteres
ports matriz No As portas expostas na instância de contêiner. - Objeto ContainerPort
environmentVariables matriz No As variáveis de ambiente a serem definidas na instância do contêiner. - Objeto EnvironmentVariable
resources objeto Yes Os requisitos de recurso da instância de contêiner. - Objeto ResourceRequirements
volumeMounts matriz No As montagens de volume disponíveis para a instância de contêiner. - Objeto VolumeMount
livenessProbe objeto No A investigação de vida. - Objeto ContainerProbe
prontidãoSonda objeto No A investigação de preparação. - Objeto ContainerProbe

Objeto port

Name Tipo Obrigatório Valor
protocolo enumeração No O protocolo associado à porta. – TCP ou UDP
porta inteiro Yes O número da porta.

Objeto AzureFileVolume

Name Tipo Obrigatório Valor
shareName cadeia Yes O nome do compartilhamento de Arquivos do Azure a ser montado como um volume.
somente leitura boolean No O sinalizador que indica se o Arquivo do Azure compartilhado montado como um volume é somente leitura.
storageAccountName cadeia Yes O nome da conta de armazenamento que contém o compartilhamento de arquivos do Azure.
Chave de conta de armazenamento cadeia No A chave de acesso da conta de armazenamento usada para acessar o compartilhamento de Arquivos do Azure.

Objeto GitRepoVolume

Name Tipo Obrigatório Valor
diretório cadeia No Nome do diretório de destino. Não deve conter ou começar com '..'. Se '.' for fornecido, o diretório de volume será o repositório git. Caso contrário, se especificado, o volume contém o repositório git no subdiretório com o nome fornecido.
repositório cadeia Yes URL do repositório
revisão cadeia No Confirme o hash para a revisão especificada.

Objeto LogAnalytics

Name Tipo Obrigatório Valor
ID do espaço de trabalho cadeia Yes A ID do workspace para análise de logs
workspaceKey cadeia Yes A chave do workspace para análise de logs
IdentificadorDeRecursoDoEspaçoDeTrabalho cadeia No A ID do recurso do workspace para análise de logs
Tipo de log enumeração No O tipo de log a ser usado. - ContainerInsights ou ContainerInstanceLogs
metadados objeto No Metadados para análise de logs.

Objeto InitContainerPropertiesDefinition

Name Tipo Obrigatório Valor
imagem cadeia No A imagem do contêiner de inicialização.
comando matriz No O comando a ser executado dentro do contêiner de inicialização no formulário executivo. -String
environmentVariables matriz No As variáveis de ambiente a serem definidas no contêiner de inicialização. - Objeto EnvironmentVariable
volumeMounts matriz No As montagens de volume disponíveis para o contêiner de inicialização. - Objeto VolumeMount

Objeto ContainerPort

Name Tipo Obrigatório Valor
protocolo enumeração No O protocolo associado à porta. – TCP ou UDP
porta inteiro Yes O número da porta exposto no grupo de contêineres.

Objeto EnvironmentVariable

Name Tipo Obrigatório Valor
nome cadeia Yes O nome da variável de ambiente.
valor cadeia No O valor da variável de ambiente.
valor seguro cadeia No O valor da variável de ambiente seguro.

Objeto ResourceRequirements

Name Tipo Obrigatório Valor
requests objeto Yes As solicitações de recurso dessa instância de contêiner. - Objeto ResourceRequests
limites objeto No Os limites de recurso dessa instância de contêiner. - Objeto ResourceLimits

Objeto VolumeMount

Name Tipo Obrigatório Valor
nome cadeia Yes O nome da montagem do volume.
caminho de montagem cadeia Yes O caminho dentro do contêiner em que o volume deve ser montado. Não deve conter dois-pontos (:).
somente leitura boolean No O sinalizador que indica se a montagem do volume é somente leitura.

Objeto ContainerProbe

Name Tipo Obrigatório Valor
exec objeto No O comando de execução a ser sondado – objeto ContainerExec
httpGet objeto No As configurações de Http Get para investigação – objeto ContainerHttpGet
initialDelaySeconds inteiro No Os segundos de atraso iniciais.
periodSegundos inteiro No Os segundos do período.
failureThreshold inteiro No O limite de falha.
successThreshold inteiro No O limite de sucesso.
timeoutSeconds inteiro No Os segundos de tempo limite.

Objeto ResourceRequests

Name Tipo Obrigatório Valor
memoryInGB number Yes A solicitação de memória em GB dessa instância de contêiner.
cpu number Yes A solicitação de CPU dessa instância de contêiner.
gpu objeto No A solicitação de GPU dessa instância de contêiner. - Objeto GpuResource

Objeto ResourceLimits

Name Tipo Obrigatório Valor
memoryInGB number No O limite de memória em GB dessa instância de contêiner.
cpu number No O limite da CPU dessa instância de contêiner.
gpu objeto No O limite de GPU dessa instância de contêiner. - Objeto GpuResource

Objeto ContainerExec

Name Tipo Obrigatório Valor
comando matriz No Os comandos a serem executados dentro do contêiner. - cadeia de caracteres

Objeto ContainerHttpGet

Name Tipo Obrigatório Valor
caminho cadeia No O caminho para a investigação.
porta inteiro Yes O número da porta a ser sondado.
scheme enumeração No O esquema. - http ou https
httpCabeçalhos objeto No Os cabeçalhos HTTP incluídos na investigação. - Objeto HttpHeaders

Objeto HttpHeaders

Name Tipo Obrigatório Valor
nome cadeia No Nome do cabeçalho.
valor cadeia No Valor do cabeçalho.

Importante

As SKUs de GPU K80 e P100 estão sendo desativadas até 31 de agosto de 2023. Isso ocorre devido à desativação das VMs subjacentes usadas: Série NC e Série NCv2 Embora os SKUs V100 estejam disponíveis, ele será receomizado para usar Serviço de Kubernetes do Azure em vez disso. Os recursos de GPU não têm suporte total e não devem ser usados para cargas de trabalho de produção. Use os seguintes recursos para migrar para o AKS hoje: Como migrar para o AKS.

Objeto GpuResource

Name Tipo Obrigatório Valor
count inteiro Yes A contagem do recurso de GPU.
sku enumeração Yes A SKU do recurso de GPU. - V100

Próximas Etapas 

Confira o tutorial Implantar um grupo de vários contêineres usando um arquivo YAML.

Veja exemplos de como usar um arquivo YAML para implantar grupos de contêineres em uma rede virtual ou que montam um volume externo.