Informazioni di riferimento sul linguaggio YAML: Istanze di Azure Container

Questo articolo illustra la sintassi e le proprietà per il file YAML supportato da Istanze di Azure Container per configurare un gruppo di contenitori. Usare un file YAML per immettere la configurazione del gruppo al comando az container create nell'interfaccia della riga di comando di Azure.

Un file YAML è un modo pratico per configurare un gruppo di contenitori per le distribuzioni riproducibili. Si tratta di un'alternativa concisa all'uso di un modello di Resource Manager o agli SDK Istanze di Azure Container per creare o aggiornare un gruppo di contenitori.

Nota

Questo riferimento si applica ai file YAML per Istanze di Azure Container versione 2021-10-01dell'API REST .

Schema

Lo schema per il file YAML segue, inclusi i commenti per evidenziare le proprietà chiave. Per una descrizione delle proprietà in questo schema, vedere la sezione Valori delle proprietà.

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

Valori delle proprietà

Nelle tabelle seguenti vengono descritti i valori che è necessario impostare nello schema.

Oggetto Microsoft.ContainerInstance/containerGroups

Nome Digita Obbligatorio valore
name string Nome del gruppo di contenitori.
apiVersion enum 2021-10-01 (più 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
location string No Posizione della risorsa.
tag object No Tag di risorsa.
identity object No Identità del gruppo di contenitori, se configurata. - Oggetto ContainerGroupIdentity
proprietà oggetto Oggetto ContainerGroupProperties

Oggetto ContainerGroupIdentity

Nome Digita Obbligatorio valore
type enum No Tipo di identità usato per il gruppo di contenitori. Il tipo 'SystemAssigned, UserAssigned' include sia un'identità creata in modo implicito che un set di identità assegnate dall'utente. Il tipo 'None' rimuove tutte le identità dal gruppo di contenitori. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object No Elenco di identità utente associate al gruppo di contenitori. I riferimenti alla chiave del dizionario delle identità utente sono ID risorsa di Azure Resource Manager nel formato :'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Oggetto ContainerGroupProperties

Nome Digita Obbligatorio valore
containers array Contenitori all'interno del gruppo di contenitori. - Oggetto Contenitore
imageRegistryCredentials matrice No Credenziali del Registro immagini da cui viene creato il gruppo di contenitori. - Oggetto ImageRegistryCredential
restartPolicy enum No Criteri di riavvio per tutti i contenitori all'interno del gruppo di contenitori. - Always Riavvio sempre- OnFailure Riavvio in caso di errore- Never Non riavviare mai. - Always, OnFailure, Never
ipAddress object No Tipo di indirizzo IP del gruppo di contenitori. - Oggetto IpAddress
osType enum Tipo di sistema operativo richiesto dai contenitori nel gruppo di contenitori. - Windows o Linux
volumes matrice No Elenco di volumi che possono essere montati in questo gruppo di contenitori. - Oggetto Volume
diagnostica object No Informazioni di diagnostica per un gruppo di contenitori. - Oggetto ContainerGroupDiagnostics
subnetId object No Informazioni sulla subnet per un gruppo di contenitori. - Oggetto ContainerGroupSubnetIds
dnsConfig object No Informazioni di configurazione DNS per un gruppo di contenitori. - Oggetto DnsConfiguration
sku enum No SKU per un gruppo di contenitori - Standard o Dedicato
encryptionProperties object No Proprietà di crittografia per un gruppo di contenitori. - Oggetto EncryptionProperties
initContainers matrice No Contenitori init per un gruppo di contenitori. - Oggetto InitContainerDefinition

Oggetto Contenitore

Nome Digita Obbligatorio valore
name string Nome fornito dall'utente dell'istanza del contenitore.
proprietà oggetto Proprietà dell'istanza del contenitore. - Oggetto ContainerProperties

Oggetto ImageRegistryCredential

Nome Digita Obbligatorio valore
server string Il server del Registro di sistema delle immagini Docker senza un protocollo, ad esempio "http" e "https".
username string No Nome utente per il Registro di sistema privato.
password string No Password per il Registro di sistema privato.
identity string No ID risorsa dell'identità gestita assegnata dall'utente o dal sistema usata per l'autenticazione.
identityUrl string No URL di identità per il Registro di sistema privato.

Oggetto IpAddress

Nome Digita Obbligatorio valore
porte array Elenco di porte esposte nel gruppo di contenitori. - Oggetto Port
type enum Specifica se l'indirizzo IP è esposto alla rete Internet pubblica o privata. - Pubblico o Privato
ip string No Ip esposto alla rete Internet pubblica.
dnsNameLabel string No Etichetta del nome DNS per l'INDIRIZZO IP.

Oggetto Volume

Nome Digita Obbligatorio valore
name string Il nome del volume.
azureFile object No Volume file di Azure. - Oggetto AzureFileVolume
emptyDir object No Volume di directory vuoto.
secret object No Volume segreto.
gitRepo object No Volume del repository Git. - Oggetto GitRepoVolume

Oggetto ContainerGroupDiagnostics

Nome Digita Obbligatorio valore
logAnalytics object No Informazioni di Log Analytics del gruppo di contenitori. - Oggetto LogAnalytics

Oggetto ContainerGroupSubnetIds

Nome Digita Obbligatorio valore
id string Identificatore di una subnet.
name string No Nome della subnet.

Oggetto DnsConfiguration

Nome Digita Obbligatorio valore
nameServers array Server DNS per il gruppo di contenitori. -corda
searchDomains string No Domini di ricerca DNS per la ricerca del nome host nel gruppo di contenitori.
opzioni string No Opzioni DNS per il gruppo di contenitori.

Oggetto EncryptionProperties

Nome Digita Obbligatorio valore
vaultBaseUrl string URL di base dell'insieme di credenziali delle chiavi.
keyName string Nome della chiave di crittografia.
keyVersion string Versione della chiave di crittografia.

Oggetto InitContainerDefinition

Nome Digita Obbligatorio valore
name string Nome del contenitore init.
proprietà oggetto Proprietà per il contenitore init. - Oggetto InitContainerPropertiesDefinition

Oggetto ContainerProperties

Nome Digita Obbligatorio valore
image string Nome dell'immagine usata per creare l'istanza del contenitore.
Comando matrice No Comandi da eseguire all'interno dell'istanza del contenitore nel formato exec. -corda
porte matrice No Porte esposte nell'istanza del contenitore. - Oggetto ContainerPort
environmentVariables matrice No Variabili di ambiente da impostare nell'istanza del contenitore. - Oggetto EnvironmentVariable
risorse oggetto Requisiti delle risorse dell'istanza del contenitore. - Oggetto ResourceRequirements
volumeMounts matrice No Il volume viene montato per l'istanza del contenitore. - Oggetto VolumeMount
livenessProbe object No Probe di attività. - Oggetto ContainerProbe
readinessProbe object No Probe di idoneità. - Oggetto ContainerProbe

Oggetto Port

Nome Digita Obbligatorio valore
protocollo enum No Protocollo associato alla porta. - TCP o UDP
port integer Il numero della porta.

Oggetto AzureFileVolume

Nome Digita Obbligatorio valore
shareName string Nome della condivisione file di Azure da montare come volume.
readOnly boolean No Flag che indica se il file di Azure condiviso come volume è di sola lettura.
storageAccountName string Nome dell'account di archiviazione che contiene la condivisione file di Azure.
storageAccountKey string No Chiave di accesso dell'account di archiviazione usata per accedere alla condivisione file di Azure.

Oggetto GitRepoVolume

Nome Digita Obbligatorio valore
directory string No Nome della directory di destinazione. Non deve contenere o iniziare con '..'. Se viene specificato '.', la directory del volume è il repository Git. In caso contrario, se specificato, il volume contiene il repository Git nella sottodirectory con il nome specificato.
repository string URL del repository
revision string No Eseguire il commit dell'hash per la revisione specificata.

Oggetto LogAnalytics

Nome Digita Obbligatorio valore
workspaceId string ID dell'area di lavoro per Log Analytics
workspaceKey string Chiave dell'area di lavoro per Log Analytics
workspaceResourceId string No ID risorsa dell'area di lavoro per Log Analytics
logType enum No Tipo di log da utilizzare. - ContainerInsights o ContainerInstanceLogs
metadata object No Metadati per Log Analytics.

Oggetto InitContainerPropertiesDefinition

Nome Digita Obbligatorio valore
image string No Immagine del contenitore init.
Comando matrice No Comando da eseguire all'interno del contenitore init nel formato exec. -corda
environmentVariables matrice No Variabili di ambiente da impostare nel contenitore init. - Oggetto EnvironmentVariable
volumeMounts matrice No Il volume monta il contenitore init. - Oggetto VolumeMount

Oggetto ContainerPort

Nome Digita Obbligatorio valore
protocollo enum No Protocollo associato alla porta. - TCP o UDP
port integer Numero di porta esposto all'interno del gruppo di contenitori.

Oggetto EnvironmentVariable

Nome Digita Obbligatorio valore
name string Nome della variabile di ambiente.
value string No Valore della variabile di ambiente.
secureValue string No Valore della variabile di ambiente sicura.

Oggetto ResourceRequirements

Nome Digita Obbligatorio valore
requests oggetto Richieste di risorse di questa istanza del contenitore. - Oggetto ResourceRequests
limiti object No Limiti delle risorse di questa istanza del contenitore. - Oggetto ResourceLimits

Oggetto VolumeMount

Nome Digita Obbligatorio valore
name string Nome del montaggio del volume.
mountPath string Percorso all'interno del contenitore in cui deve essere montato il volume. Non deve contenere due punti (:).
readOnly boolean No Flag che indica se il montaggio del volume è di sola lettura.

Oggetto ContainerProbe

Nome Digita Obbligatorio valore
exec object No Comando di esecuzione da probe - Oggetto ContainerExec
httpGet object No Impostazioni Http Get per il probe - Oggetto ContainerHttpGet
initialDelaySeconds integer No Secondi di ritardo iniziali.
periodSeconds integer No Periodo di secondi.
failureThreshold integer No Soglia di errore.
successThreshold integer No Soglia di esito positivo.
timeoutSeconds integer No Secondi di timeout.

Oggetto ResourceRequests

Nome Digita Obbligatorio valore
memoryInGB number Richiesta di memoria in GB di questa istanza del contenitore.
cpu number Richiesta CPU di questa istanza del contenitore.
gpu object No Richiesta GPU di questa istanza del contenitore. - Oggetto GpuResource

Oggetto ResourceLimits

Nome Digita Obbligatorio valore
memoryInGB number No Limite di memoria in GB di questa istanza del contenitore.
cpu number No Limite della CPU di questa istanza del contenitore.
gpu object No Limite GPU di questa istanza del contenitore. - Oggetto GpuResource

Oggetto ContainerExec

Nome Digita Obbligatorio valore
Comando matrice No Comandi da eseguire all'interno del contenitore. -corda

Oggetto ContainerHttpGet

Nome Digita Obbligatorio valore
path string No Percorso del probe.
port integer Numero di porta da sondare.
scheme enum No Schema. - http o https
httpHeaders object No Intestazioni HTTP incluse nel probe. - Oggetto HttpHeaders

Oggetto HttpHeaders

Nome Digita Obbligatorio valore
name string No Nome dell'intestazione.
value string No Valore dell'intestazione.

Importante

Gli SKU GPU K80 e P100 vengono ritirati entro il 31 agosto 2023. Ciò è dovuto al ritiro delle macchine virtuali sottostanti usate: serie NC e serie NCv2 Pur essendo disponibili SKU V100, è consigliabile usare il Servizio Azure Kubernetes. Le risorse GPU non sono completamente supportate e non devono essere usate per i carichi di lavoro di produzione. Usare le risorse seguenti per eseguire la migrazione al Servizio Azure Kubernetes oggi stesso: Come eseguire la migrazione al Servizio Azure Kubernetes.

Oggetto GpuResource

Nome Digita Obbligatorio valore
numero integer Conteggio della risorsa GPU.
sku enum SKU della risorsa GPU. - V100

Passaggi successivi

Vedere l'esercitazione Distribuire un gruppo multi-contenitore usando un file YAML.

Vedere esempi di uso di un file YAML per distribuire i gruppi di contenitori in una rete virtuale o per montare un volume esterno.