YAML 참조: Azure Container Instances

이 문서에서는 컨테이너 그룹을 구성하기 위해 Azure Container Instances에서 지원하는 YAML 파일의 구문과 속성을 설명합니다. YAML 파일은 Azure CLI에서 az container create 명령에 그룹 구성을 입력하는 데 사용됩니다.

YAML 파일은 재현 가능한 배포를 위해 컨테이너 그룹을 구성하는 편리한 방법입니다. Resource Manager 템플릿 또는 Azure Container Instances SDK를 사용하여 컨테이너 그룹을 만들거나 업데이트하는 방법의 간단한 대안이 되기도 합니다.

참고 항목

이 참조는 Azure Container Instances REST API 버전의 2021-10-01YAML 파일에 적용됩니다.

스키마

YAML 파일의 스키마는 키 속성을 강조 표시하는 주석을 포함하여 다음과 같습니다. 이 스키마의 속성에 대한 설명은 속성 값 섹션을 참조하세요.

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

속성 값

다음 표에서는 스키마에서 설정해야 하는 값을 설명합니다.

Microsoft.ContainerInstance/containerGroups 개체

속성 Type Required
name string 컨테이너 그룹의 이름입니다.
apiVersion enum 2021-10-01(최신), 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 string 아니요 리소스 위치.
tags 개체 아니요 리소스 태그입니다.
identity 개체 아니요 구성된 경우 컨테이너 그룹의 ID입니다. - ContainerGroupIdentity 개체
속성 개체 ContainerGroupProperties 개체

ContainerGroupIdentity 개체

속성 Type Required
type enum 아니요 컨테이너 그룹에 사용되는 ID의 형식입니다. 'SystemAssigned, UserAssigned' 형식에는 암시적으로 생성된 ID와 사용자 할당 ID 집합이 모두 포함됩니다. 'None' 형식은 컨테이너 그룹에서 모든 ID를 제거합니다. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities 개체 아니요 컨테이너 그룹과 연결된 사용자 ID 목록입니다. 사용자 ID 사전 키 참조는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}' 형식의 Azure Resource Manager 리소스 ID입니다.

ContainerGroupProperties 개체

속성 Type Required
containers 배열 컨테이너 그룹 내의 컨테이너입니다. - 컨테이너 개체
imageRegistryCredentials 배열 아니요 컨테이너 그룹을 만든 이미지 레지스트리 자격 증명입니다. - ImageRegistryCredential 개체
restartPolicy enum 아니요 컨테이너 그룹 내의 모든 컨테이너에 대한 정책을 다시 시작합니다. - Always 항상 다시 시작 - OnFailure 실패할 때 다시 시작- Never 다시 시작 안 하세요. - Always, OnFailure, Never
ipAddress 개체 아니요 컨테이너 그룹의 IP 주소 유형입니다. - IpAddress 개체
osType enum 컨테이너 그룹의 컨테이너에 필요한 운영 체제 유형입니다. - Windows 또는 Linux
볼륨 배열 아니요 이 컨테이너 그룹의 컨테이너가 탑재할 수 있는 볼륨 목록입니다. - Volume 개체
diagnostics 개체 아니요 컨테이너 그룹에 대한 진단 정보입니다. - ContainerGroupDiagnostics 개체
subnetIds 개체 아니요 컨테이너 그룹에 대한 서브넷 정보입니다. - ContainerGroupSubnetIds 개체
dnsConfig 개체 아니요 컨테이너 그룹에 대한 DNS 구성 정보입니다. - DnsConfiguration 개체
sku enum 아니요 컨테이너 그룹에 대한 SKU - 표준 또는 전용
encryptionProperties 개체 아니요 컨테이너 그룹의 암호화 속성입니다. - EncryptionProperties 개체
initContainers 배열 아니요 컨테이너 그룹의 init 컨테이너입니다. - InitContainerDefinition 개체

컨테이너 개체

속성 Type Required
name string 컨테이너 인스턴스의 사용자 제공 이름입니다.
속성 개체 컨테이너 인스턴스의 속성입니다. - ContainerProperties 개체

ImageRegistryCredential 개체

속성 Type Required
server string “http” 및 “https” 같은 프로토콜이 없는 Docker 이미지 레지스트리 서버입니다.
사용자 이름 string 아니요 프라이빗 레지스트리의 사용자 이름입니다.
password string 아니요 프라이빗 레지스트리의 암호입니다.
identity string 아니요 인증하는 데 사용되는 사용자 또는 시스템 할당 관리 ID의 리소스 ID입니다.
identityUrl string 아니요 프라이빗 레지스트리의 ID URL입니다.

