Referenční informace k YAML: Azure Container Instances

Tento článek popisuje syntaxi a vlastnosti souboru YAML podporovaného Azure Container Instances ke konfiguraci skupiny kontejnerů. Pomocí souboru YAML zadejte konfiguraci skupiny do příkazu az container create v Azure CLI.

Soubor YAML je pohodlný způsob konfigurace skupiny kontejnerů pro reprodukovatelná nasazení. Je to stručná alternativa k vytvoření nebo aktualizaci skupiny kontejnerů pomocí šablony Resource Manager nebo sad SDK Azure Container Instances.

Poznámka

Tento odkaz se týká souborů YAML pro Azure Container Instances verze 2021-10-01rozhraní REST API .

Schéma

Následuje schéma pro soubor YAML, včetně komentářů ke zvýraznění klíčových vlastností. Popis vlastností v tomto schématu najdete v části Hodnoty vlastností .

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

Hodnoty vlastností

Následující tabulky popisují hodnoty, které je potřeba nastavit ve schématu.

Objekt Microsoft.ContainerInstance/containerGroups

Název Typ Vyžadováno Hodnota
name řetězec Yes Název skupiny kontejnerů.
apiVersion enum Yes 2021-10-01 (nejnovější), 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 řetězec No Umístění prostředku.
tags object No Značky prostředků.
identity object No Identita skupiny kontejnerů, pokud je nakonfigurovaná. - Objekt ContainerGroupIdentity
properties object Yes Objekt ContainerGroupProperties

Objekt ContainerGroupIdentity

Název Typ Vyžadováno Hodnota
typ enum No Typ identity použité pro skupinu kontejnerů. Typ SystemAssigned, UserAssigned zahrnuje implicitně vytvořenou identitu i sadu identit přiřazených uživatelem. Typ None odebere ze skupiny kontejnerů všechny identity. – SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentity object No Seznam identit uživatelů přidružených ke skupině kontejnerů. Odkazy na klíče slovníku identit uživatelů budou ID prostředků Azure Resource Manager ve formátu /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}.

Objekt ContainerGroupProperties

Název Typ Vyžadováno Hodnota
containers array Yes Kontejnery v rámci skupiny kontejnerů. - Objekt kontejneru
imageRegistryCredentials array No Přihlašovací údaje registru image, pomocí kterých je skupina kontejnerů vytvořena. - ImageRegistryCredential – objekt
restartPolicy enum No Restartujte zásady pro všechny kontejnery v rámci skupiny kontejnerů. - Always Vždy restartovat – OnFailure Restartovat při selhání – Never Nikdy restartovat. - Vždy, OnFailure, Nikdy
ipAddress object No Typ IP adresy skupiny kontejnerů. - Objekt IpAddress
osType enum Yes Typ operačního systému vyžadovaný kontejnery ve skupině kontejnerů. – Windows nebo Linux
volumes array No Seznam svazků, které lze připojit pomocí kontejnerů v této skupině kontejnerů. - Objekt svazku
Diagnostika object No Diagnostické informace pro skupinu kontejnerů. - Objekt ContainerGroupDiagnostics
subnetIds object No Informace o podsíti pro skupinu kontejnerů - Objekt ContainerGroupSubnetIds
Dnsconfig object No Informace o konfiguraci DNS pro skupinu kontejnerů. - Objekt DnsConfiguration
Sku enum No Skladová položka pro skupinu kontejnerů – Standard nebo Dedicated
šifrováníVlastnosti object No Vlastnosti šifrování pro skupinu kontejnerů. - EncryptionProperties – objekt
initContainers array No Inicializační kontejnery pro skupinu kontejnerů. - InitContainerDefinition – objekt

Objekt kontejneru

Název Typ Vyžadováno Hodnota
name řetězec Yes Název instance kontejneru zadaný uživatelem.
properties object Yes Vlastnosti instance kontejneru. - ContainerProperties – objekt

ImageRegistryCredential – objekt

Název Typ Vyžadováno Hodnota
server řetězec Yes Server registru image Dockeru bez protokolu, jako je http a https.
username řetězec No Uživatelské jméno pro privátní registr.
heslo řetězec No Heslo k privátnímu registru.
identity řetězec No ID prostředku spravované identity přiřazené uživatelem nebo systémem, která se používá k ověření.
identityUrl řetězec No Adresa URL identity privátního registru

Objekt IpAddress

