Delen via


YAML-verwijzing: Azure Container Instances

In dit artikel worden de syntaxis en eigenschappen voor het YAML-bestand beschreven dat wordt ondersteund door Azure Container Instances om een containergroep te configureren. Gebruik een YAML-bestand om de groepsconfiguratie in te voeren voor 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 de REST API-versie 2021-10-01van Azure Container Instances.

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

Name Type Vereist Weergegeven als
naam tekenreeks Ja De naam van de containergroep.
apiVersion enum Ja 2021-10-01 (nieuwste), 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
locatie tekenreeks Nee De resourcelocatie.
tags object Nee De resourcetags.
identity object Nee De identiteit van de containergroep, indien geconfigureerd. - ContainerGroupIdentity-object
properties object Ja ContainerGroupProperties-object

ContainerGroupIdentity-object

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

ContainerGroupProperties-object

Name Type Vereist Weergegeven als
containers matrix Ja De containers binnen de containergroep. - Containerobject
imageRegistryCredentials matrix Nee De registerreferenties van de installatiekopieën waarop de containergroep is gemaakt. - ImageRegistryCredential-object
restartPolicy enum Nee Start het beleid opnieuw op voor alle containers in de containergroep. - Always Altijd opnieuw opstarten- OnFailure Opnieuw opstarten bij fout- Never Nooit opnieuw opstarten. - Altijd, OnFailure, Nooit
ipAddress object Nee Het IP-adrestype van de containergroep. - IpAddress-object
osType enum Ja Het type besturingssysteem dat is vereist voor de containers in de containergroep. - Windows of Linux
volumes matrix Nee De lijst met volumes die containers in deze containergroep kunnen koppelen. - Volumeobject
diagnostische gegevens object Nee De diagnostische gegevens voor een containergroep. - ContainerGroupDiagnostics-object
subnet-id's object Nee De subnetgegevens voor een containergroep. - ContainerGroupSubnetIds-object
dnsConfig object Nee De DNS-configuratiegegevens voor een containergroep. - DnsConfiguration-object
sku enum Nee De SKU voor een containergroep - Standard of Dedicated
encryptionProperties object Nee De versleutelingseigenschappen voor een containergroep. - EncryptionProperties-object
initContainers matrix Nee De init-containers voor een containergroep. - InitContainerDefinition-object

Containerobject

Name Type Vereist Weergegeven als
naam tekenreeks Ja De door de gebruiker opgegeven naam van het containerexemplaren.
properties object Ja De eigenschappen van de containerinstantie. - ContainerProperties-object

ImageRegistryCredential-object

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

IpAddress-object

Name Type Vereist Weergegeven als
poorten matrix Ja De lijst met poorten die beschikbaar zijn voor de containergroep. - Poortobject
type enum Ja Hiermee geeft u op of het IP-adres beschikbaar is voor het openbare internet of het particuliere virtuele netwerk. - Openbaar of Privé
IP tekenreeks Nee Het IP-adres dat beschikbaar is voor het openbare internet.
dnsNameLabel tekenreeks Nee Het DNS-naamlabel voor het IP-adres.

Volumeobject

Name Type Vereist Weergegeven als
naam tekenreeks Ja De naam van het volume.
azureFile object Nee Het Azure File-volume. - AzureFileVolume-object
emptyDir object Nee Het lege mapvolume.
geheim object Nee Het geheime volume.
gitRepo object Nee Het git-opslagplaatsvolume. - GitRepoVolume-object

ContainerGroupDiagnostics-object

Name Type Vereist Weergegeven als
logAnalytics object Nee Log Analytics-gegevens voor containergroepen. - LogAnalytics-object

ContainerGroupSubnetIds-object

Name Type Vereist Weergegeven als
id string Ja De id voor een subnet.
naam string Nee De naam van het subnet.

DnsConfiguration-object

Name Type Vereist Weergegeven als
nameServers matrix Ja De DNS-servers voor de containergroep. -snaar
searchDomains tekenreeks Nee De DNS-zoekdomeinen voor het opzoeken van hostnamen in de containergroep.
Opties tekenreeks Nee De DNS-opties voor de containergroep.

EncryptionProperties-object

Name Type Vereist Weergegeven als
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

Name Type Vereist Weergegeven als
naam tekenreeks Ja De naam voor de init-container.
properties object Ja De eigenschappen voor de init-container. - InitContainerPropertiesDefinition-object

ContainerProperties-object

Name Type Vereist Weergegeven als
image tekenreeks Ja De naam van de installatiekopieën die worden gebruikt om de containerinstantie te maken.
opdracht matrix Nee De opdrachten die moeten worden uitgevoerd in het containerexemplaren in exec-formulier. -snaar
poorten matrix Nee De weergegeven poorten op het containerexemplaren. - ContainerPort-object
environmentVariables matrix Nee De omgevingsvariabelen die moeten worden ingesteld in de containerinstantie. - EnvironmentVariable-object
resources object Ja De resourcevereisten van het containerexemplaren. - ResourceRequirements-object
volumeMounts matrix Nee Het volume wordt gekoppeld aan de containerinstantie. - VolumeMount-object
livenessProbe object Nee De levendheidstest. - ContainerProbe-object
readinessProbe object Nee De gereedheidstest. - ContainerProbe-object

Poortobject

Name Type Vereist Weergegeven als
protocol enum Nee Het protocol dat is gekoppeld aan de poort. - TCP of UDP
poort geheel getal Ja het poortnummer.

