Udostępnij za pośrednictwem


Dokumentacja YAML: Azure Container Instances

W tym artykule opisano składnię i właściwości pliku YAML obsługiwanego przez usługę 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 usługi Resource Manager lub zestawów SDK usługi Azure Container Instances w celu utworzenia lub zaktualizowania grupy kontenerów.

Uwaga

Ta dokumentacja dotyczy plików YAML dla interfejsu API REST usługi 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
    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.

Microsoft.ContainerInstance/containerGroups, obiekt

Nazwisko Type Wymagania Wartość
nazwa string Tak Nazwa grupy kontenerów.
apiVersion wyliczenie 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
lokalizacja string Nie Lokalizacja zasobu.
tags obiekt Nie. Tagi zasobów.
tożsamości obiekt Nie. Tożsamość grupy kontenerów, jeśli została skonfigurowana. - ContainerGroupIdentity, obiekt
właściwości obiekt Tak ContainerGroupProperties, obiekt

ContainerGroupIdentity, obiekt

Nazwisko Type Wymagania Wartość
type wyliczenie Nie. 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 Nie. Lista tożsamości użytkowników skojarzonych z grupą kontenerów. Odwołania do klucza słownika tożsamości użytkownika to identyfikatory zasobów usługi Azure Resource Manager w postaci: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".

ContainerGroupProperties, obiekt

Nazwisko Type Wymagania Wartość
containers tablica Tak Kontenery w grupie kontenerów. - Obiekt kontenera
imageRegistryCredentials tablica Nie. Poświadczenia rejestru obrazów, na podstawie których jest tworzona grupa kontenerów. - ImageRegistryCredential, obiekt
restartPolicy wyliczenie Nie. 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 Nie. Typ adresu IP grupy kontenerów. - Obiekt IpAddress
osType wyliczenie Tak Typ systemu operacyjnego wymagany przez kontenery w grupie kontenerów. - Windows lub Linux
volumes tablica Nie. Lista woluminów, które kontenery w tej grupie kontenerów mogą zainstalować. - Obiekt woluminu
Diagnostyka obiekt Nie. Informacje diagnostyczne dla grupy kontenerów. - ContainerGroupDiagnostics, obiekt
identyfikatory podsieci obiekt Nie. Informacje o podsieci dla grupy kontenerów. - ContainerGroupSubnetIds, obiekt
dnsConfig obiekt Nie. Informacje o konfiguracji DNS dla grupy kontenerów. - DnsConfiguration, obiekt
sku wyliczenie Nie. Jednostka SKU dla grupy kontenerów — Standardowa lub Dedykowana
encryptionProperties obiekt Nie. Właściwości szyfrowania dla grupy kontenerów. - EncryptionProperties, obiekt
initContainers tablica Nie. Kontenery inicjowania dla grupy kontenerów. - InitContainerDefinition, obiekt

Obiekt kontenera

Nazwisko Type Wymagania Wartość
nazwa string Tak Podana przez użytkownika nazwa wystąpienia kontenera.
właściwości obiekt Tak Właściwości wystąpienia kontenera. - ContainerProperties, obiekt

ImageRegistryCredential, obiekt

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

Obiekt IpAddress

Nazwisko Type Wymagania Wartość
porty tablica Tak Lista portów uwidocznionych w grupie kontenerów. - Obiekt portu
type wyliczenie Tak Określa, czy adres IP jest uwidoczniony dla publicznej sieci wirtualnej lub prywatnej sieci wirtualnej. - Publiczny lub prywatny
IP string Nie Adres IP uwidoczniony w publicznym Internecie.
dnsNameLabel string Nie Etykieta nazwy DNS dla adresu IP.

Obiekt woluminu

