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-01
YAML 파일에 적용됩니다.
스키마
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 개체
컨테이너 개체
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 개체
ContainerProperties 개체
포트 개체
속성
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 개체
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 개체
속성
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 파일을 사용하여 가상 네트워크 에서 컨테이너 그룹을 배포하거나 외부 볼륨을 탑재 하는 예제를 참조하세요.