YAML-verwijzing: Azure Container Instances

In dit artikel worden de syntaxis en eigenschappen besproken voor het YAML-bestand dat wordt ondersteund door Azure Container Instances om een containergroep te configureren. Gebruik een YAML-bestand om de groepsconfiguratie in te voeren in de opdracht az container create in de Azure CLI.

Een YAML-bestand is een handige manier om een containergroep te configureren voor reproduceerbare implementaties. Het is een beknopt alternatief voor het gebruik van een Resource Manager sjabloon of de Azure Container Instances SDK's om een containergroep te maken of bij te werken.

Notitie

Deze verwijzing is van toepassing op YAML-bestanden voor Azure Container Instances REST API-versie 2021-10-01.

Schema

Het schema voor het YAML-bestand volgt, inclusief opmerkingen om belangrijke eigenschappen te markeren. Zie de sectie Eigenschapswaarden voor een beschrijving van de eigenschappen in dit schema.

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

Eigenschapswaarden

In de volgende tabellen worden de waarden beschreven die u in het schema moet instellen.

Microsoft.ContainerInstance/containerGroups-object

Naam Type Vereist Waarde
naam tekenreeks Ja De naam van de containergroep.
apiVersion Enum Yes 2021-10-01 (laatste), 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 tekenreeks No De resourcelocatie.
tags object No De resourcetags.
identity object No De identiteit van de containergroep, indien geconfigureerd. - ContainerGroupIdentity-object
properties object Yes ContainerGroupProperties-object

ContainerGroupIdentity-object

Naam Type Vereist Waarde
type Enum No Het type identiteit dat wordt gebruikt voor de containergroep. Het type 'SystemAssigned, UserAssigned' omvat zowel een impliciet gemaakte identiteit als een set door de gebruiker toegewezen identiteiten. Met het type 'Geen' worden alle identiteiten uit de containergroep verwijderd. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object No De lijst met gebruikersidentiteiten die zijn gekoppeld aan de containergroep. De sleutelverwijzingen voor de gebruikersidentiteitswoordenlijst zijn Azure Resource Manager resource-id's in de vorm: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}.

ContainerGroupProperties-object

Naam Type Vereist Waarde
containers matrix Yes De containers binnen de containergroep. - Containerobject
imageRegistryCredentials matrix No De registerreferenties van de installatiekopieën waarmee de containergroep wordt gemaakt. - ImageRegistryCredential-object
restartPolicy Enum No Beleid voor alle containers binnen de containergroep opnieuw opstarten. - Always Altijd opnieuw opstarten- OnFailure Opnieuw opstarten bij fout- Never Nooit opnieuw opstarten. - Altijd, OnFailure, Nooit
ipAddress object No Het IP-adrestype van de containergroep. - IpAddress-object
osType Enum Yes Het type besturingssysteem dat is vereist voor de containers in de containergroep. - Windows of Linux
volumes matrix No De lijst met volumes die kunnen worden gekoppeld door containers in deze containergroep. - Volumeobject
diagnostische gegevens object No De diagnostische gegevens voor een containergroep. - ContainerGroupDiagnostics-object
subnetIds object No De subnetgegevens voor een containergroep. - ContainerGroupSubnetIds-object
dnsConfig object No De DNS-configuratiegegevens voor een containergroep. - DnsConfiguration-object
sku Enum No De SKU voor een containergroep - Standard of Dedicated
encryptionProperties object No De versleutelingseigenschappen voor een containergroep. - EncryptionProperties-object
initContainers matrix No De init-containers voor een containergroep. - InitContainerDefinition-object

Containerobject

Naam Type Vereist Waarde
naam tekenreeks Ja De door de gebruiker opgegeven naam van het containerexemplaren.
properties object Yes De eigenschappen van het containerexemplaren. - ContainerProperties-object

ImageRegistryCredential-object

Naam Type Vereist Waarde
server tekenreeks Ja De Docker-installatiekopieënregisterserver zonder een protocol zoals 'http' en 'https'.
gebruikersnaam tekenreeks No De gebruikersnaam voor het privéregister.
wachtwoord tekenreeks No Het wachtwoord voor het privéregister.
identity tekenreeks No De resource-id van de door de gebruiker of het systeem toegewezen beheerde identiteit die wordt gebruikt voor verificatie.
identityUrl tekenreeks No De identiteits-URL voor het privéregister.

IpAddress-object

