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 Azure CLI.

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.

Note

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

schemat

Schemat pliku YAML jest następujący, w tym komentarze do wyróżniania kluczowych właściwości. Opis właściwości w tym schemacie znajduje się w sekcji 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
    autoGeneratedDomainNameLabelScope: 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.

Microsoft. KontenerInstance/containerGroups, obiekt

Name Typ Wymagane Wartość
nazwa ciąg Yes Nazwa grupy kontenerów.
apiVersion wyliczenie Yes 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
lokalizacja ciąg No Lokalizacja zasobu.
tags obiekt No Tagi zasobów.
tożsamość obiekt No Tożsamość grupy kontenerów, jeśli została skonfigurowana. - ContainerGroupIdentity, obiekt
properties obiekt Yes ContainerGroupProperties, obiekt

ContainerGroupIdentity, obiekt

Name Typ Wymagane Wartość
typ wyliczenie No Typ tożsamości używany 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 "None" usuwa wszystkie tożsamości z grupy kontenerów. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities obiekt No Lista tożsamości użytkowników skojarzonych z grupą kontenerów. Odwołania do klucza słownika tożsamości użytkownika są Azure Resource Manager identyfikatorami zasobów w postaci: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ManagedIdentity/userAssignedIdentities/{identityName}".

ContainerGroupProperties, obiekt

Name Typ Wymagane Wartość
Pojemniki macierz Yes Kontenery w grupie kontenerów. - Obiekt kontenera
imageRegistryCredentials (Dane uwierzytelniające imageRegistryCredentials) macierz No Poświadczenia rejestru obrazów, na podstawie których jest tworzona grupa kontenerów. - ImageRegistryCredential, obiekt
zasadaPonownegoUruchamiania wyliczenie No Uruchom ponownie zasady dla wszystkich kontenerów w grupie kontenerów. - Always Zawsze uruchamiaj ponownie — OnFailure ponowne uruchamianie po niepowodzeniu — Never nigdy nie uruchamiaj ponownie. - Zawsze, OnFailure, Nigdy
ipAddress obiekt No Typ adresu IP grupy kontenerów. - Obiekt IpAddress
osType (typ systemu) wyliczenie Yes Typ systemu operacyjnego wymagany przez kontenery w grupie kontenerów. - Windows lub Linux
volumes macierz No Lista woluminów, które kontenery w tej grupie kontenerów mogą zainstalować. - Obiekt woluminu
diagnostics obiekt No Informacje diagnostyczne dla grupy kontenerów. - ContainerGroupDiagnostics, obiekt
identyfikatory podsieci obiekt No Informacje o podsieci dla grupy kontenerów. - ContainerGroupSubnetIds, obiekt
dnsConfig (konfiguracja systemu dns) obiekt No Informacje o konfiguracji DNS dla grupy kontenerów. - DnsConfiguration, obiekt
sku wyliczenie No Jednostka SKU dla grupy kontenerów — Standardowa lub Dedykowana
encryptionProperties (właściwości szyfrowania) obiekt No Właściwości szyfrowania dla grupy kontenerów. - EncryptionProperties, obiekt
initContainers (Kontenery init) macierz No Kontenery inicjowania dla grupy kontenerów. - InitContainerDefinition, obiekt

Obiekt kontenera

Name Typ Wymagane Wartość
nazwa ciąg Yes Podana przez użytkownika nazwa wystąpienia kontenera.
properties obiekt Yes Właściwości wystąpienia kontenera. - ContainerProperties, obiekt

ImageRegistryCredential, obiekt

Name Typ Wymagane Wartość
serwer ciąg Yes Serwer rejestru obrazów platformy Docker bez protokołu, takiego jak "http" i "https".
nazwa użytkownika ciąg No Nazwa użytkownika rejestru prywatnego.
hasło ciąg No Hasło dla rejestru prywatnego.
tożsamość ciąg No Identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika używany do uwierzytelniania. Tożsamość zarządzana przypisana przez system nie jest obsługiwana w przypadku ściągania obrazów usługi ACR.
identityUrl (adres URL tożsamości) ciąg No Adres URL tożsamości dla rejestru prywatnego.

Obiekt IpAddress