IpAddress 개체

속성 Type Required
고서 배열 컨테이너 그룹에 노출되는 포트 목록입니다. - 포트 개체
type enum IP가 공용 인터넷 또는 프라이빗 가상 네트워크에 노출되는지 여부를 지정합니다. - Public 또는 Private
ip string 아니요 공용 인터넷에 노출되는 IP입니다.
dnsNameLabel string 아니요 IP의 Dns 이름 레이블입니다.

Volume 개체

속성 Type Required
name string 볼륨의 이름입니다.
azureFile 개체 아니요 Azure 파일 볼륨입니다. - AzureFileVolume 개체
emptyDir 개체 아니요 빈 디렉터리 볼륨입니다.
secret 개체 아니요 비밀 볼륨입니다.
gitRepo 개체 아니요 git 리포지토리 볼륨입니다. - GitRepoVolume 개체

ContainerGroupDiagnostics 개체

속성 Type Required
logAnalytics 개체 아니요 컨테이너 그룹 로그 분석 정보입니다. - LogAnalytics 개체

ContainerGroupSubnetIds 개체

속성 Type Required
id string 서브넷의 식별자입니다.
name string 아니요 서브넷의 이름.

DnsConfiguration 개체

속성 Type Required
nameServers 배열 컨테이너 그룹의 DNS 서버입니다. - string
searchDomains string 아니요 컨테이너 그룹의 호스트 이름 조회에 대한 DNS 검색 도메인입니다.
options string 아니요 컨테이너 그룹에 대한 DNS 옵션입니다.

EncryptionProperties 개체

속성 Type Required
vaultBaseUrl string keyvault 기준 URL입니다.
keyName string 암호화 키 이름입니다.
keyVersion string 암호화 키 버전입니다.

InitContainerDefinition 개체

속성 Type Required
name string init 컨테이너의 이름입니다.
속성 개체 init 컨테이너의 속성입니다. - InitContainerPropertiesDefinition 개체

ContainerProperties 개체

속성 Type Required
이미지 string 컨테이너 인스턴스를 만드는 데 사용되는 이미지의 이름입니다.
command 배열 아니요 exec 형식으로 컨테이너 인스턴스 내에서 실행할 명령입니다. - string
고서 배열 아니요 컨테이너 인스턴스의 노출된 포트입니다. - ContainerPort 개체
environmentVariables 배열 아니요 컨테이너 인스턴스에서 설정할 환경 변수입니다. - EnvironmentVariable 개체
리소스 개체 컨테이너 인스턴스의 리소스 요구 사항입니다. - ResourceRequirements 개체
volumeMounts 배열 아니요 컨테이너 인스턴스에 사용할 수 있는 볼륨 탑재입니다. - VolumeMount 개체
livenessProbe 개체 아니요 활동성 프로브입니다. - ContainerProbe 개체
readinessProbe 개체 아니요 준비 상태 프로브입니다. - ContainerProbe 개체

포트 개체

속성 Type Required
프로토콜 enum 아니요 포트와 연결된 프로토콜입니다. - TCP 또는 UDP
port 정수 포트 번호.

AzureFileVolume 개체

속성 Type Required
shareName string 볼륨으로 탑재할 Azure 파일 공유의 이름입니다.
readOnly 부울 값 아니요 볼륨으로 탑재된 Azure 파일 공유가 읽기 전용인지 여부를 나타내는 플래그입니다.
storageAccountName string Azure 파일 공유를 포함하는 스토리지 계정의 이름입니다.
storageAccountKey string 아니요 Azure 파일 공유에 액세스하는 데 사용되는 스토리지 계정 액세스 키입니다.

GitRepoVolume 개체

속성 Type Required
directory string 아니요 대상 디렉터리 이름입니다. '..'을 포함하거나 시작하지 않아야 합니다. '.'이(가) 제공되면 볼륨 디렉터리는 git 리포지토리입니다. 그렇지 않으면 지정된 경우 볼륨에 지정된 이름의 하위 디렉터리에 git 리포지토리가 포함됩니다.
리포지토리 string 리포지토리 URL
개정 string 아니요 지정된 수정 버전에 대한 해시를 커밋합니다.

LogAnalytics 개체

속성 Type Required
workspaceId string 로그 분석에 대한 작업 영역 ID
workspaceKey string 로그 분석을 위한 작업 영역 키
workspaceResourceId string 아니요 로그 분석에 대한 작업 영역 리소스 ID
logType enum 아니요 사용할 로그 형식입니다. - ContainerInsights 또는 ContainerInstanceLogs
metadata 개체 아니요 로그 분석에 대한 메타데이터입니다.