Nazwisko Type Wymagania Wartość
nazwa string Tak Nazwa woluminu.
azureFile obiekt Nie. Wolumin usługi Azure File. - AzureFileVolume, obiekt
emptyDir obiekt Nie. Pusty wolumin katalogu.
wpis tajny obiekt Nie. Wolumin tajny.
gitRepo obiekt Nie. Wolumin repozytorium git. - GitRepoVolume, obiekt

ContainerGroupDiagnostics, obiekt

Nazwisko Type Wymagania Wartość
logAnalytics obiekt Nie. Informacje analizy dzienników grupy kontenerów. - LogAnalytics, obiekt

ContainerGroupSubnetIds, obiekt

Nazwisko Type Wymagania Wartość
identyfikator string Tak Identyfikator podsieci.
nazwa string Nie Nazwa podsieci.

DnsConfiguration, obiekt

Nazwisko Type Wymagania Wartość
nameServers tablica Tak Serwery DNS dla grupy kontenerów. -struna
searchDomains string Nie Domeny wyszukiwania DNS dla wyszukiwania nazwy hosta w grupie kontenerów.
options string Nie Opcje DNS dla grupy kontenerów.

EncryptionProperties, obiekt

Nazwisko Type Wymagania Wartość
vaultBaseUrl string Tak Podstawowy adres URL usługi Keyvault.
keyName string Tak Nazwa klucza szyfrowania.
keyVersion string Tak Wersja klucza szyfrowania.

InitContainerDefinition, obiekt

Nazwisko Type Wymagania Wartość
nazwa string Tak Nazwa kontenera init.
właściwości obiekt Tak Właściwości kontenera init. - InitContainerPropertiesDefinition, obiekt

ContainerProperties, obiekt

Nazwisko Type Wymagania Wartość
obraz string Tak Nazwa obrazu użytego do utworzenia wystąpienia kontenera.
polecenie tablica Nie. Polecenia do wykonania w ramach wystąpienia kontenera w formularzu exec. -struna
porty tablica Nie. Uwidocznione porty w wystąpieniu kontenera. - ContainerPort, obiekt
environmentVariables tablica Nie. Zmienne środowiskowe do ustawienia w wystąpieniu kontenera. - EnvironmentVariable, obiekt
zasoby obiekt Tak Wymagania dotyczące zasobów wystąpienia kontenera. - ResourceRequirements, obiekt
volumeMounts tablica Nie. Woluminy są montowane w wystąpieniu kontenera. - VolumeMount, obiekt
livenessProbe obiekt Nie. Sonda liveness. - KontenerProbe, obiekt
gotowośćProbe obiekt Nie. Sonda gotowości. - KontenerProbe, obiekt

Obiekt portu

Nazwisko Type Wymagania Wartość
protokół wyliczenie Nie. Protokół skojarzony z portem. - TCP lub UDP
port integer Tak Numer portu.

AzureFileVolume, obiekt

Nazwisko Type Wymagania Wartość
shareName string 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 zainstalowany jako wolumin jest tylko do odczytu.
storageAccountName string Tak Nazwa konta magazynu zawierającego udział plików platformy Azure.
storageAccountKey string Nie Klucz dostępu konta magazynu używany do uzyskiwania dostępu do udziału plików platformy Azure.

GitRepoVolume, obiekt

Nazwisko Type Wymagania Wartość
katalog string Nie 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 string Tak Adres URL repozytorium
revision string Nie Zatwierdź skrót dla określonej poprawki.

LogAnalytics, obiekt

Nazwisko Type Wymagania Wartość
workspaceId string Tak Identyfikator obszaru roboczego dla usługi Log Analytics
workspaceKey string Tak Klucz obszaru roboczego na potrzeby analizy dzienników
workspaceResourceId string Nie Identyfikator zasobu obszaru roboczego na potrzeby analizy dzienników
logType wyliczenie Nie. Typ dziennika do użycia. — ContainerInsights lub ContainerInstanceLogs
metadane obiekt Nie. Metadane analizy dzienników.

InitContainerPropertiesDefinition, obiekt

