共用方式為


YAML 參考:Azure 容器執行個體

本文涵蓋 Azure 容器執行個體 設定容器群組所支援 YAML 檔案的語法和屬性。 使用 YAML 檔案將群組組態輸入 Azure CLI 中的 az container create 命令。

YAML 檔案是設定容器群組以進行可重現部署的便利方式。 這是使用 Resource Manager 範本或 Azure 容器執行個體 SDK 來建立或更新容器群組的簡潔替代方案。

注意

此參考適用於 #DE36929F272B247049EC8DDF92D78C8A1 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 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes 容器群組的名稱。
apiVersion enum Yes 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 字串 No 資源位置。
標記 object No 資源標記。
identity object No 如果已設定,容器群組的身分識別。 - ContainerGroupIdentity 物件
內容 object Yes ContainerGroupProperties 物件

ContainerGroupIdentity 物件

名稱 類型​​ 必要
type 列舉 No 用於容器群組的身分識別類型。 類型 'SystemAssigned, UserAssigned' 包含隱含建立的身分識別和一組使用者指派的身分識別。 類型 『None』 會從容器群組中移除任何身分識別。 - SystemAssigned、UserAssigned、SystemAssigned、UserAssigned、None
userAssignedIdentities object No 與容器群組相關聯的使用者身分識別清單。 使用者身分識別字典索引鍵參考的格式為 Azure Resource Manager 資源標識符:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'。

ContainerGroupProperties 物件

名稱 類型​​ 必要
containers 陣列 Yes 容器群組內的容器。 - Container 物件
imageRegistryCredentials 陣列 No 建立容器群組的來源映像登錄認證。 - ImageRegistryCredential 物件
restartPolicy enum No 重新啟動容器群組內所有容器的原則。 - Always 一律重新啟動 - OnFailure 失敗時重新啟動 - Never 永不重新啟動。 - Always、OnFailure、Never
ipAddress object No 容器群組的IP位址類型。 - IpAddress 物件
osType enum Yes 容器群組中容器所需的操作系統類型。 - Windows 或 Linux
磁碟區 陣列 No 此容器群組中容器可以掛接的磁碟區清單。 - Volume 物件
診斷 object No 容器群組的診斷資訊。 - ContainerGroupDiagnostics 物件
subnetIds object No 容器群組的子網資訊。 - ContainerGroupSubnetIds 物件
dnsConfig object No 容器群組的 DNS 設定資訊。 - DnsConfiguration 物件
SKU enum No 容器群組的 SKU - 標準或專用
encryptionProperties object No 容器群組的加密屬性。 - EncryptionProperties 物件
initContainers 陣列 No 容器群組的 init 容器。 - InitContainerDefinition 物件

Container 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes 容器實例的使用者提供名稱。
內容 object Yes 容器實例的屬性。 - ContainerProperties 物件

ImageRegistryCredential 物件

名稱 類型​​ 必要
伺服器 字串 Yes 沒有通訊協定的 Docker 映射登錄伺服器,例如 「HTTP」 和 「HTTPs」。
username 字串 No 私人登錄的用戶名稱。
password 字串 No 私人登錄的密碼。
identity 字串 No 用來驗證的使用者或系統指派受控識別的資源標識碼。
identityUrl 字串 No 私人登錄的識別 URL。

IpAddress 物件

名稱 類型​​ 必要
連接埠 陣列 Yes 容器群組上公開的埠清單。 - Port 物件
type 列舉 Yes 指定IP是否公開至公用因特網或專用虛擬網路。 - 公用或私人
ip 字串 No 公開至公用因特網的IP。
dnsNameLabel 字串 No IP 的 Dns 名稱標籤。

Volume 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes 磁碟區的名稱。
azureFile object No Azure 檔案磁碟區。 - AzureFileVolume 物件
emptyDir object No 空的目錄磁碟區。
secret object No 秘密磁碟區。
gitRepo object No git 存放庫磁碟區。 - GitRepoVolume 物件

ContainerGroupDiagnostics 物件

名稱 類型​​ 必要
logAnalytics object No 容器群組記錄分析資訊。 - LogAnalytics 物件

ContainerGroupSubnetIds 物件

名稱 類型​​ 必要
id string Yes 子網的標識碼。
NAME string No 子網路的名稱。

DnsConfiguration 物件

名稱 類型​​ 必要
nameServers 陣列 Yes 容器群組的 DNS 伺服器。 - 字串
searchDomains 字串 No 容器群組中主機名查閱的 DNS 搜尋網域。
電子商務選項中 字串 No 容器群組的 DNS 選項。

EncryptionProperties 物件

名稱 類型​​ 必要
vaultBaseUrl 字串 Yes keyvault 基底 URL。
keyName 字串 Yes 加密金鑰名稱。
keyVersion 字串 Yes 加密金鑰版本。

InitContainerDefinition 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes init 容器的名稱。
內容 object Yes init 容器的屬性。 - InitContainerPropertiesDefinition 物件

ContainerProperties 物件

名稱 類型​​ 必要
image 字串 Yes 用來建立容器實例的映像名稱。
命令 陣列 No 要以 exec 形式在容器實例內執行的命令。 - 字串
連接埠 陣列 No 容器實例上公開的埠。 - ContainerPort 物件
environmentVariables 陣列 No 要設定於容器實例中的環境變數。 - EnvironmentVariable 物件
resources object Yes 容器實例的資源需求。 - ResourceRequirements 物件
volumeMounts 陣列 No 磁碟區會掛接給容器實例。 - VolumeMount 物件
livenessProbe object No 活躍度探查。 - ContainerProbe 物件
readinessProbe object No 整備探查。 - ContainerProbe 物件