Naam Type Vereist Waarde
ports matrix Yes De lijst met poorten die worden weergegeven in de containergroep. - Poortobject
type Enum Yes Hiermee geeft u op of het IP-adres wordt blootgesteld aan het openbare internet of privé-VNET. - Openbaar of Privé
IP tekenreeks No Het IP-adres dat wordt weergegeven op het openbare internet.
dnsNameLabel tekenreeks No Het DNS-naamlabel voor het IP-adres.

Volumeobject

Naam Type Vereist Waarde
naam tekenreeks Ja De naam van het volume.
azureFile object No Het Azure File-volume. - AzureFileVolume-object
emptyDir object No Het lege mapvolume.
geheim object No Het geheime volume.
gitRepo object No Het git-opslagplaatsvolume. - GitRepoVolume-object

ContainerGroupDiagnostics-object

Naam Type Vereist Waarde
logAnalytics object No Logboekanalysegegevens van containergroepen. - LogAnalytics-object

ContainerGroupSubnetIds-object

Naam Type Vereist Waarde
id tekenreeks Ja De id voor een subnet.
naam tekenreeks No De naam van het subnet.

DnsConfiguration-object

Naam Type Vereist Waarde
Nameservers matrix Yes De DNS-servers voor de containergroep. -Tekenreeks
searchDomains tekenreeks No De DNS-zoekdomeinen voor het opzoeken van hostnamen in de containergroep.
opties tekenreeks No De DNS-opties voor de containergroep.

EncryptionProperties-object

Naam Type Vereist Waarde
vaultBaseUrl tekenreeks Ja De basis-URL van keyvault.
keyName tekenreeks Ja De naam van de versleutelingssleutel.
keyVersion tekenreeks Ja De versie van de versleutelingssleutel.

InitContainerDefinition-object

Naam Type Vereist Waarde
naam tekenreeks Ja De naam voor de init-container.
properties object Yes De eigenschappen voor de init-container. - InitContainerPropertiesDefinition-object

ContainerProperties-object

Naam Type Vereist Waarde
image tekenreeks Ja De naam van de installatiekopieën die worden gebruikt om het containerexemplaren te maken.
command matrix No De opdrachten die in exec-vorm moeten worden uitgevoerd in het containerexemplaren. -Tekenreeks
ports matrix No De weergegeven poorten op het containerexemplaren. - ContainerPort-object
environmentVariables matrix No De omgevingsvariabelen die moeten worden ingesteld in het containerexemplaren. - EnvironmentVariable-object
resources object Yes De resourcevereisten van het containerexemplaren. - ResourceRequirements-object
volumeMounts matrix No Het volume is beschikbaar voor het containerexemplaren. - VolumeMount-object
livenessProbe object No De levendigheidstest. - ContainerProbe-object
readinessProbe object No De gereedheidstest. - ContainerProbe-object

Poortobject

Naam Type Vereist Waarde
protocol Enum No Het protocol dat is gekoppeld aan de poort. - TCP of UDP
poort geheel getal Yes het poortnummer.

AzureFileVolume-object

Naam Type Vereist Waarde
Sharenaam tekenreeks Ja De naam van de Azure-bestandsshare die moet worden gekoppeld als een volume.
Readonly booleaans No De vlag die aangeeft of de gedeelde Azure File die als volume is gekoppeld, alleen-lezen is.
storageAccountName tekenreeks Ja De naam van het opslagaccount dat de Azure-bestandsshare bevat.
storageAccountKey tekenreeks No De toegangssleutel voor het opslagaccount die wordt gebruikt voor toegang tot de Azure-bestandsshare.

GitRepoVolume-object

Naam Type Vereist Waarde
map tekenreeks No Naam van doelmap. Mag niet bevatten of beginnen met '..'. Als '.' wordt opgegeven, wordt de volumemap de Git-opslagplaats. Anders bevat het volume, indien opgegeven, de Git-opslagplaats in de submap met de opgegeven naam.
repository tekenreeks Ja URL van opslagplaats
revision tekenreeks No Hash doorvoeren voor de opgegeven revisie.

LogAnalytics-object

Naam Type Vereist Waarde
workspaceId tekenreeks Ja De werkruimte-id voor Log Analytics
workspaceKey tekenreeks Ja De werkruimtesleutel voor Log Analytics
workspaceResourceId tekenreeks No De resource-id van de werkruimte voor Log Analytics
logType Enum No Het logboektype dat moet worden gebruikt. - ContainerInsights of ContainerInstanceLogs
metagegevens object No Metagegevens voor log analytics.

