Dokumentacja YAML: Azure Container Instances

W tym artykule opisano składnię i właściwości pliku YAML obsługiwanego przez Azure Container Instances w celu skonfigurowania grupy kontenerów. Użyj pliku YAML, aby wprowadzić konfigurację grupy do polecenia az container create w interfejsie wiersza polecenia platformy Azure.

Plik YAML to wygodny sposób konfigurowania grupy kontenerów na potrzeby powtarzalnych wdrożeń. Jest to zwięzła alternatywa dla używania szablonu Resource Manager lub zestawów SDK Azure Container Instances do tworzenia lub aktualizowania grupy kontenerów.

Uwaga

Ta dokumentacja dotyczy plików YAML dla wersji 2021-10-01interfejsu API REST Azure Container Instances .

Schemat

Schemat pliku YAML jest następujący, w tym komentarze do wyróżniania właściwości klucza. Aby uzyskać opis właściwości w tym schemacie, zobacz sekcję Wartości właściwości .

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

Wartości właściwości

W poniższych tabelach opisano wartości, które należy ustawić w schemacie.

Obiekt Microsoft.ContainerInstance/containerGroups

Nazwa Typ Wymagane Wartość
name ciąg Tak Nazwa grupy kontenerów.
apiVersion enum Tak 2021-10-01 (najnowsze), 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 ciąg Nie Lokalizacja zasobu.
tags object Nie Tagi zasobów.
identity object Nie Tożsamość grupy kontenerów, jeśli została skonfigurowana. - ContainerGroupIdentity, obiekt
properties object Tak ContainerGroupProperties, obiekt

ContainerGroupIdentity, obiekt

Nazwa Typ Wymagane Wartość
typ enum Nie Typ tożsamości używanej dla grupy kontenerów. Typ "SystemAssigned, UserAssigned" zawiera zarówno niejawnie utworzoną tożsamość, jak i zestaw tożsamości przypisanych przez użytkownika. Typ "Brak" spowoduje usunięcie tożsamości z grupy kontenerów. — SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object Nie Lista tożsamości użytkowników skojarzonych z grupą kontenerów. Odwołania do klucza słownika tożsamości użytkownika będą identyfikatorami zasobów platformy Azure Resource Manager w postaci: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".

ContainerGroupProperties, obiekt

Nazwa Typ Wymagane Wartość
containers array Tak Kontenery w grupie kontenerów. - Obiekt kontenera
imageRegistryCredentials array Nie Poświadczenia rejestru obrazów, na podstawie których jest tworzona grupa kontenerów. - ImageRegistryCredential, obiekt
restartPolicy enum Nie Uruchom ponownie zasady dla wszystkich kontenerów w grupie kontenerów. - Always Zawsze uruchamiaj ponownie — OnFailure uruchom ponownie po awarii — Never nigdy nie uruchamiaj ponownie. - Zawsze, OnFailure, Nigdy
Ipaddress object Nie Typ adresu IP grupy kontenerów. - Obiekt IpAddress
osType enum Tak Typ systemu operacyjnego wymagany przez kontenery w grupie kontenerów. - Windows lub Linux
volumes array Nie Lista woluminów, które mogą być instalowane przez kontenery w tej grupie kontenerów. - Obiekt woluminu
Diagnostyka object Nie Informacje diagnostyczne dla grupy kontenerów. - Obiekt ContainerGroupDiagnostics
subnetIds object Nie Informacje o podsieci dla grupy kontenerów. - ContainerGroupSubnetIds, obiekt
dnsConfig object Nie Informacje o konfiguracji DNS dla grupy kontenerów. - Obiekt DnsConfiguration
sku enum Nie Jednostka SKU dla grupy kontenerów — Standardowa lub Dedykowana
encryptionProperties object Nie Właściwości szyfrowania dla grupy kontenerów. - EncryptionProperties, obiekt
initContainers array Nie Kontenery inicjowania dla grupy kontenerów. - InitContainerDefinition, obiekt

Obiekt kontenera

Nazwa Typ Wymagane Wartość
name ciąg Tak Podana przez użytkownika nazwa wystąpienia kontenera.
properties object Tak Właściwości wystąpienia kontenera. - Obiekt ContainerProperties

ImageRegistryCredential, obiekt

Nazwa Typ Wymagane Wartość
serwer ciąg Tak Serwer rejestru obrazów platformy Docker bez protokołu takiego jak "http" i "https".
nazwa użytkownika ciąg Nie Nazwa użytkownika rejestru prywatnego.
hasło ciąg Nie Hasło dla rejestru prywatnego.
identity ciąg Nie Identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika lub system używany do uwierzytelniania.
identityUrl ciąg Nie Adres URL tożsamości dla rejestru prywatnego.

Obiekt IpAddress

