Referensi YAML: Azure Container Instances

Artikel ini membahas sintaks dan properti untuk file YAML yang didukung oleh Azure Container Instances untuk mengonfigurasi grup kontainer. Gunakan file YAML untuk memasukkan konfigurasi grup ke perintah az container create di Azure CLI.

File YAML adalah cara mudah untuk mengonfigurasi grup kontainer untuk penyebaran yang dapat direproduksi. Ini adalah alternatif singkat untuk menggunakan Templat Resource Manager atau SDK Azure Container Instances untuk membuat atau memperbarui grup kontainer.

Catatan

Referensi ini berlaku untuk file YAML untuk Azure Container Instances versi REST API 2021-10-01.

Skema

Skema untuk file YAML mengikuti, termasuk komentar untuk menyoroti properti utama. Untuk deskripsi properti dalam skema ini, lihat bagian Nilai properti.

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

Nilai properti

Tabel berikut menjelaskan nilai yang perlu Anda atur dalam skema.

Objek Microsoft.ContainerInstance/containerGroups

Nama Jenis Diperlukan Nilai
nama string Ya Nama grup kontainer.
apiVersion enum Ya 2021-10-01 (terbaru), 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
lokasi string Tidak Lokasi sumber daya.
tag objek Tidak Tag sumber daya.
identitas objek Tidak Identitas grup kontainer, jika dikonfigurasi. - Objek ContainerGroupIdentity
properti objek Ya Objek ContainerGroupProperties

Objek ContainerGroupIdentity

Nama Jenis Diperlukan Nilai
jenis enum Tidak Jenis identitas yang digunakan untuk grup kontainer. Jenis 'SystemAssigned, UserAssigned' mencakup identitas yang dibuat secara implisit dan sekumpulan identitas yang ditetapkan pengguna. Jenis 'None' akan menghapus identitas apa pun dari grup kontainer. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities objek Tidak Daftar identitas pengguna yang terkait dengan grup kontainer. Referensi kunci kamus identitas pengguna akan menjadi ID sumber daya Azure Resource Manager dalam formulir: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Objek ContainerGroupProperties

Nama Jenis Diperlukan Nilai
kontainer array Ya Kontainer dalam grup kontainer. - Objek kontainer
imageRegistryCredentials array Tidak Kredensial registri gambar tempat grup kontainer dibuat. - Objek ImageRegistryCredential
restartPolicy enum Tidak Kebijakan hidupkan ulang untuk semua kontainer dalam grup kontainer. - Always Selalu hidupkan ulang- OnFailure Hidupkan ulang pada kegagalan- Never Jangan pernah hidupkan ulang. - Always, OnFailure, Never
ipAddress objek Tidak Jenis alamat IP dari grup kontainer. - Objek IpAddress
osType enum Ya Jenis sistem operasi yang diperlukan oleh kontainer dalam grup kontainer. - Windows atau Linux
volume array Tidak Daftar volume yang dapat dipasang oleh kontainer dalam grup kontainer ini. - Objek volume
diagnostik objek Tidak Informasi diagnostik untuk grup kontainer. - Objek ContainerGroupDiagnostics
subnetId objek Tidak Informasi subnet untuk grup kontainer. - Objek ContainerGroupSubnetIds
dnsConfig objek Tidak Informasi konfigurasi DNS untuk grup kontainer. - Objek DnsConfiguration
sku enum Tidak SKU untuk grup kontainer - Standar atau Khusus
encryptionProperties objek Tidak Properti enkripsi untuk grup kontainer. - Objek EncryptionProperties
initContainers array Tidak Kontainer init untuk grup kontainer. - Objek InitContainerDefinition

Objek kontainer

Nama Jenis Diperlukan Nilai
nama string Ya Nama instans kontainer yang disediakan pengguna.
properti objek Ya Properti instans kontainer. - Objek ContainerProperties

Objek ImageRegistryCredential

Nama Jenis Diperlukan Nilai
server string Ya Server registri gambar Docker tanpa protokol seperti "http" dan "https".
nama pengguna string Tidak Nama pengguna untuk registri privat.
kata sandi string Tidak Kata sandi untuk registri privat.
identity string Tidak ID sumber daya pengguna atau identitas terkelola yang ditetapkan sistem yang digunakan untuk mengautentikasi.
identityUrl string Tidak URL identitas untuk registri pribadi.

Objek IpAddress