InitContainerPropertiesDefinition-object

Naam Type Vereist Waarde
image tekenreeks No De installatiekopieën van de init-container.
command matrix No De opdracht die moet worden uitgevoerd in de init-container in exec-vorm. -Tekenreeks
environmentVariables matrix No De omgevingsvariabelen die moeten worden ingesteld in de init-container. - EnvironmentVariable-object
volumeMounts matrix No De volumekoppelingen die beschikbaar zijn voor de init-container. - VolumeMount-object

ContainerPort-object

Naam Type Vereist Waarde
protocol Enum No Het protocol dat is gekoppeld aan de poort. - TCP of UDP
poort geheel getal Yes Het poortnummer dat binnen de containergroep wordt weergegeven.

EnvironmentVariable-object

Naam Type Vereist Waarde
naam tekenreeks Ja De naam van de omgevingsvariabele.
waarde tekenreeks No De waarde van de omgevingsvariabele.
secureValue tekenreeks No De waarde van de beveiligde omgevingsvariabele.

ResourceRequirements-object

Naam Type Vereist Waarde
requests object Yes De resourceaanvragen van dit containerexemplaar. - ResourceRequests-object
Grenzen object No De resourcelimieten van dit containerexemplaar. - ResourceLimits-object

VolumeMount-object

Naam Type Vereist Waarde
naam tekenreeks Ja De naam van de volumekoppeling.
mountPath tekenreeks Ja Het pad binnen de container waar het volume moet worden gekoppeld. Mag geen dubbele punt (:).
Readonly booleaans No De vlag die aangeeft of de volumekoppeling alleen-lezen is.

ContainerProbe-object

Naam Type Vereist Waarde
Uitvoerend object No De uitvoeringsopdracht om te testen - ContainerExec-object
httpGet object No De http Get-instellingen om te testen - ContainerHttpGet-object
initialDelaySeconds geheel getal No De eerste vertragingsseconden.
periodSeconden geheel getal No De seconden van de periode.
failureThreshold geheel getal No De drempelwaarde voor fouten.
successThreshold geheel getal No De drempelwaarde voor succes.
timeoutSeconds geheel getal No De time-outseconden.

ResourceRequests-object

Naam Type Vereist Waarde
memoryInGB getal Yes De geheugenaanvraag in GB van dit containerexemplaar.
Cpu getal Yes De CPU-aanvraag van dit containerexemplaar.
Gpu object No De GPU-aanvraag van dit containerexemplaar. - GpuResource-object

ResourceLimits-object

Naam Type Vereist Waarde
memoryInGB getal No De geheugenlimiet in GB van dit containerexemplaar.
Cpu getal No De CPU-limiet van dit containerexemplaar.
Gpu object No De GPU-limiet van dit containerexemplaar. - GpuResource-object

ContainerExec-object

Naam Type Vereist Waarde
command matrix No De opdrachten die moeten worden uitgevoerd in de container. -Tekenreeks

ContainerHttpGet-object

Naam Type Vereist Waarde
leertraject tekenreeks No Het pad om te testen.
poort geheel getal Yes Het poortnummer om te testen.
schema Enum No Het schema. - http of https
httpHeaders object No De HTTP-headers die zijn opgenomen in de test. - HttpHeaders-object

HttpHeaders-object

Naam Type Vereist Waarde
naam tekenreeks No Naam van de header.
waarde tekenreeks No Waarde van de header.

Belangrijk

K80- en P100 GPU-SKU's worden op 31 augustus 2023 buiten gebruik gesteld. Dit komt doordat de onderliggende VM's die worden gebruikt buiten gebruik worden gesteld: NC-serie en NCv2-serie Hoewel V100-SKU's beschikbaar zijn, wordt aanbevolen om in plaats daarvan Azure Kubernetes Service te gebruiken. GPU-resources worden niet volledig ondersteund en mogen niet worden gebruikt voor productieworkloads. Gebruik de volgende resources om vandaag nog naar AKS te migreren: Migreren naar AKS.

GpuResource-object

Naam Type Vereist Waarde
count geheel getal Yes Het aantal GPU-resources.
sku Enum Yes De SKU van de GPU-resource. - V100

Volgende stappen

Zie de zelfstudie Een groep met meerdere containers implementeren met behulp van een YAML-bestand.

Bekijk voorbeelden van het gebruik van een YAML-bestand voor het implementeren van containergroepen in een virtueel netwerk of het koppelen van een extern volume.