Název Typ Vyžadováno Hodnota
ports array Yes Seznam portů vystavených ve skupině kontejnerů - Port – objekt
typ enum Yes Určuje, jestli je IP adresa zpřístupněna ve veřejném internetu nebo privátní virtuální síti. - Veřejná nebo soukromá
Ip řetězec No IP adresa vystavená veřejnému internetu.
dnsNameLabel řetězec No Popisek názvu DNS pro IP adresu.

Objekt svazku

Název Typ Vyžadováno Hodnota
name řetězec Yes Název svazku.
azureFile object No Svazek Azure File. - Objekt AzureFileVolume
emptyDir object No Prázdný svazek adresáře.
Tajný kód object No Tajný svazek.
gitRepo object No Svazek úložiště Git. - Objekt GitRepoVolume

Objekt ContainerGroupDiagnostics

Název Typ Vyžadováno Hodnota
LogAnalytics object No Informace o analýze protokolů skupin kontejnerů - Objekt LogAnalytics

Objekt ContainerGroupSubnetIds

Název Typ Vyžadováno Hodnota
id řetězec Yes Identifikátor podsítě.
name řetězec No Název podsítě.

Objekt DnsConfiguration

Název Typ Vyžadováno Hodnota
Nameservery array Yes Servery DNS pro skupinu kontejnerů. -Řetězec
searchDomains řetězec No Domény vyhledávání DNS pro vyhledávání názvu hostitele ve skupině kontejnerů.
možnosti řetězec No Možnosti DNS pro skupinu kontejnerů.

Objekt EncryptionProperties

Název Typ Vyžadováno Hodnota
vaultBaseUrl řetězec Yes Základní adresa URL trezoru klíčů.
Název_klíče řetězec Yes Název šifrovacího klíče.
keyVersion řetězec Yes Verze šifrovacího klíče.

InitContainerDefinition – objekt

Název Typ Vyžadováno Hodnota
name řetězec Yes Název kontejneru init.
properties object Yes Vlastnosti kontejneru init. - InitContainerPropertiesDefinition – objekt

Objekt ContainerProperties

Název Typ Vyžadováno Hodnota
image řetězec Yes Název image použité k vytvoření instance kontejneru.
command array No Příkazy, které se mají spustit v rámci instance kontejneru ve formě exec. -Řetězec
ports array No Vystavené porty v instanci kontejneru. - Objekt ContainerPort
environmentVariables array No Proměnné prostředí, které se mají nastavit v instanci kontejneru. - EnvironmentVariable – objekt
resources object Yes Požadavky na prostředky instance kontejneru. - Objekt ResourceRequirements
volumeMounts array No Svazek se připojí k instanci kontejneru. - Objekt VolumeMount
livenessProbe object No Sonda aktivity. - Objekt ContainerProbe
readinessProbe object No Sonda připravenosti. - Objekt ContainerProbe

Port – objekt

Název Typ Vyžadováno Hodnota
Protokol enum No Protokol přidružený k portu. – TCP nebo UDP
port integer Yes Číslo portu

Objekt AzureFileVolume

Název Typ Vyžadováno Hodnota
Název_sdílené_položky řetězec Yes Název sdílené složky Azure, která se má připojit jako svazek.
Readonly boolean No Příznak označující, jestli je sdílený soubor Azure připojený jako svazek jen pro čtení.
storageAccountName řetězec Yes Název účtu úložiště, který obsahuje sdílenou složku Azure.
storageAccountKey řetězec No Přístupový klíč účtu úložiště, který se používá pro přístup ke sdílené složce Azure.

Objekt GitRepoVolume

Název Typ Vyžadováno Hodnota
adresář řetězec No Název cílového adresáře. Nesmí obsahovat ani začínat na ... Pokud zadáte ., adresář svazku bude úložištěm Git. V opačném případě bude svazek obsahovat úložiště git v podadresáři se zadaným názvem.
úložiště řetězec Yes Adresa URL úložiště
revision řetězec No Hodnota hash potvrzení pro zadanou revizi

Objekt LogAnalytics

Název Typ Vyžadováno Hodnota
workspaceId řetězec Yes ID pracovního prostoru pro Log Analytics
klíč pracovního prostoru řetězec Yes Klíč pracovního prostoru pro Log Analytics
id prostředku pracovního prostoru řetězec No ID prostředku pracovního prostoru pro Log Analytics
logType enum No Typ protokolu, který se má použít. – ContainerInsights nebo ContainerInstanceLogs
zprostředkovatele identity object No Metadata pro Log Analytics.