Nazwisko Type Wymagania Wartość
obraz string Nie Obraz kontenera init.
polecenie tablica Nie. Polecenie do wykonania w kontenerze init w formularzu exec. -struna
environmentVariables tablica Nie. Zmienne środowiskowe do ustawienia w kontenerze init. - EnvironmentVariable, obiekt
volumeMounts tablica Nie. Wolumin instaluje się w kontenerze init. - VolumeMount, obiekt

ContainerPort, obiekt

Nazwisko Type Wymagania Wartość
protokół wyliczenie Nie. Protokół skojarzony z portem. - TCP lub UDP
port integer Tak Numer portu uwidoczniony w grupie kontenerów.

EnvironmentVariable, obiekt

Nazwisko Type Wymagania Wartość
nazwa string Tak Nazwa zmiennej środowiskowej.
wartość string Nie Wartość zmiennej środowiskowej.
secureValue string Nie Wartość bezpiecznej zmiennej środowiskowej.

ResourceRequirements, obiekt

Nazwisko Type Wymagania Wartość
żądania obiekt Tak Zasób żąda tego wystąpienia kontenera. - Obiekt ResourceRequests
Limity obiekt Nie. Limity zasobów tego wystąpienia kontenera. - ResourceLimits, obiekt

VolumeMount, obiekt

Nazwisko Type Wymagania Wartość
nazwa string Tak Nazwa instalacji woluminu.
mountPath string 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.

KontenerProbe, obiekt

Nazwisko Type Wymagania Wartość
Exec obiekt Nie. Polecenie wykonywania sondy — obiekt ContainerExec
httpGet obiekt Nie. Ustawienia Http Get do sondowania — obiekt ContainerHttpGet
initialDelaySeconds integer Nie. Początkowe opóźnienie sekund.
periodSeconds integer Nie. Czas w sekundach.
failureThreshold integer Nie. Próg niepowodzenia.
successThreshold integer Nie. Próg powodzenia.
timeoutSeconds integer Nie. Limit czasu sekund.

Obiekt ResourceRequests

Nazwisko Type Wymagania Wartość
memoryInGB Liczba Tak Żądanie pamięci w GB tego wystąpienia kontenera.
cpu Liczba Tak Żądanie procesora CPU tego wystąpienia kontenera.
gpu obiekt Nie. Żądanie procesora GPU tego wystąpienia kontenera. - GpuResource, obiekt

ResourceLimits, obiekt

Nazwisko Type Wymagania Wartość
memoryInGB numer Nie. Limit pamięci w GB tego wystąpienia kontenera.
cpu numer Nie. Limit procesora CPU dla tego wystąpienia kontenera.
gpu obiekt Nie. Limit procesora GPU tego wystąpienia kontenera. - GpuResource, obiekt

ContainerExec, obiekt

Nazwisko Type Wymagania Wartość
polecenie tablica Nie. Polecenia do wykonania w kontenerze. -struna

ContainerHttpGet, obiekt

Nazwisko Type Wymagania Wartość
path string Nie Ścieżka do sondy.
port integer Tak Numer portu do sondy.
scheme wyliczenie Nie. Schemat. - http lub https
httpHeaders obiekt Nie. Nagłówki HTTP zawarte w sondze. - Obiekt HttpHeaders

Obiekt HttpHeaders

Nazwisko Type Wymagania Wartość
nazwa string Nie Nazwa nagłówka.
wartość string Nie Wartość nagłówka.

Ważne

Jednostki SKU procesora GPU K80 i P100 zostaną wycofane do 31 sierpnia 2023 r. Jest to spowodowane wycofaniem używanych maszyn wirtualnych: serii NC i serii NCv2, chociaż jednostki SKU V100 będą dostępne, zostanie ona zmieniona, aby zamiast tego użyć usługi 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

Nazwisko Type Wymagania Wartość
count integer Tak Liczba zasobów procesora GPU.
sku wyliczenie 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.