InitContainerPropertiesDefinition 개체

속성 Type Required
이미지 string 아니요 init 컨테이너의 이미지입니다.
command 배열 아니요 init 컨테이너 내에서 exec 형식으로 실행할 명령입니다. - string
environmentVariables 배열 아니요 init 컨테이너에서 설정할 환경 변수입니다. - EnvironmentVariable 개체
volumeMounts 배열 아니요 init 컨테이너에 사용할 수 있는 볼륨 탑재입니다. - VolumeMount 개체

ContainerPort 개체

속성 Type Required
프로토콜 enum 아니요 포트와 연결된 프로토콜입니다. - TCP 또는 UDP
port 정수 컨테이너 그룹 내에서 노출되는 포트 번호입니다.

EnvironmentVariable 개체

속성 Type Required
name string 환경 변수의 이름입니다.
value string 아니요 환경 변수의 값.
secureValue string 아니요 보안 환경 변수 값입니다.

ResourceRequirements 개체

속성 Type Required
requests 개체 이 컨테이너 인스턴스의 리소스 요청입니다. - ResourceRequests 개체
제한 개체 아니요 이 컨테이너 인스턴스의 리소스 제한입니다. - ResourceLimits 개체

VolumeMount 개체

속성 Type Required
name string 볼륨 탑재의 이름입니다.
mountPath string 볼륨이 탑재되어야 하는 컨테이너 내 경로입니다. 콜론(:) 포함할 수 없습니다.
readOnly 부울 값 아니요 볼륨 탑재가 읽기 전용인지 여부를 나타내는 플래그입니다.

ContainerProbe 개체

속성 Type Required
exec 개체 아니요 검색할 실행 명령 - ContainerExec 개체
httpGet 개체 아니요 검색할 Http Get 설정입니다. - ContainerHttpGet 개체
initialDelaySeconds 정수 아니요 초기 지연 시간(초)입니다.
periodSeconds 정수 아니요 기간 초입니다.
failureThreshold 정수 아니요 실패 임계값입니다.
successThreshold 정수 아니요 성공 임계값입니다.
timeoutSeconds 정수 아니요 제한 시간(초)입니다.

ResourceRequests 개체

속성 Type Required
memoryInGB number 이 컨테이너 인스턴스의 메모리 요청(GB)입니다.
CPU number 이 컨테이너 인스턴스의 CPU 요청입니다.
gpu 개체 아니요 이 컨테이너 인스턴스의 GPU 요청입니다. - GpuResource 개체

ResourceLimits 개체

속성 Type Required
memoryInGB number 아니요 이 컨테이너 인스턴스의 메모리 제한(GB)입니다.
CPU number 아니요 이 컨테이너 인스턴스의 CPU 제한입니다.
gpu 개체 아니요 이 컨테이너 인스턴스의 GPU 한도입니다. - GpuResource 개체

ContainerExec 개체

속성 Type Required
command 배열 아니요 컨테이너 내 실행 명령입니다. - string

ContainerHttpGet 개체

속성 Type Required
경로 string 아니요 검색할 경로입니다.
port 정수 검색할 포트 번호입니다.
구성표 enum 아니요 스키마입니다. - http 또는 https
httpHeaders 개체 아니요 프로브에 포함된 HTTP 헤더입니다. - HttpHeaders 개체

HttpHeaders 개체

속성 Type Required
name string 아니요 헤더의 이름입니다.
value string 아니요 헤더의 값입니다.

Important

K80 및 P100 GPU SKU는 2023년 8월 31일까지 사용 중지됩니다. 이는 사용된 기본 VM의 사용 중지로 인해 발생합니다. NC 시리즈NCv2 시리즈 V100 SKU를 사용할 수 있지만 대신 Azure Kubernetes Service를 사용하는 것이 좋습니다. GPU 리소스는 완전히 지원되지 않으며 프로덕션 워크로드에 사용하면 안 됩니다. 현재 AKS로 마이그레이션하려면 다음 리소스를 사용합니다. AKS로 마이그레이션하는 방법

GpuResource 개체

속성 Type Required
count 정수 GPU 리소스의 수입니다.
sku enum GPU 리소스의 SKU입니다. - V100

다음 단계

YAML 파일을 사용하여 다중 컨테이너 그룹 배포 자습서를 참조하세요.

YAML 파일을 사용하여 가상 네트워크에서 컨테이너 그룹을 배포하거나 외부 볼륨을 탑재하는 예제를 참조하세요.