Port 物件

名稱 類型​​ 必要
protocol enum No 與埠相關聯的通訊協定。 - TCP 或 UDP
port 整數 Yes 連接埠號碼。

AzureFileVolume 物件

名稱 類型​​ 必要
shareName 字串 Yes 要掛接為磁碟區的 Azure 檔案共享名稱。
readOnly boolean No 旗標,指出掛接為磁碟區的 Azure 檔案共用是否為唯讀。
storageAccountName 字串 Yes 包含 Azure 檔案共用的記憶體帳戶名稱。
storageAccountKey 字串 No 用來存取 Azure 檔案共用的記憶體帳戶存取金鑰。

GitRepoVolume 物件

名稱 類型​​ 必要
目錄 字串 No 目標目錄名稱。 不得包含或開頭為 『..』。 如果提供 『.』,磁碟區目錄就是 Git 存放庫。 否則,如果指定,磁碟區會在具有指定名稱的子目錄中包含 git 存放庫。
repository 字串 Yes 存放庫 URL
修訂 字串 No 認可指定修訂的哈希。

LogAnalytics 物件

名稱 類型​​ 必要
workspaceId 字串 Yes 記錄分析的工作區標識碼
workspaceKey 字串 Yes 記錄分析的工作區金鑰
workspaceResourceId 字串 No 記錄分析的工作區資源標識碼
logType enum No 要使用的記錄類型。 - ContainerInsights 或 ContainerInstanceLogs
中繼資料 object No 記錄分析的元數據。

InitContainerPropertiesDefinition 物件

名稱 類型​​ 必要
image 字串 No init 容器的映像。
命令 陣列 No 在 exec 表單的 init 容器內執行的命令。 - 字串
environmentVariables 陣列 No 在 init 容器中設定的環境變數。 - EnvironmentVariable 物件
volumeMounts 陣列 No 磁碟區掛接可供 init 容器使用。 - VolumeMount 物件

ContainerPort 物件

名稱 類型​​ 必要
protocol enum No 與埠相關聯的通訊協定。 - TCP 或 UDP
port 整數 Yes 容器群組內公開的埠號碼。

EnvironmentVariable 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes 環境變數的名稱。
value 字串 No 環境變數的值。
secureValue 字串 No 安全環境變數的值。

ResourceRequirements 物件

名稱 類型​​ 必要
requests object Yes 此容器實例的資源要求。 - ResourceRequests 物件
limits object No 此容器實例的資源限制。 - ResourceLimits 物件

VolumeMount 物件

名稱 類型​​ 必要 數值
NAME 字串 Yes 磁碟區掛接的名稱。
mountPath 字串 Yes 容器內應掛接磁碟區的路徑。 不得包含冒號 (:)。
readOnly boolean No 指出磁碟區掛接是否為唯讀的旗標。

ContainerProbe 物件

名稱 類型​​ 必要
exec object No 探查的執行命令 - ContainerExec 物件
httpGet object No 要探查的 Http Get 設定 - ContainerHttpGet 物件
initialDelaySeconds 整數 No 初始延遲秒。
periodSeconds 整數 No 句點秒數。
failureThreshold 整數 No 失敗臨界值。
successThreshold 整數 No 成功臨界值。
timeoutSeconds 整數 No 逾時秒數。

ResourceRequests 物件

名稱 類型​​ 必要
memoryInGB 數值 Yes 此容器實例的 GB 記憶體要求。
cpu 數值 Yes 這個容器實例的CPU要求。
gpu object No 這個容器實例的 GPU 要求。 - GpuResource 物件

ResourceLimits 物件

名稱 類型​​ 必要
memoryInGB 數值 No 此容器實例的 GB 記憶體限制。
cpu 數值 No 這個容器實例的CPU限制。
gpu object No 此容器實例的 GPU 限制。 - GpuResource 物件

ContainerExec 物件

名稱 類型​​ 必要
命令 陣列 No 在容器內執行的命令。 - 字串

ContainerHttpGet 物件

名稱 類型​​ 必要
path 字串 No 探查的路徑。
port 整數 Yes 要探查的埠號碼。
scheme enum No 配置。 - HTTP 或 HTTPs
httpHeaders object No 探查中包含的 HTTP 標頭。 - HttpHeaders 物件

HttpHeaders 物件

名稱 類型​​ 必要 數值
NAME string No 標頭的名稱。
value 字串 No 標頭的值。

重要

K80 和 P100 GPU SKU 將於 2023 年 8 月 31 日前淘汰。 這是因為使用的基礎 VM (NC 系列NCv2 系列) 已淘汰;雖然 V100 SKU 可供使用,但建議改用 Azure Kubernetes Service。 GPU 資源未完全受支援,不應用於生產工作負載。 使用下列資源立即移轉至 AKS:如何移轉至 AKS

GpuResource 物件

名稱 類型​​ 必要
計數 整數 Yes GPU 資源的計數。
SKU enum Yes GPU 資源的 SKU。 - V100

下一步

請參閱使用 YAML 檔案部署多容器群組教學課程

請參閱使用 YAML 檔案在虛擬網路掛接外部磁碟區中部署容器群組的範例。