Nama Jenis Diperlukan Nilai
port array Ya Daftar port yang terekspos di grup kontainer. - Objek port
jenis enum Ya Menentukan apakah IP terekspos ke internet publik atau VNET pribadi. - Publik atau Pribadi
ip string Tidak IP yang terekspos ke internet publik.
dnsNameLabel string Tidak Label nama dns untuk IP.

Objek volume

Nama Jenis Diperlukan Nilai
nama string Ya Nama volume.
azureFile objek Tidak Volume File Azure. - Objek AzureFileVolume
emptyDir objek Tidak Volume direktori kosong.
rahasia objek Tidak Volume rahasia.
gitRepo objek Tidak Volume repo git. - Objek GitRepoVolume

Objek ContainerGroupDiagnostics

Nama Jenis Diperlukan Nilai
logAnalytics objek Tidak Informasi analitik log grup kontainer. - Objek LogAnalytics

Objek ContainerGroupSubnetIds

Nama Jenis Diperlukan Nilai
id string Ya Pengidentifikasi untuk subnet.
nama string Tidak Nama subnetnya.

Objek DnsConfiguration

Nama Jenis Diperlukan Nilai
nameServers array Ya Server DNS untuk grup kontainer. - string
searchDomains string Tidak Domain pencarian DNS untuk pencarian nama host di grup kontainer.
opsi string Tidak Opsi DNS untuk grup kontainer.

Objek EncryptionProperties

Nama Jenis Diperlukan Nilai
vaultBaseUrl string Ya Url dasar keyvault.
keyName string Ya Nama kunci enkripsi.
keyVersion string Ya Versi kunci enkripsi.

Objek InitContainerDefinition

Nama Jenis Diperlukan Nilai
nama string Ya Nama untuk kontainer init.
properti objek Ya Properti untuk kontainer init. - Objek InitContainerPropertiesDefinition

Objek ContainerProperties

Nama Jenis Diperlukan Nilai
gambar string Ya Nama gambar yang digunakan untuk membuat instans kontainer.
perintah array Tidak Perintah untuk menjalankan di dalam instans kontainer dalam bentuk eksekusi. - string
port array Tidak Port yang terekspos di instans kontainer. - Objek ContainerPort
environmentVariables array Tidak Variabel lingkungan yang akan diatur dalam instans kontainer. - Objek EnvironmentVariable
sumber daya objek Ya Persyaratan sumber daya dari instans kontainer. - Objek ResourceRequirements
volumeMounts array Tidak Mount volume yang tersedia untuk instans kontainer. - Objek VolumeMount
livenessProbe objek Tidak Penyelidikan liveness. - Objek ContainerProbe
readinessProbe objek Tidak Penyelidikan kesiapan. - Objek ContainerProbe

Objek port

Nama Jenis Diperlukan Nilai
protokol enum Tidak Protokol yang terkait dengan port. - TCP atau UDP
port integer Ya Nomor port.

Objek AzureFileVolume

Nama Jenis Diperlukan Nilai
shareName string Ya Nama pembagian File Azure yang akan dipasang sebagai volume.
readOnly boolean Tidak Bendera yang menunjukkan apakah File Azure yang dibagikan dipasang sebagai volume bersifat baca-saja.
storageAccountName string Ya Nama akun penyimpanan yang berisi pembagian File Azure.
storageAccountKey string Tidak Kunci akses akun penyimpanan yang digunakan untuk mengakses pembagian File Azure.

Objek GitRepoVolume

Nama Jenis Diperlukan Nilai
direktori string Tidak Nama direktori target. Tidak boleh berisi atau dimulai dengan '..'. Jika '.' disediakan, direktori volume akan menjadi repositori git. Jika tidak, jika ditentukan, volume akan berisi repositori git di subdirektori dengan nama yang diberikan.
repositori string Ya URL repositori
revisi string Tidak Terapkan hash untuk revisi yang ditentukan.

Objek LogAnalytics

Nama Jenis Diperlukan Nilai
workspaceId string Ya ID ruang kerja untuk analitik log
workspaceKey string Ya Kunci ruang kerja untuk analitik log
workspaceResourceId string Tidak ID sumber daya ruang kerja untuk analitik log
logType enum Tidak Jenis log yang akan digunakan. - ContainerInsights atau ContainerInstanceLogs
metadata objek Tidak Metadata untuk analitik log.

Objek InitContainerPropertiesDefinition