InitContainerPropertiesDefinition – objekt

Název Typ Vyžadováno Hodnota
image řetězec No Obrázek kontejneru init.
command array No Příkaz, který se má spustit v kontejneru init ve formuláři exec. -Řetězec
environmentVariables array No Proměnné prostředí, které se mají nastavit v kontejneru init. - EnvironmentVariable – objekt
volumeMounts array No Svazek se připojí ke kontejneru init. - Objekt VolumeMount

Objekt ContainerPort

Název Typ Vyžadováno Hodnota
Protokol enum No Protokol přidružený k portu. – TCP nebo UDP
port integer Yes Číslo portu vystaveného v rámci skupiny kontejnerů

EnvironmentVariable – objekt

Název Typ Vyžadováno Hodnota
name řetězec Yes Název proměnné prostředí.
hodnota řetězec No Hodnota proměnné prostředí.
secureValue řetězec No Hodnota zabezpečené proměnné prostředí.

Objekt ResourceRequirements

Název Typ Vyžadováno Hodnota
Požadavky object Yes Požadavky na prostředky této instance kontejneru. - Objekt ResourceRequests
Limity object No Omezení prostředků této instance kontejneru. - Objekt ResourceLimits

Objekt VolumeMount

Název Typ Vyžadováno Hodnota
name řetězec Yes Název připojení svazku.
mountPath řetězec Yes Cesta v rámci kontejneru, kam má být svazek připojen. Nesmí obsahovat dvojtečku (:).
Readonly boolean No Příznak označující, jestli je připojení svazku jen pro čtení.

ContainerProbe – objekt

Název Typ Vyžadováno Hodnota
Exec object No Příkaz spuštění pro sondu – objekt ContainerExec
httpGet object No Http Get settings to probe – ContainerHttpGet object
initialDelaySeconds integer No Počáteční zpoždění v sekundách.
periodSeconds integer No Tečka v sekundách.
failureThreshold integer No Prahová hodnota selhání.
successThreshold integer No Prahová hodnota úspěchu.
timeoutSeconds integer No Časový limit sekund.

Objekt ResourceRequests

Název Typ Vyžadováno Hodnota
memoryInGB číslo Yes Požadavek na paměť v GB této instance kontejneru.
Cpu číslo Yes Požadavek procesoru této instance kontejneru.
Gpu object No Požadavek GPU této instance kontejneru. - Objekt GpuResource

Objekt ResourceLimits

Název Typ Vyžadováno Hodnota
memoryInGB číslo No Limit paměti v GB této instance kontejneru.
Cpu číslo No Limit procesoru této instance kontejneru
Gpu object No Limit GPU této instance kontejneru. - Objekt GpuResource

Objekt ContainerExec

Název Typ Vyžadováno Hodnota
command array No Příkazy, které se mají spouštět v kontejneru. -Řetězec

Objekt ContainerHttpGet

Název Typ Vyžadováno Hodnota
program řetězec No Cesta k testu.
port integer Yes Číslo portu, který se má testovat.
scheme enum No Schéma. – http nebo https
httpHeaders object No Hlavičky PROTOKOLU HTTP, které jsou součástí sondy. - HttpHeaders – objekt

HttpHeaders – objekt

Název Typ Vyžadováno Hodnota
name řetězec No Název hlavičky.
hodnota řetězec No Hodnota hlavičky.

Důležité

Skladové položky GPU K80 a P100 budou vyřazeny do 31. srpna 2023. Důvodem je vyřazení použitých základních virtuálních počítačů: NC Series a NCv2 Series I když budou k dispozici skladové položky V100, mění se na používání Azure Kubernetes Service. Prostředky GPU nejsou plně podporované a neměly by se používat pro produkční úlohy. Při migraci do AKS využijte ještě dnes následující zdroje informací: Postup migrace do AKS.

Objekt GpuResource

Název Typ Vyžadováno Hodnota
count integer Yes Počet prostředků GPU.
Sku enum Yes Skladová položka prostředku GPU. – V100

Další kroky

Projděte si kurz Nasazení vícekontejnerové skupiny pomocí souboru YAML.

Podívejte se na příklady použití souboru YAML k nasazení skupin kontejnerů ve virtuální síti nebo k připojení externího svazku.