Nazwa Typ Wymagane Wartość
ports array Tak Lista portów uwidocznionych w grupie kontenerów. - Obiekt portu
typ enum Tak Określa, czy adres IP jest uwidoczniony w publicznej sieci wirtualnej lub prywatnej sieci wirtualnej. - Publiczne lub prywatne
IP ciąg Nie Adres IP uwidoczniony w publicznym Internecie.
dnsNameLabel ciąg Nie Etykieta nazwy DNS dla adresu IP.

Obiekt woluminu

Nazwa Typ Wymagane Wartość
name ciąg Tak Nazwa woluminu.
azureFile object Nie Wolumin usługi Azure File. - Obiekt AzureFileVolume
emptyDir object Nie Pusty wolumin katalogu.
wpis tajny object Nie Wolumin tajny.
gitRepo object Nie Wolumin repozytorium git. - Obiekt GitRepoVolume

Obiekt ContainerGroupDiagnostics

Nazwa Typ Wymagane Wartość
logAnalytics object Nie Informacje o usłudze Log Analytics grupy kontenerów. - Obiekt LogAnalytics

ContainerGroupSubnetIds, obiekt

Nazwa Typ Wymagane Wartość
identyfikator ciąg Tak Identyfikator podsieci.
name ciąg Nie Nazwa podsieci.

Obiekt DnsConfiguration

Nazwa Typ Wymagane Wartość
Nameservers array Tak Serwery DNS dla grupy kontenerów. -Ciąg
searchDomains ciąg Nie Domeny wyszukiwania DNS dla wyszukiwania nazw hostów w grupie kontenerów.
opcje ciąg Nie Opcje DNS dla grupy kontenerów.

EncryptionProperties, obiekt

Nazwa Typ Wymagane Wartość
vaultBaseUrl ciąg Tak Podstawowy adres URL usługi Keyvault.
keyName ciąg Tak Nazwa klucza szyfrowania.
keyVersion ciąg Tak Wersja klucza szyfrowania.

InitContainerDefinition, obiekt

Nazwa Typ Wymagane Wartość
name ciąg Tak Nazwa kontenera init.
properties object Tak Właściwości kontenera init. - InitContainerPropertiesDefinition, obiekt

Obiekt ContainerProperties

Nazwa Typ Wymagane Wartość
image (obraz) ciąg Tak Nazwa obrazu użytego do utworzenia wystąpienia kontenera.
command array Nie Polecenia do wykonania w ramach wystąpienia kontenera w formularzu exec. -Ciąg
ports array Nie Uwidocznione porty w wystąpieniu kontenera. - Obiekt ContainerPort
environmentVariables array Nie Zmienne środowiskowe do ustawienia w wystąpieniu kontenera. - EnvironmentVariable, obiekt
zasoby object Tak Wymagania dotyczące zasobów wystąpienia kontenera. - ResourceRequirements, obiekt
volumeMounts array Nie Wolumin instaluje dostępne dla wystąpienia kontenera. - Obiekt VolumeMount
livenessProbe object Nie Sonda liveness. - Obiekt ContainerProbe
gotowośćProbe object Nie Sonda gotowości. - Obiekt ContainerProbe

Obiekt portu

Nazwa Typ Wymagane Wartość
Protokół enum Nie Protokół skojarzony z portem. - TCP lub UDP
port liczba całkowita Tak Numer portu.

Obiekt AzureFileVolume

Nazwa Typ Wymagane Wartość
Nazwaudziału ciąg Tak Nazwa udziału plików platformy Azure, który ma zostać zainstalowany jako wolumin.
Readonly boolean Nie Flaga wskazująca, czy udostępniony plik platformy Azure jest zainstalowany jako wolumin tylko do odczytu.
storageAccountName ciąg Tak Nazwa konta magazynu zawierającego udział plików platformy Azure.
storageAccountKey ciąg Nie Klucz dostępu do konta magazynu używany do uzyskiwania dostępu do udziału plików platformy Azure.

Obiekt GitRepoVolume

Nazwa Typ Wymagane Wartość
katalog ciąg Nie Nazwa katalogu docelowego. Nie może zawierać ani rozpoczynać się od '..'. Jeśli parametr "." zostanie dostarczony, katalog woluminu będzie repozytorium git. W przeciwnym razie, jeśli zostanie określony, wolumin będzie zawierać repozytorium git w podkatalogu o podanej nazwie.
repozytorium ciąg Tak Adres URL repozytorium
revision ciąg Nie Zatwierdź skrót dla określonej poprawki.

Obiekt LogAnalytics

Nazwa Typ Wymagane Wartość
workspaceId ciąg Tak Identyfikator obszaru roboczego do analizy dzienników
workspaceKey ciąg Tak Klucz obszaru roboczego do analizy dzienników
workspaceResourceId ciąg Nie Identyfikator zasobu obszaru roboczego dla usługi Log Analytics
logType enum Nie Typ dziennika, który ma być używany. — ContainerInsights lub ContainerInstanceLogs
metadane object Nie Metadane analizy dzienników.