AzureFileVolume-object

Name Type Vereist Weergegeven als
shareName tekenreeks Ja De naam van de Azure-bestandsshare die als volume moet worden gekoppeld.
readOnly boolean Nee De vlag die aangeeft of het Gedeelde Azure-bestand als een volume alleen-lezen is.
storageAccountName tekenreeks Ja De naam van het opslagaccount dat de Azure-bestandsshare bevat.
storageAccountKey tekenreeks Nee De toegangssleutel voor het opslagaccount die wordt gebruikt voor toegang tot de Azure-bestandsshare.

GitRepoVolume-object

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

LogAnalytics-object

Name Type Vereist Weergegeven als
workspaceId tekenreeks Ja De werkruimte-id voor Log Analytics
workspaceKey tekenreeks Ja De werkruimtesleutel voor Log Analytics
workspaceResourceId tekenreeks Nee De resource-id van de werkruimte voor Log Analytics
logType enum Nee Het logboektype dat moet worden gebruikt. - ContainerInsights of ContainerInstanceLogs
metagegevens object Nee Metagegevens voor log analytics.

InitContainerPropertiesDefinition-object

Name Type Vereist Weergegeven als
image tekenreeks Nee De installatiekopieën van de init-container.
opdracht matrix Nee De opdracht die moet worden uitgevoerd in de init-container in exec-formulier. -snaar
environmentVariables matrix Nee De omgevingsvariabelen die moeten worden ingesteld in de init-container. - EnvironmentVariable-object
volumeMounts matrix Nee Het volume wordt gekoppeld aan de init-container. - VolumeMount-object

ContainerPort-object

Name Type Vereist Weergegeven als
protocol enum Nee Het protocol dat is gekoppeld aan de poort. - TCP of UDP
poort geheel getal Ja Het poortnummer dat wordt weergegeven in de containergroep.

EnvironmentVariable-object

Name Type Vereist Weergegeven als
naam tekenreeks Ja De naam van de omgevingsvariabele.
waarde tekenreeks Nee De waarde van de omgevingsvariabele.
secureValue tekenreeks Nee De waarde van de beveiligde omgevingsvariabele.

ResourceRequirements-object

Name Type Vereist Weergegeven als
requests object Ja De resourceaanvragen van dit containerexemplaren. - ResourceRequests-object
grens object Nee De resourcelimieten van deze containerinstantie. - ResourceLimits-object

VolumeMount-object

Name Type Vereist Weergegeven als
naam tekenreeks Ja De naam van de volumekoppeling.
mountPath tekenreeks Ja Het pad in de container waar het volume moet worden gekoppeld. Mag geen dubbele punt (:)) bevatten.
readOnly boolean Nee De vlag die aangeeft of de volumekoppeling alleen-lezen is.

ContainerProbe-object

Name Type Vereist Weergegeven als
Exec object Nee De opdracht voor uitvoering om te testen - ContainerExec-object
httpGet object Nee De Http Get-instellingen om te testen - ContainerHttpGet-object
initialDelaySeconds geheel getal Nee De eerste vertragings seconden.
periodSeconden geheel getal Nee De seconden van de periode.
failureThreshold geheel getal Nee De drempelwaarde voor fouten.
successThreshold geheel getal Nee De slagingsdrempel.
time-outSeconden geheel getal Nee De time-out seconden.

ResourceRequests-object

Name Type Vereist Weergegeven als
memoryInGB Nummer Ja De geheugenaanvraag in GB van deze containerinstantie.
cpu Nummer Ja De CPU-aanvraag van deze containerinstantie.
gpu object Nee De GPU-aanvraag van deze containerinstantie. - GpuResource-object

ResourceLimits-object

Name Type Vereist Weergegeven als
memoryInGB Nummer Nee De geheugenlimiet in GB van deze containerinstantie.
cpu Nummer Nee De CPU-limiet van deze containerinstantie.
gpu object Nee De GPU-limiet van deze containerinstantie. - GpuResource-object

ContainerExec-object

Name Type Vereist Weergegeven als
opdracht matrix Nee De opdrachten die in de container moeten worden uitgevoerd. -snaar

ContainerHttpGet-object

Name Type Vereist Weergegeven als
path tekenreeks Nee Het pad om te testen.
poort geheel getal Ja Het poortnummer dat moet worden uitgevoerd.
scheme enum Nee Het schema. - http of https
httpHeaders object Nee De HTTP-headers die zijn opgenomen in de test. - HttpHeaders-object

HttpHeaders-object

Name Type Vereist Weergegeven als
naam string Nee Naam van de koptekst.
waarde tekenreeks Nee Waarde van de koptekst.

Belangrijk

K80- en P100 GPU-SKU's worden op 31 augustus 2023 buiten gebruik gesteld. Dit is het gevolg van de buitengebruikstelling van de onderliggende VM's die worden gebruikt: NC-serie en NCv2-serie , hoewel V100-SKU's beschikbaar zijn, wordt het aanbevolen azure Kubernetes Service te gebruiken. GPU-resources worden niet volledig ondersteund en mogen niet worden gebruikt voor productieworkloads. Gebruik de volgende resources om vandaag naar AKS te migreren: Migreren naar AKS.

GpuResource-object

Name Type Vereist Weergegeven als
aantal geheel getal Ja Het aantal GPU-resources.
sku enum Ja De SKU van de GPU-resource. - V100

Volgende stappen

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

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