Nama Jenis Diperlukan Nilai
gambar string Tidak Gambar kontainer init.
perintah array Tidak Perintah untuk menjalankan dalam kontainer init dalam bentuk eksekusi. - string
environmentVariables array Tidak Variabel lingkungan yang akan diatur dalam kontainer init. - Objek EnvironmentVariable
volumeMounts array Tidak Mount volume yang tersedia untuk kontainer init. - Objek VolumeMount

Objek ContainerPort

Nama Jenis Diperlukan Nilai
protokol enum Tidak Protokol yang terkait dengan port. - TCP atau UDP
port integer Ya Nomor port yang terekspos dalam grup kontainer.

Objek EnvironmentVariable

Nama Jenis Diperlukan Nilai
nama string Ya Nama variabel lingkungan.
nilai string Tidak Nilai variabel lingkungan.
secureValue string Tidak Nilai variabel lingkungan aman.

Objek ResourceRequirements

Nama Jenis Diperlukan Nilai
permintaan objek Ya Permintaan sumber daya instans kontainer ini. - Objek ResourceRequests
batas objek Tidak Batas sumber daya instans kontainer ini. - Objek ResourceLimits

Objek VolumeMount

Nama Jenis Diperlukan Nilai
nama string Ya Nama mount volume.
mountPath string Ya Jalur dalam kontainer tempat volume harus dipasang. Tidak boleh ada titik dua (:).
readOnly boolean Tidak Bendera yang menunjukkan apakah mount volume bersifat baca-saja.

Objek ContainerProbe

Nama Jenis Diperlukan Nilai
eksekusi objek Tidak Perintah eksekusi untuk menyelidiki - Objek ContainerExec
httpGet objek Tidak Pengaturan Http Get untuk menyelidiki - objek ContainerHttpGet
inisialDelaySeconds integer Tidak Detik penundaan awal.
periodSeconds integer Tidak Detik periode.
failureThreshold integer Tidak Ambang kegagalan.
successThreshold integer Tidak Ambang keberhasilan.
timeoutSeconds integer Tidak Detik waktu habis.

Objek ResourceRequests

Nama Jenis Diperlukan Nilai
memoryInGB nomor Ya Permintaan memori dalam GB dari instans kontainer ini.
cpu nomor Ya Permintaan CPU instans kontainer ini.
gpu objek Tidak Permintaan GPU instans kontainer ini. - Objek GpuResource

Objek ResourceLimits

Nama Jenis Diperlukan Nilai
memoryInGB nomor Tidak Batas memori dalam GB dari instans kontainer ini.
cpu nomor Tidak Batas CPU instans kontainer ini.
gpu objek Tidak Batas GPU instans kontainer ini. - Objek GpuResource

Objek ContainerExec

Nama Jenis Diperlukan Nilai
perintah array Tidak Perintah untuk menjalankan dalam kontainer. - string

Objek ContainerHttpGet

Nama Jenis Diperlukan Nilai
jalur string Tidak Jalur menuju penyelidikan.
port integer Ya Nomor port untuk diselidiki.
skema enum Tidak Skema. - http atau https
httpHeader objek Tidak Header HTTP disertakan dalam pemeriksaan. - Objek HttpHeaders

Objek HttpHeaders

Nama Jenis Diperlukan Nilai
nama string Tidak Nama headernya.
nilai string Tidak Nilai header.

Penting

SKU GPU K80 dan P100 dihentikan pada 31 Agustus 2023. Hal ini disebabkan oleh penghentian VM yang mendasar yang digunakan: Seri NC dan Seri NCv2 Meskipun SKU V100 akan tersedia, V100 akan direceommended untuk menggunakan Azure Kubernetes Service sebagai gantinya. Sumber daya GPU tidak didukung sepenuhnya dan tidak boleh digunakan untuk beban kerja produksi. Gunakan sumber daya berikut untuk bermigrasi ke AKS hari ini: Cara Bermigrasi ke AKS.

Objek GpuResource

Nama Jenis Diperlukan Nilai
jumlah integer Ya Jumlah sumber daya GPU.
sku enum Ya SKU sumber daya GPU. - V100

Langkah berikutnya

Lihat tutorial Menyebarkan grup multikontainer menggunakan file YAML.

Lihat contoh penggunaan file YAML untuk menyebarkan grup kontainer dalam jaringan virtual atau yang memasang volume eksternal.