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

Este artigo aborda a sintaxe e as propriedades do arquivo YAML usado com as 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 da CLI do Azure.

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

Observação

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

Esquema

Veja abaixo o esquema do arquivo YAML, incluindo comentários para realçar as principais propriedades. A descrição das propriedades do esquema está disponível na 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
    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 propriedade

As tabelas a seguir descrevem os valores necessários para definir no esquema.

Objeto Microsoft.ContainerInstance/containerGroups

Nome Type Obrigatório Valor
name string Sim O nome do grupo de contêineres.
apiVersion enum Sim 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 string No O local do recurso.
marcas objeto Não As marcas do recurso.
identidade objeto Não A identidade do grupo de contêineres, se configurada. - Objeto ContainerGroupIdentity
properties objeto Sim Objeto ContainerGroupProperties

Objeto ContainerGroupIdentity

Nome Type Obrigatório Valor
tipo enum Não 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 todas as identidades do grupo de contêineres. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities objeto Não A lista de identidades de usuário associadas ao grupo de contêineres. As referências de chave de dicionário da identidade do usuário são IDs de recurso do Azure Resource Manager com este formato: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Objeto ContainerGroupProperties

Nome Type Obrigatório Valor
containers array Sim Os contêineres dentro do grupo de contêineres. - Objeto Container
imageRegistryCredentials array Não As credenciais do registro de imagem pelas quais o grupo de contêineres é criado. - Objeto ImageRegistryCredential
restartPolicy enum Não A política de reinicialização para todos os contêineres no grupo. - Always Sempre reiniciar– OnFailure Reiniciar em caso de falha – Never Nunca reiniciar. - Always, OnFailure, Never
ipAddress objeto Não O tipo de endereço IP do grupo de contêineres. - Objeto IpAddress
osType enum Sim O tipo de sistema operacional exigido pelos contêineres do grupo. - Windows ou Linux
volumes array Não A lista de volumes que podem ser montados pelos contêineres do grupo. - Objeto Volume
diagnóstico objeto Não As informações de diagnóstico de um grupo de contêineres. - Objeto ContainerGroupDiagnostics
subnetIds objeto Não As informações de sub-rede de um grupo de contêineres. - Objeto ContainerGroupSubnetIds
dnsConfig objeto Não As informações de configuração de DNS de um grupo de contêineres. - Objeto DnsConfiguration
sku enum Não A SKU de um grupo de contêineres, Standard ou Dedicado
encryptionProperties objeto Não As propriedades de criptografia de um grupo de contêineres. - Objeto EncryptionProperties
initContainers array Não Os contêineres de inicialização de um grupo de contêineres. - Objeto InitContainerDefinition

Objeto Container

Nome Type Obrigatório Valor
name string Sim O nome da instância de contêiner fornecido pelo usuário.
properties objeto Sim As propriedades da instância de contêiner. - Objeto ContainerProperties

Objeto ImageRegistryCredential

Nome Type Obrigatório Valor
Servidor string Sim O servidor do registro de imagem do Docker sem um protocolo como "http" ou "https".
Nome de Usuário string Não O nome de usuário do registro privado.
password string No A senha do registro privado.
identidade Cadeia de caracteres Não A ID de recurso da identidade gerenciada atribuída pelo usuário ou pelo sistema usada para autenticar.
identityUrl Cadeia de caracteres Não A URL de identidade para o registro privado.

Objeto IpAddress

Nome Type Obrigatório Valor
ports array Sim A lista de portas expostas no grupo de contêineres. - Objeto Port
tipo enum Sim Especifica se o IP é exposto à Internet pública ou à VNET privada. - Público ou privado
ip Cadeia de caracteres No O IP exposto à Internet pública.
dnsNameLabel Cadeia de caracteres No A etiqueta de nome DNS do IP.

Objeto Volume

