YAML 参考:Azure 容器实例
- Artículo
-
-
本文介绍 Azure 容器实例支持的、用于配置容器组的 YAML 文件的语法和属性。 使用 YAML 文件可将组配置输入到 Azure CLI 中的 az container create 命令。
YAML 文件是为可再现的部署配置容器组的便捷方式。 它可以取代资源管理器模板或 Azure 容器实例 SDK,以简洁的方式创建或更新容器组。
注意
本参考文章适用于 Azure 容器实例 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 对象
名称 |
类型 |
必选 |
价值 |
name |
字符串 |
是 |
容器组的名称。 |
apiVersion |
枚举 |
是 |
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 |
字符串 |
否 |
资源位置。 |
tags |
object |
否 |
资源标记。 |
identity |
object |
否 |
容器组的标识(如果已配置)。 - ContainerGroupIdentity 对象 |
properties |
object |
是 |
ContainerGroupProperties 对象 |
ContainerGroupIdentity 对象
名称 |
类型 |
必选 |
Value |
type |
枚举 |
否 |
容器组使用的标识类型。 类型“SystemAssigned ,UserAssigned”包含隐式创建的标识和一组用户分配的标识。 类型“None”会移除容器组中的所有标识。 - SystemAssigned、UserAssigned、SystemAssigned、UserAssigned、None |
userAssignedIdentities |
object |
否 |
与容器组关联的用户标识列表。 用户标识字典键引用是采用以下格式的 Azure 资源管理器资源 ID:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 |
ContainerGroupProperties 对象
Container 对象
ImageRegistryCredential 对象
名称 |
类型 |
必选 |
Value |
server |
string |
是 |
没有协议(例如“http”或“https”)的 Docker 映像注册表服务器。 |
username |
string |
否 |
专用注册表的用户名。 |
password |
string |
否 |
专用注册表的密码。 |
标识 |
字符串 |
否 |
用于进行身份验证的用户或系统分配的托管标识的资源 ID。 |
identityUrl |
字符串 |
否 |
专用注册表的标识 URL。 |
IpAddress 对象
名称 |
类型 |
必选 |
Value |
ports |
array |
是 |
容器组上公开的端口列表。 - Port 对象 |
type |
枚举 |
是 |
指定 IP 是否向公共 Internet 或专用虚拟网络公开。 - Public 或 Private |
ip |
string |
否 |
向公共 Internet 公开的 IP。 |
dnsNameLabel |
string |
否 |
IP 的 DNS 名称标签。 |
Volume 对象
名称 |
类型 |
必选 |
价值 |
name |
字符串 |
是 |
卷的名称。 |
azureFile |
object |
否 |
Azure 文件卷。 - AzureFileVolume 对象 |
emptyDir |
object |
否 |
空目录卷。 |
secret |
object |
否 |
机密卷。 |
gitRepo |
object |
否 |
Git 存储库卷。 - GitRepoVolume 对象 |
ContainerGroupDiagnostics 对象
ContainerGroupSubnetIds 对象
名称 |
类型 |
必选 |
Value |
id |
string |
是 |
子网的标识符。 |
name |
string |
否 |
子网的名称。 |
DnsConfiguration 对象
名称 |
类型 |
必选 |
Value |
nameServers |
array |
是 |
容器组的 DNS 服务器。 - string |
searchDomains |
string |
否 |
容器组中主机名查找的 DNS 搜索域。 |
options |
string |
否 |
容器组的 DNS 选项。 |
EncryptionProperties 对象
名称 |
类型 |
必选 |
值 |
vaultBaseUrl |
字符串 |
是 |
密钥保管库基础 URL。 |
keyName |
字符串 |
是 |
加密密钥名称。 |
keyVersion |
字符串 |
是 |
加密密钥版本。 |
InitContainerDefinition 对象
ContainerProperties 对象
Port 对象
名称 |
类型 |
必选 |
Value |
协议 |
枚举 |
否 |
与端口关联的协议。 - TCP 或 UDP |
port |
integer |
是 |
端口号。 |
AzureFileVolume 对象
名称 |
类型 |
必选 |
Value |
shareName |
string |
是 |
要以卷形式装载的 Azure 文件共享的名称。 |
readOnly |
boolean |
否 |
指示以卷形式装载的 Azure 文件共享是否为只读的标志。 |
storageAccountName |
string |
是 |
包含 Azure 文件共享的存储帐户的名称。 |
storageAccountKey |
string |
否 |
用于访问 Azure 文件共享的存储帐户访问密钥。 |
GitRepoVolume 对象
名称 |
类型 |
必选 |
Value |
目录 |
string |
否 |
目标目录名称。 不得包含“..”,也不能以其开头。 如果提供了“.”,则卷目录是 Git 存储库。 否则,卷包含子目录中具有给定名称的 Git 存储库(如果已指定)。 |
repository |
string |
是 |
存储库 URL |
revision |
string |
否 |
指定的修订版的提交哈希。 |
LogAnalytics 对象
名称 |
类型 |
必选 |
Value |
workspaceId |
string |
是 |
Log Analytics 的工作区 ID |
workspaceKey |
string |
是 |
Log Analytics 的工作区键 |
workspaceResourceId |
字符串 |
否 |
Log Analytics 的工作区资源 ID |
logType |
枚举 |
否 |
要使用的日志类型。 - ContainerInsights 或 ContainerInstanceLogs |
metadata |
object |
否 |
Log Analytics 的元数据。 |
InitContainerPropertiesDefinition 对象
名称 |
类型 |
必选 |
Value |
图像 |
字符串 |
否 |
Init 容器的映像。 |
command |
array |
否 |
要在 Init 容器中以 exec 形式执行的命令。 - string |
environmentVariables |
array |
否 |
要在 Init 容器中设置的环境变量。 - EnvironmentVariable 对象 |
volumeMounts |
array |
否 |
可用于 Init 容器的卷装载。 - VolumeMount 对象 |
ContainerPort 对象
名称 |
类型 |
必选 |
Value |
协议 |
枚举 |
否 |
与端口关联的协议。 - TCP 或 UDP |
port |
integer |
是 |
容器组中公开的端口号。 |
EnvironmentVariable 对象
名称 |
类型 |
必选 |
价值 |
name |
字符串 |
是 |
环境变量的名称。 |
value |
字符串 |
否 |
环境变量的值。 |
secureValue |
string |
否 |
安全环境变量的值。 |
ResourceRequirements 对象
VolumeMount 对象
名称 |
类型 |
必选 |
价值 |
name |
字符串 |
是 |
卷装入点的名称。 |
mountPath |
string |
是 |
容器中要将该卷装载到的路径。 不得包含冒号 (:)。 |
readOnly |
boolean |
否 |
指示卷装入点是否为只读的标志。 |
ContainerProbe 对象
名称 |
类型 |
必选 |
Value |
exec |
object |
否 |
用于探测的执行命令 - ContainerExec 对象 |
httpGet |
object |
否 |
用于探测的 Http Get 设置 - ContainerHttpGet 对象 |
initialDelaySeconds |
integer |
否 |
初始延迟秒数。 |
periodSeconds |
integer |
否 |
时间段秒数。 |
failureThreshold |
integer |
否 |
失败阈值。 |
successThreshold |
integer |
否 |
成功阈值。 |
timeoutSeconds |
integer |
否 |
超时秒数。 |
ResourceRequests 对象
名称 |
类型 |
必选 |
Value |
memoryInGB |
number |
是 |
此容器实例的内存请求 (GB)。 |
cpu |
number |
是 |
此容器实例的 CPU 请求。 |
gpu |
object |
否 |
此容器实例的 GPU 请求。 - GpuResource 对象 |
ResourceLimits 对象
名称 |
类型 |
必选 |
Value |
memoryInGB |
number |
否 |
此容器实例的内存限制 (GB)。 |
cpu |
number |
否 |
此容器实例的 CPU 限制。 |
gpu |
object |
否 |
此容器实例的 GPU 限制。 - GpuResource 对象 |
ContainerExec 对象
名称 |
类型 |
必选 |
Value |
command |
array |
否 |
要在容器中执行的命令。 - string |
ContainerHttpGet 对象
名称 |
类型 |
必选 |
Value |
path |
string |
否 |
要探测的路径。 |
port |
integer |
是 |
要探测的端口号。 |
scheme |
枚举 |
否 |
方案。 - http 或 https |
httpHeaders |
object |
否 |
探测中包含的 HTTP 标头。 - HttpHeaders 对象 |
名称 |
类型 |
必选 |
价值 |
name |
string |
否 |
标头名称。 |
值 |
字符串 |
否 |
标头的值。 |
重要
K80 和 P100 GPU SKU 将于 2023 年 8 月 31 日停用。 这是因为使用的基础 VM 将停用:NC 系列和 NCv2 系列 尽管 V100 SKU 将可用,但建议改用使用 Azure Kubernetes 服务。 GPU 资源不完全受支持,不应用于生产工作负荷。 立即使用以下资源迁移到 AKS:如何迁移到 AKS。
GpuResource 对象
名称 |
类型 |
必选 |
Value |
count |
integer |
是 |
GPU 资源计数。 |
sku |
枚举 |
是 |
GPU 资源的 SKU。 - V100 |
后续步骤
参阅教程使用 YAML 文件部署多容器组。
参阅使用 YAML 文件在虚拟网络中部署容器组或装载外部卷的示例。