InitContainerPropertiesDefinition, obiekt

Nazwa Typ Wymagane Wartość
image (obraz) ciąg Nie Obraz kontenera init.
command array Nie Polecenie do wykonania w kontenerze init w postaci exec. -Ciąg
environmentVariables array Nie Zmienne środowiskowe do ustawienia w kontenerze init. - EnvironmentVariable, obiekt
volumeMounts array Nie Wolumin instaluje dostępne dla kontenera init. - VolumeMount, obiekt

ContainerPort, obiekt

Nazwa Typ Wymagane Wartość
Protokół enum Nie Protokół skojarzony z portem. - TCP lub UDP
port liczba całkowita Tak Numer portu uwidoczniony w grupie kontenerów.

EnvironmentVariable, obiekt

Nazwa Typ Wymagane Wartość
name ciąg Tak Nazwa zmiennej środowiskowej.
wartość ciąg Nie Wartość zmiennej środowiskowej.
secureValue ciąg Nie Wartość bezpiecznej zmiennej środowiskowej.

ResourceRequirements, obiekt

Nazwa Typ Wymagane Wartość
Żądania object Tak Żądania zasobów tego wystąpienia kontenera. - ResourceRequests, obiekt
Limity object Nie Limity zasobów tego wystąpienia kontenera. - ResourceLimits, obiekt

VolumeMount, obiekt

Nazwa Typ Wymagane Wartość
name ciąg Tak Nazwa instalacji woluminu.
mountPath ciąg Tak Ścieżka w kontenerze, w którym należy zamontować wolumin. Nie może zawierać dwukropka (:).
Readonly boolean Nie Flaga wskazująca, czy instalacja woluminu jest tylko do odczytu.

Obiekt ContainerProbe

Nazwa Typ Wymagane Wartość
Exec object Nie Polecenie wykonywania do sondy — obiekt ContainerExec
httpGet object Nie Ustawienia Pobierania http do sondy — obiekt ContainerHttpGet
initialDelaySeconds liczba całkowita Nie Początkowe opóźnienie sekund.
periodSeconds liczba całkowita Nie W sekundach okresu.
failureThreshold liczba całkowita Nie Próg awarii.
successThreshold liczba całkowita Nie Próg powodzenia.
timeoutSeconds liczba całkowita Nie Limit czasu sekund.

Obiekt ResourceRequests

Nazwa Typ Wymagane Wartość
memoryInGB liczba Tak Żądanie pamięci w GB tego wystąpienia kontenera.
Procesora liczba Tak Żądanie procesora CPU tego wystąpienia kontenera.
Gpu object Nie Żądanie procesora GPU tego wystąpienia kontenera. - Obiekt GpuResource

Obiekt ResourceLimits

Nazwa Typ Wymagane Wartość
memoryInGB liczba Nie Limit pamięci w GB tego wystąpienia kontenera.
Procesora liczba Nie Limit procesora CPU tego wystąpienia kontenera.
Gpu object Nie Limit procesora GPU tego wystąpienia kontenera. - Obiekt GpuResource

Obiekt ContainerExec

Nazwa Typ Wymagane Wartość
command array Nie Polecenia do wykonania w kontenerze. -Ciąg

ContainerHttpGet, obiekt

Nazwa Typ Wymagane Wartość
path ciąg Nie Ścieżka do sondy.
port liczba całkowita Tak Numer portu do sondy.
schemat enum Nie Schemat. - http lub https
httpHeaders object Nie Nagłówki HTTP zawarte w soncie. - Obiekt HttpHeaders

Obiekt HttpHeaders

Nazwa Typ Wymagane Wartość
name ciąg Nie Nazwa nagłówka.
wartość ciąg Nie Wartość nagłówka.

Ważne

Jednostki SKU procesora GPU K80 i P100 zostaną wycofane do 31 sierpnia 2023 r. Jest to spowodowane wycofaniem bazowych maszyn wirtualnych używanych: serii NC i serii NCv2, chociaż jednostki SKU V100 będą dostępne, zostanie zmieniona, aby użyć Azure Kubernetes Service zamiast tego. Zasoby procesora GPU nie są w pełni obsługiwane i nie powinny być używane w przypadku obciążeń produkcyjnych. Użyj następujących zasobów, aby przeprowadzić migrację do usługi AKS dzisiaj: Jak przeprowadzić migrację do usługi AKS.

GpuResource, obiekt

Nazwa Typ Wymagane Wartość
count liczba całkowita Tak Liczba zasobów procesora GPU.
sku enum Tak Jednostka SKU zasobu procesora GPU. - V100

Następne kroki

Zobacz samouczek Wdrażanie grupy z wieloma kontenerami przy użyciu pliku YAML.

Zobacz przykłady użycia pliku YAML do wdrażania grup kontenerów w sieci wirtualnej lub instalowania woluminu zewnętrznego.