Nome Type Obrigatório Valor
name string Sim O nome do volume.
azureFile objeto Não O volume do arquivo do Azure. - Objeto AzureFileVolume
emptyDir objeto Não O volume de diretório vazio.
segredo objeto Não O volume secreto.
gitRepo objeto Não O volume do repositório git. - Objeto GitRepoVolume

Objeto ContainerGroupDiagnostics

Nome Type Obrigatório Valor
logAnalytics objeto Não Informações da análise de logs do grupo de contêineres. - Objeto LogAnalytics

Objeto ContainerGroupSubnetIds

Nome Type Obrigatório Valor
id string Sim O identificador de uma sub-rede.
name string Não O nome da sub-rede.

Objeto DnsConfiguration

Nome Type Obrigatório Valor
nameServers array Sim Os servidores DNS do grupo de contêineres. - cadeia de caracteres
searchDomains Cadeia de caracteres No Os domínios de pesquisa de DNS para a pesquisa de nome do host no grupo de contêineres.
opções Cadeia de caracteres No As opções de DNS do grupo de contêineres.

Objeto EncryptionProperties

Nome Type Obrigatório Valor
vaultBaseUrl string Sim A URL base do cofre de chaves.
keyName string Sim O nome da chave de criptografia.
keyVersion string Sim A versão da chave de criptografia.

Objeto InitContainerDefinition

Nome Type Obrigatório Valor
name string Sim O nome do contêiner de inicialização.
properties objeto Sim As propriedades do contêiner de inicialização. - Objeto InitContainerPropertiesDefinition

Objeto ContainerProperties

Nome Type Obrigatório Valor
image string Sim O nome da imagem usada para criar a instância de contêiner.
. array Não Os comandos a serem executados na instância de contêiner no formato de execução. - cadeia de caracteres
ports array Não As portas expostas na instância de contêiner. - Objeto ContainerPort
environmentVariables array Não As variáveis de ambiente a serem definidas na instância de contêiner. - Objeto EnvironmentVariable
recursos objeto Sim Os requisitos de recurso da instância de contêiner. - Objeto ResourceRequirements
volumeMounts array Não As montagens de volume disponíveis para a instância de contêiner. - Objeto VolumeMount
livenessProbe objeto Não A investigação de atividade. - Objeto ContainerProbe
readinessProbe objeto Não A investigação de preparação. - Objeto ContainerProbe

Objeto Port

Nome Type Obrigatório Valor
protocolo enum Não O protocolo associado à porta. - TCP ou UDP
porta Número inteiro Sim O número da porta.

Objeto AzureFileVolume

Nome Type Obrigatório Valor
shareName string Sim O nome do compartilhamento de arquivo do Azure a ser montado como volume.
readOnly booleano Não O sinalizador que indica se o arquivo do Azure que foi compartilhado montado como volume é somente leitura.
storageAccountName string Sim O nome da conta de armazenamento que contém o compartilhamento de arquivo do Azure.
storageAccountKey Cadeia de caracteres No A chave de acesso da conta de armazenamento usada para acessar o compartilhamento de arquivo do Azure.

Objeto GitRepoVolume

Nome Type Obrigatório Valor
directory Cadeia de caracteres No Nome do diretório de destino. Não deve conter ".." nem começar com isso. Se "." for usado, o diretório de volume será o repositório git. Caso contrário, se especificado, o volume conterá o repositório git no subdiretório com o nome indicado.
repository string Sim URL do repositório
revisão Cadeia de caracteres No Hash de commit da revisão especificada.

Objeto LogAnalytics

Nome Type Obrigatório Valor
workspaceId string Sim A ID do workspace da análise de logs
workspaceKey string Sim A chave do workspace da análise de logs
workspaceResourceId string Não A ID do recurso do workspace da análise de logs
logType enum Não O tipo de log a ser usado. - ContainerInsights ou ContainerInstanceLogs
metadata objeto Não Metadados da análise de logs.

Objeto InitContainerPropertiesDefinition