Name Typ Wymagane Wartość
ports macierz Yes Lista portów uwidocznionych w grupie kontenerów. - Obiekt portu
typ wyliczenie Yes Określa, czy adres IP jest uwidoczniony dla publicznej sieci wirtualnej lub prywatnej sieci wirtualnej. - Publiczny lub prywatny
Ip ciąg No Adres IP uwidoczniony w publicznym Internecie.
dnsNameLabel (etykietaNazwy dns) ciąg No Etykieta nazwy DNS dla adresu IP.

Obiekt woluminu

Name Typ Wymagane Wartość
nazwa ciąg Yes Nazwa woluminu.
azureFile (plik azure) obiekt No Wolumin usługi Azure File. - AzureFileVolume, obiekt
emptyDir obiekt No Pusty wolumin katalogu.
klucz tajny obiekt No Wolumin tajny.
gitRepo obiekt No Wolumin repozytorium git. - GitRepoVolume, obiekt

ContainerGroupDiagnostics, obiekt

Name Typ Wymagane Wartość
logAnalytics obiekt No Informacje analizy dzienników grupy kontenerów. - LogAnalytics, obiekt

ContainerGroupSubnetIds, obiekt

Name Typ Wymagane Wartość
identyfikator ciąg Yes Identyfikator podsieci.
nazwa ciąg No Nazwa podsieci.

DnsConfiguration, obiekt

Name Typ Wymagane Wartość
nameServers (serwery nazw) macierz Yes Serwery DNS dla grupy kontenerów. -Ciąg
searchDomains (Domeny wyszukiwania) ciąg No Domeny wyszukiwania DNS dla wyszukiwania nazwy hosta w grupie kontenerów.
options ciąg No Opcje DNS dla grupy kontenerów.

EncryptionProperties, obiekt

Name Typ Wymagane Wartość
vaultBaseUrl (adres URL magazynu) ciąg Yes Podstawowy adres URL usługi Keyvault.
nazwaKlucza ciąg Yes Nazwa klucza szyfrowania.
keyVersion ciąg Yes Wersja klucza szyfrowania.

InitContainerDefinition, obiekt

Name Typ Wymagane Wartość
nazwa ciąg Yes Nazwa kontenera init.
properties obiekt Yes Właściwości kontenera init. - InitContainerPropertiesDefinition, obiekt

ContainerProperties, obiekt

Name Typ Wymagane Wartość
obraz ciąg Yes Nazwa obrazu użytego do utworzenia wystąpienia kontenera.
command macierz No Polecenia do wykonania w ramach wystąpienia kontenera w formularzu exec. -Ciąg
ports macierz No Uwidocznione porty w wystąpieniu kontenera. - ContainerPort, obiekt
environmentVariables macierz No Zmienne środowiskowe do ustawienia w wystąpieniu kontenera. - EnvironmentVariable, obiekt
resources obiekt Yes Wymagania dotyczące zasobów wystąpienia kontenera. - ResourceRequirements, obiekt
WoluminInstalacje macierz No Woluminy są montowane w wystąpieniu kontenera. - VolumeMount, obiekt
livenessSonda obiekt No Sonda liveness. - KontenerProbe, obiekt
gotowośćProbe obiekt No Sonda gotowości. - KontenerProbe, obiekt

Obiekt portu

Name Typ Wymagane Wartość
protokół wyliczenie No Protokół skojarzony z portem. - TCP lub UDP
port liczba całkowita Yes Numer portu.

AzureFileVolume, obiekt

Name Typ Wymagane Wartość
shareName ciąg Yes Nazwa udziału plików platformy Azure, który ma zostać zainstalowany jako wolumin.
readOnly (tylko do odczytu) boolean No Flaga wskazująca, czy udostępniony plik platformy Azure zainstalowany jako wolumin jest tylko do odczytu.
nazwaKontaPrzechowywania ciąg Yes Nazwa konta magazynu zawierającego udział plików platformy Azure.
storageAccountKey ciąg No Klucz dostępu konta magazynu używany do uzyskiwania dostępu do udziału plików platformy Azure.

GitRepoVolume, obiekt

Name Typ Wymagane Wartość
katalog ciąg No Nazwa katalogu docelowego. Nie może zawierać ani rozpoczynać się od ".". Jeśli element "." jest dostarczany, katalog woluminu jest repozytorium git. W przeciwnym razie, jeśli zostanie określony, wolumin zawiera repozytorium git w podkatalogu o podanej nazwie.
repozytorium ciąg Yes Adres URL repozytorium
rewizja ciąg No Zatwierdź skrót dla określonej poprawki.