Nome Type Obrigatório Valor
image string No A imagem do contêiner de inicialização.
. array Não O comando a ser executado no contêiner de inicialização no formato executável. - cadeia de caracteres
environmentVariables array Não As variáveis de ambiente a serem definidas no contêiner de inicialização. - Objeto EnvironmentVariable
volumeMounts array Não As montagens de volume disponíveis ao contêiner de inicialização. - Objeto VolumeMount

Objeto ContainerPort

Nome Type Obrigatório Valor
protocolo enum Não O protocolo associado à porta. - TCP ou UDP
porta Número inteiro Sim O número da porta exposta no grupo de contêineres.

Objeto EnvironmentVariable

Nome Type Obrigatório Valor
name string Sim O nome da variável de ambiente.
value string No O valor da variável de ambiente.
secureValue Cadeia de caracteres No O valor da variável de ambiente segura.

Objeto ResourceRequirements

Nome Type Obrigatório Valor
solicitações objeto Sim As solicitações de recurso desta instância de contêiner. - Objeto ResourceRequests
limites objeto Não Os limites de recurso desta instância de contêiner. - Objeto ResourceLimits

Objeto VolumeMount

Nome Type Obrigatório Valor
name string Sim O nome da montagem de volume.
mountPath string Sim O caminho no contêiner em que o volume deve ser montado. Não pode conter dois-pontos (:).
readOnly booleano Não O sinalizador que indica se a montagem de volume é somente leitura.

Objeto ContainerProbe

Nome Type Obrigatório Valor
exec objeto Não O comando de execução para a investigação – objeto ContainerExec
httpGet objeto Não As configurações de GET de HTTP para a investigação – objeto ContainerHttpGet
initialDelaySeconds Número inteiro Não Os segundos de atraso inicial.
periodSeconds Número inteiro Não Os segundos do período.
failureThreshold Número inteiro Não O limite de falhas.
successThreshold Número inteiro Não O limite de sucessos.
timeoutSeconds Número inteiro Não Os segundos do tempo limite.

Objeto ResourceRequests

Nome Type Obrigatório Valor
memoryInGB número Sim A solicitação de memória da instância de contêiner em GB.
cpu número Sim A solicitação de CPU da instância de contêiner.
gpu objeto Não A solicitação de GPU desta instância de contêiner. - Objeto GpuResource

Objeto ResourceLimits

Nome Type Obrigatório Valor
memoryInGB número Não O limite de memória da instância de contêiner em GB.
cpu número Não O limite de CPU da instância de contêiner.
gpu objeto Não O limite de GPU da instância de contêiner. - Objeto GpuResource

Objeto ContainerExec

Nome Type Obrigatório Valor
. array Não Os comandos a serem executados no contêiner. - cadeia de caracteres

Objeto ContainerHttpGet

Nome Type Obrigatório Valor
caminho string No O caminho para a investigação.
porta Número inteiro Sim O número da porta a ser investigada.
scheme enum Não O esquema. - http ou https
httpHeaders objeto Não Os cabeçalhos HTTP incluídos na investigação. - Objeto HttpHeaders

Objeto HttpHeaders

Nome Type Obrigatório Valor
name string Não Nome do cabeçalho
value string Não Valor do cabeçalho.

Importante

As SKUs de GPU K80 e P100 serão desativadas até 31 de agosto de 2023. Isto deve-se à retirada das VMs subjacentes utilizadas: Série NC e Série NCv2 Embora as SKUs V100 estejam disponíveis, recomenda-se usar o Serviço de Kubernetes do Azure. Os recursos da GPU não são totalmente suportados e não devem ser usados para cargas de trabalho de produção. Use os seguintes recursos para migrar para o AKS hoje mesmo: Como migrar para o AKS.

Objeto GpuResource

Nome Type Obrigatório Valor
count Número inteiro Sim A contagem do recurso de GPU.
sku enum Sim O SKU do recurso de GPU. - V100

Próximas etapas

Confira o tutorial Implantar um grupo com 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.