LogAnalytics, obiekt

Name Typ Wymagane Wartość
workspaceId ciąg Yes Identyfikator obszaru roboczego dla usługi Log Analytics
klucz przestrzeni roboczej ciąg Yes Klucz obszaru roboczego na potrzeby analizy dzienników
IdentyfikatorZasobuPrzestrzeniRoboczej ciąg No Identyfikator zasobu obszaru roboczego na potrzeby analizy dzienników
logType (typ loga) wyliczenie No Typ dziennika do użycia. — ContainerInsights lub ContainerInstanceLogs
metadane obiekt No Metadane analizy dzienników.

InitContainerPropertiesDefinition, obiekt

Name Typ Wymagane Wartość
obraz ciąg No Obraz kontenera init.
command macierz No Polecenie do wykonania w kontenerze init w formularzu exec. -Ciąg
environmentVariables macierz No Zmienne środowiskowe do ustawienia w kontenerze init. - EnvironmentVariable, obiekt
WoluminInstalacje macierz No Wolumin instaluje się w kontenerze init. - VolumeMount, obiekt

ContainerPort, obiekt

Name Typ Wymagane Wartość
protokół wyliczenie No Protokół skojarzony z portem. - TCP lub UDP
port liczba całkowita Yes Numer portu uwidoczniony w grupie kontenerów.

EnvironmentVariable, obiekt

Name Typ Wymagane Wartość
nazwa ciąg Yes Nazwa zmiennej środowiskowej.
Wartość ciąg No Wartość zmiennej środowiskowej.
secureValue (zabezpieczona wartość) ciąg No Wartość bezpiecznej zmiennej środowiskowej.

ResourceRequirements, obiekt

Name Typ Wymagane Wartość
requests obiekt Yes Zasób żąda tego wystąpienia kontenera. - Obiekt ResourceRequests
limity obiekt No Limity zasobów tego wystąpienia kontenera. - ResourceLimits, obiekt

VolumeMount, obiekt

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

KontenerProbe, obiekt

Name Typ Wymagane Wartość
exec obiekt No Polecenie wykonywania sondy — obiekt ContainerExec
Pobieranie httpGet obiekt No Ustawienia Http Get do sondowania — obiekt ContainerHttpGet
initialDelaySeconds (Sekundy początkoweOpóźnienie) liczba całkowita No Początkowe opóźnienie sekund.
periodSeconds liczba całkowita No Czas w sekundach.
failureThreshold liczba całkowita No Próg niepowodzenia.
successThreshold (próg sukcesu) liczba całkowita No Próg powodzenia.
timeoutSeconds liczba całkowita No Limit czasu sekund.

Obiekt ResourceRequests

Name Typ Wymagane Wartość
memoryInGB number Yes Żądanie pamięci w GB tego wystąpienia kontenera.
cpu number Yes Żądanie procesora CPU tego wystąpienia kontenera.
gpu obiekt No Żądanie procesora GPU tego wystąpienia kontenera. - GpuResource, obiekt

ResourceLimits, obiekt

Name Typ Wymagane Wartość
memoryInGB number No Limit pamięci w GB tego wystąpienia kontenera.
cpu number No Limit procesora CPU dla tego wystąpienia kontenera.
gpu obiekt No Limit procesora GPU tego wystąpienia kontenera. - GpuResource, obiekt

ContainerExec, obiekt

Name Typ Wymagane Wartość
command macierz No Polecenia do wykonania w kontenerze. -Ciąg

ContainerHttpGet, obiekt

Name Typ Wymagane Wartość
ścieżka ciąg No Ścieżka do sondy.
port liczba całkowita Yes Numer portu do sondy.
scheme wyliczenie No Schemat. - http lub https
Nagłówki HTTP obiekt No Nagłówki HTTP zawarte w sondze. - Obiekt HttpHeaders

Obiekt HttpHeaders

Name Typ Wymagane Wartość
nazwa ciąg No Nazwa nagłówka.
Wartość ciąg No Wartość nagłówka.

Ważna

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 zamiast tego użyć Azure Kubernetes Service. 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

Name Typ Wymagane Wartość
count liczba całkowita Yes Liczba zasobów procesora GPU.
sku wyliczenie Yes 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.