
# 创建部署 - CreateDeployments
#### 功能介绍
创建部署
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEF/doc?api=CreateDeployments)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ief/ief_02_1003.html)。
#### URI
POST /v3/{project_id}/edgemgr/deployments
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID |
#### 请求参数
表2请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| Content-Type    | 是    | String | 消息体的类型（格式），默认取值为"application/json"。                       |
| X-Auth-Token    | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| ief-instance-id | 否    | String | 企业版实例ID，专业版实例为空值。                                         |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型                                                                                    | 描述                                          |
|:---|:---|:---|:---|
| name        | 是    | String                                                                                  | 部署名称，只允许英文小写字母、数字、中划线，最大长度32，英文小写字母或数字开头和结尾 |
| description | 否    | String                                                                                  | 部署描述                                        |
| source      | 否    | String                                                                                  | 应用部署来源：边缘市场（iem）或自定义()                      |
| group_id    | 否    | String                                                                                  | 应用部署到指定节点组，与node_ids二选一                     |
| node_ids    | 是    | Array of strings                                                                        | 应用部署到指定节点，当前只支持一个边缘节点                       |
| tags        | 否    | Array of [Attributes] objects                   | 节点属性                                        |
| deployment  | 是    | [CreateAppsInDeploymentV3] object | 部署参数配置                                      |
   
 表4Attributes 
| 参数    | 是否必选 | 参数类型   | 描述                                               |
|:---|:---|:---|:---|
| key   | 否    | String | 节点属性的key值，长度取值范围为1\~128， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | 否    | String | 节点属性的value值，长度取值范围为1\~256， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表5CreateAppsInDeploymentV3 
| 参数          | 是否必选 | 参数类型                                                          | 描述         |
|:---|:---|:---|:---|
| replicas    | 是    | Integer                                                       | 副本数量       |
| template    | 是    | [PodRequest] object   | 应用部署模板     |
| annotations | 否    | [Annotations] object | 应用扩展功能配置选项 |
   
 表6PodRequest 
| 参数              | 是否必选 | 参数类型                                                                      | 描述               |
|:---|:---|:---|:---|
| configs         | 是    | [PodConfigs] object               | 应用实例配置           |
| affinity        | 否    | [Affinity] object                   | 应用实例亲和性规则，仅企业版支持 |
| init_containers | 否    | Array of [ContainerDef] objects | 应用部署init业务容器     |
| containers      | 是    | Array of [ContainerDef] objects | 应用部署业务容器         |
   
 表7PodConfigs 
| 参数                 | 是否必选 | 参数类型    | 描述                                                                                                                                                   |
|:---|:---|:---|:---|
| host_network       | 否    | Boolean | 应用实例是否启用主机网络，不启用则使用端口映射，默认值false                                                                                                                     |
| host_pid           | 否    | Boolean | 应用实例是否与主机共PID命名空间，默认值false                                                                                                                           |
| migration          | 否    | Boolean | 应用实例故障是否迁移，指定节点组部署时必选，默认值false                                                                                                                       |
| restart_policy     | 是    | String  | 应用实例重启策略，可选值Always、OnFailure、Never                                                                                                                   |
| toleration_seconds | 否    | Integer | 应用实例故障容忍时间，容忍时间到达后迁移应用实例，只在指定节点组部署时生效                                                                                                                |
| dns_policy         | 否    | String  | 应用实例DNS策略，可选值Default、ClusterFirst、ClusterFirstWithHostNet，默认为Default。应用实例启用主机网络时只能选填Default、ClusterFirstWithHostNet，不启用主机网络时只能选填Default、ClusterFirst |
   
 表8Affinity 
| 参数              | 是否必选 | 参数类型                                                                  | 描述       |
|:---|:---|:---|:---|
| nodeAffinity    | 否    | [nodeAffinity] object       | 节点亲和规则   |
| podAffinity     | 否    | [podAffinity] object         | Pod亲和规则  |
| podAntiAffinity | 否    | [podAntiAffinity] object | Pod反亲和规则 |
   
 表9nodeAffinity 
| 参数                                              | 是否必选 | 参数类型                                                                                            | 描述                                                              |
|:---|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | 否    | Array of [PreferredSchedulingTerm] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | 否    | [RequiredDuringScheduling] object         | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表10PreferredSchedulingTerm 
| 参数         | 是否必选 | 参数类型                                                        | 描述              |
|:---|:---|:---|:---|
| preference | 否    | [preference] object | 与相应权重关联的节点选择器项。 |
| weight     | 否    | Integer                                                     | 权重，范围为1-100     |
   
 表11preference 
| 参数               | 是否必选 | 参数类型                                                                            | 描述      |
|:---|:---|:---|:---|
| matchExpressions | 否    | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表12RequiredDuringScheduling 
| 参数                | 是否必选 | 参数类型                                                                              | 描述     |
|:---|:---|:---|:---|
| nodeSelectorTerms | 否    | Array of [MatchExpressions] objects | 节点选择规则 |
   
 表13MatchExpressions 
| 参数               | 是否必选 | 参数类型                                                                            | 描述      |
|:---|:---|:---|:---|
| matchExpressions | 否    | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表14podAffinity 
| 参数                                              | 是否必选 | 参数类型                                                                                          | 描述                                                              |
|:---|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | 否    | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | 否    | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表15podAntiAffinity 
| 参数                                              | 是否必选 | 参数类型                                                                                          | 描述                                                              |
|:---|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | 否    | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | 否    | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表16WeightPodAffinityTerms 
| 参数              | 是否必选 | 参数类型                                                                  | 描述          |
|:---|:---|:---|:---|
| podAffinityTerm | 否    | [podAffinityTerm] object | Pod亲和规则     |
| weight          | 否    | Integer                                                               | 权重，范围为1-100 |
   
 表17podAffinityTerm 
| 参数            | 是否必选 | 参数类型                                                              | 描述                                                                               |
|:---|:---|:---|:---|
| labelSelector | 否    | [LabelSelector] object | 标签选择器                                                                            |
| namespaces    | 否    | Array of strings                                                  | 命名空间                                                                             |
| topologyKey   | 否    | String                                                            | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表18LabelSelector 
| 参数               | 是否必选 | 参数类型                                                                            | 描述                                                                                      |
|:---|:---|:---|:---|
| matchExpressions | 否    | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | 否    | Map\<String,String\>                                                            | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表19PodAffinityTerm 
| 参数            | 是否必选 | 参数类型                                                              | 描述                                                                               |
|:---|:---|:---|:---|
| labelSelector | 否    | [labelSelector] object | 标签选择器                                                                            |
| namespaces    | 否    | Array of strings                                                  | 命名空间                                                                             |
| topologyKey   | 否    | String                                                            | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表20labelSelector 
| 参数               | 是否必选 | 参数类型                                                                            | 描述                                                                                      |
|:---|:---|:---|:---|
| matchExpressions | 否    | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | 否    | Map\<String,String\>                                                            | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表21MatchExpression 
| 参数       | 是否必选 | 参数类型             | 描述                                                                                                                                     |
|:---|:---|:---|:---|
| key      | 否    | String           | 规则的标签                                                                                                                                  |
| operator | 否    | String           | 操作符，取值如下： - In：标签值需要在values的列表中 - NotIn：标签的值不在某个列表中 - Exists：某个标签存在 - DoesNotExist：某个标签不存在 - Gt：标签的值大于某个值（字符串比较） - Lt：标签的值小于某个值（字符串比较） |
| values   | 否    | Array of strings | 一组标签值。 - 如果运算符为In或NotIn，则值数组必须非空。 - 如果运算符为Exists 或DoesNotExist，则值数组必须为空。 - 如果运算符是Gt或Lt，则值数组必须具有单个元素，该元素将被解释为整数。                        |
   
 表22ContainerDef 
| 参数              | 是否必选 | 参数类型                                                                                              | 描述                                                                  |
|:---|:---|:---|:---|
| name            | 是    | String                                                                                            | 容器名称，只允许英文小写字母、数字、中划线，最大长度32， 英文小写字母或数字开头和结尾                        |
| image_url       | 是    | String                                                                                            | 容器镜像URL                                                             |
| args            | 否    | Array of strings                                                                                  | 容器启动参数，字符总长度最大为65536                                                |
| command         | 否    | Array of strings                                                                                  | 容器启动命令，字符总长度最大为65536。 command支持使用数组定义多条命令，但在IEF控制台界面只会显示第一条命令。      |
| resources       | 否    | [DeploymentResources] object                     | 创建容器时使用的资源                                                          |
| envs            | 否    | Array of [Env] objects                                           | 环境变量                                                                |
| ports           | 否    | Array of [HostContainerPortMapping] objects | 容器端口映射值                                                             |
| privileged      | 否    | Boolean                                                                                           | 是否启用特权容器,默认值false                                                   |
| run_as_user     | 否    | Integer                                                                                           | 容器运行用户ID，输入范围为0\~65534的整数                                           |
| readiness_probe | 否    | [Probe] object                                                 | 探针配置                                                                |
| liveness_probe  | 否    | [Probe] object                                                 | 探针配置                                                                |
| version         | 否    | String                                                                                            | 容器镜像版本                                                              |
| volumes         | 否    | Array of [Volumes] objects                                   | 卷配置                                                                 |
| npu_type        | 否    | String                                                                                            | NPU类型，支持D310、D310B，支持填写： - D310：D310类型 - D310B：D310B类型 - 空值：D310类型。 |
   
 表23DeploymentResources 
| 参数       | 是否必选 | 参数类型                 | 描述                                                                                                                                                      |
|:---|:---|:---|:---|
| limits   | 否    | Map\<String,String\> | - 允许容器使用的最大资源，key值支持填写：cpu, memory, gpu, npu。 - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。 |
| requests | 否    | Map\<String,String\> | - 容器需要使用的最小资源，key值支持填写：cpu, memory, gpu, npu - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。  |
   
 表24Env 
| 参数         | 是否必选 | 参数类型                                                      | 描述                                                          |
|:---|:---|:---|:---|
| name       | 是    | String                                                    | 环境变量的key，由大小写字母或下划线开头，由数字、大小写字母、下划线组成，最大长度2048个字符，不允许重复     |
| value      | 否    | String                                                    | 环境变量的value，最大长度20480个字符。value、value_from和field_path必须三选一使用。 |
| value_from | 否    | [ValueFrom] object | 环境变量可使用配置项和密钥导入                                             |
| field_path | 否    | String                                                    | 该参数目前只支持赋值"status.hostIP"，即引用边缘节点的IP地址作为环境变量。               |
   
 表25ValueFrom 
| 参数        | 是否必选 | 参数类型                                                        | 描述                                              |
|:---|:---|:---|:---|
| secret    | 否    | [Secrets] object       | 环境变量引用密钥时使用。使用ValueFrom时，secret与configmap必须二选一。 |
| configmap | 否    | [ConfigsMap] object | 环境变量引用配置项时使用。                                   |
   
 表26Secrets 
| 参数   | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| name | 是    | String | 密钥的名称  |
| key  | 是    | String | 密钥的属性名 |
   
 表27ConfigsMap 
| 参数   | 是否必选 | 参数类型   | 描述      |
|:---|:---|:---|:---|
| name | 是    | String | 配置项的名称  |
| key  | 是    | String | 配置项的属性名 |
   
 表28HostContainerPortMapping 
| 参数              | 是否必选 | 参数类型                                                              | 描述                                         |
|:---|:---|:---|:---|
| container_port  | 是    | Integer                                                           | 构成一对映射的容器端口                                |
| host_port       | 否    | Integer                                                           | 构成一对映射的物理机对应网卡端口                           |
| host_ip         | 否    | String                                                            | 对应网卡地址                                     |
| host_port_range | 否    | [HostPortRange] object | 主机端口范围，在范围内为应用实例自动分配主机端口；与主机端口参数二选一；仅企业版可用 |
   
 表29HostPortRange 
| 参数       | 是否必选 | 参数类型    | 描述                                       |
|:---|:---|:---|:---|
| min_port | 是    | Integer | 主机端口下限制，1到65535之间的整数                     |
| max_port | 是    | Integer | 主机端口上限值，1到65535之间的整数；max_port需大于min_port |
   
 表30Probe 
| 参数                    | 是否必选 | 参数类型                                                              | 描述                                     |
|:---|:---|:---|:---|
| exec                  | 否    | [Exec] object                   | 执行命令检查，与http_get二选一                    |
| http_get              | 否    | [HttpGetDetail] object | 执行http探测                               |
| initial_delay_seconds | 否    | Integer                                                           | 表示从工作负载启动后从多久开始探测，大于0且不大于3600的整数，默认为10 |
| timeout_seconds       | 否    | Integer                                                           | 表示探测超时时间，大于0且不大于3600的整数，默认为1           |
   
 表31Exec 
| 参数      | 是否必选 | 参数类型   | 描述                  |
|:---|:---|:---|:---|
| command | 是    | String | 探针执行命令，最大长度10240个字符 |
   
 表32HttpGetDetail 
| 参数     | 是否必选 | 参数类型    | 描述                             |
|:---|:---|:---|:---|
| path   | 是    | String  | 必须要以/开头，构造结果为：协议类型://主机地址:端口路径 |
| port   | 是    | Integer | 探测的http端口，1到65535之间的整数         |
| host   | 否    | String  | 请求的主机地址，默认为容器IP                |
| scheme | 否    | String  | 协议类型，HTTP或HTTPS，默认HTTP         |
   
 表33Volumes 
| 参数           | 是否必选 | 参数类型    | 描述                                                                                                                        |
|:---|:---|:---|:---|
| name         | 是    | String  | 卷名称，小写字母或数字，最长63个字符                                                                                                       |
| type         | 是    | String  | 卷的类型，支持configMap,secret,emptyDir,hostPath                                                                                 |
| source       | 是    | String  | 卷来源，type为hostPath时输入路径，要求以/开头，后面可包含中划线，反斜杠，下划线，点号，字母，数字； secret时输入secret名称，configMap时输入configMap名称，emptyDir时输入disk或memory |
| destination  | 是    | String  | 卷挂载路径，必须是合法的路径                                                                                                            |
| read_only    | 否    | Boolean | 读写权限，configMap和secret类型只支持读权限                                                                                             |
| default_mode | 否    | Integer | 挂载的文件权限，仅configMap和secret类型生效，填写值为十进制表示的linux文件权限，默认为420（对应权限644）                                                         |
   
 表34Annotations 
| 参数                     | 是否必选 | 参数类型   | 描述                                       |
|:---|:---|:---|:---|
| ring_controller        | 否    | String | 生成ranktablefile。该参数目前只支持赋值"ascend-1980"。 |
| autonomy_edge_selector | 否    | String | 离线自愈功能配置字段，须填写调度的节点组id                   |
   
#### 响应参数
**状态码：201**
表35响应Body参数 
| 参数             | 参数类型                                                                   | 描述                                                              |
|:---|:---|:---|
| id             | String                                                                 | 应用部署uuid                                                        |
| name           | String                                                                 | 应用部署名称，只允许英文小写字母、数字、中划线，最大长度32， 英文小写字母或数字开头和结尾                  |
| replicas       | Integer                                                                | 应用部署总副本数                                                        |
| ready_replicas | Integer                                                                | 应用部署正常副本数                                                       |
| description    | String                                                                 | 应用部署描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\  |
| group_id       | String                                                                 | 应用部署到指定节点组，与node_ids二选一                                         |
| node_ids       | Array of strings                                                       | 应用部署到指定节点，当前只支持一个边缘节点                                           |
| tags           | Array of [Attributes] objects | 节点属性                                                            |
| api_version    | String                                                                 | 应用部署版本                                                          |
| source         | String                                                                 | 应用部署来源：边缘市场（iem）或自定义（userdefined）                               |
| project_id     | String                                                                 | 项目ID                                                            |
| created_at     | String                                                                 | 应用部署创建时间                                                        |
| updated_at     | String                                                                 | 应用部署更新时间                                                        |
| template       | [PodRequest] object           | 应用部署模板                                                          |
| state          | String                                                                 | 应用状态，仅包括冻结（FREEZE）、删除中（PENDING_DELETE）、删除失败（DELETE_FAILED），保留字段 |
| source_id      | String                                                                 | 预留字段                                                            |
| annotations    | [Annotations] object         | 应用扩展功能配置选项                                                      |
   
 表36Attributes 
| 参数    | 参数类型   | 描述                                               |
|:---|:---|:---|
| key   | String | 节点属性的key值，长度取值范围为1\~128， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | String | 节点属性的value值，长度取值范围为1\~256， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表37PodRequest 
| 参数              | 参数类型                                                                       | 描述               |
|:---|:---|:---|
| configs         | [PodConfigs] object               | 应用实例配置           |
| affinity        | [Affinity] object                   | 应用实例亲和性规则，仅企业版支持 |
| init_containers | Array of [ContainerDef] objects | 应用部署init业务容器     |
| containers      | Array of [ContainerDef] objects | 应用部署业务容器         |
   
 表38PodConfigs 
| 参数                 | 参数类型    | 描述                                                                                                                                                   |
|:---|:---|:---|
| host_network       | Boolean | 应用实例是否启用主机网络，不启用则使用端口映射，默认值false                                                                                                                     |
| host_pid           | Boolean | 应用实例是否与主机共PID命名空间，默认值false                                                                                                                           |
| migration          | Boolean | 应用实例故障是否迁移，指定节点组部署时必选，默认值false                                                                                                                       |
| restart_policy     | String  | 应用实例重启策略，可选值Always、OnFailure、Never                                                                                                                   |
| toleration_seconds | Integer | 应用实例故障容忍时间，容忍时间到达后迁移应用实例，只在指定节点组部署时生效                                                                                                                |
| dns_policy         | String  | 应用实例DNS策略，可选值Default、ClusterFirst、ClusterFirstWithHostNet，默认为Default。应用实例启用主机网络时只能选填Default、ClusterFirstWithHostNet，不启用主机网络时只能选填Default、ClusterFirst |
   
 表39Affinity 
| 参数              | 参数类型                                                                   | 描述       |
|:---|:---|:---|
| nodeAffinity    | [nodeAffinity] object       | 节点亲和规则   |
| podAffinity     | [podAffinity] object         | Pod亲和规则  |
| podAntiAffinity | [podAntiAffinity] object | Pod反亲和规则 |
   
 表40nodeAffinity 
| 参数                                              | 参数类型                                                                                             | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [PreferredSchedulingTerm] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | [RequiredDuringScheduling] object         | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表41PreferredSchedulingTerm 
| 参数         | 参数类型                                                         | 描述              |
|:---|:---|:---|
| preference | [preference] object | 与相应权重关联的节点选择器项。 |
| weight     | Integer                                                      | 权重，范围为1-100     |
   
 表42preference 
| 参数               | 参数类型                                                                             | 描述      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表43RequiredDuringScheduling 
| 参数                | 参数类型                                                                               | 描述     |
|:---|:---|:---|
| nodeSelectorTerms | Array of [MatchExpressions] objects | 节点选择规则 |
   
 表44MatchExpressions 
| 参数               | 参数类型                                                                             | 描述      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表45podAffinity 
| 参数                                              | 参数类型                                                                                           | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表46podAntiAffinity 
| 参数                                              | 参数类型                                                                                           | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表47WeightPodAffinityTerms 
| 参数              | 参数类型                                                                   | 描述          |
|:---|:---|:---|
| podAffinityTerm | [podAffinityTerm] object | Pod亲和规则     |
| weight          | Integer                                                                | 权重，范围为1-100 |
   
 表48podAffinityTerm 
| 参数            | 参数类型                                                               | 描述                                                                               |
|:---|:---|:---|
| labelSelector | [LabelSelector] object | 标签选择器                                                                            |
| namespaces    | Array of strings                                                   | 命名空间                                                                             |
| topologyKey   | String                                                             | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表49LabelSelector 
| 参数               | 参数类型                                                                             | 描述                                                                                      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | Map\<String,String\>                                                             | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表50PodAffinityTerm 
| 参数            | 参数类型                                                               | 描述                                                                               |
|:---|:---|:---|
| labelSelector | [labelSelector] object | 标签选择器                                                                            |
| namespaces    | Array of strings                                                   | 命名空间                                                                             |
| topologyKey   | String                                                             | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表51labelSelector 
| 参数               | 参数类型                                                                             | 描述                                                                                      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | Map\<String,String\>                                                             | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表52MatchExpression 
| 参数       | 参数类型             | 描述                                                                                                                                     |
|:---|:---|:---|
| key      | String           | 规则的标签                                                                                                                                  |
| operator | String           | 操作符，取值如下： - In：标签值需要在values的列表中 - NotIn：标签的值不在某个列表中 - Exists：某个标签存在 - DoesNotExist：某个标签不存在 - Gt：标签的值大于某个值（字符串比较） - Lt：标签的值小于某个值（字符串比较） |
| values   | Array of strings | 一组标签值。 - 如果运算符为In或NotIn，则值数组必须非空。 - 如果运算符为Exists 或DoesNotExist，则值数组必须为空。 - 如果运算符是Gt或Lt，则值数组必须具有单个元素，该元素将被解释为整数。                        |
   
 表53ContainerDef 
| 参数              | 参数类型                                                                                               | 描述                                                                  |
|:---|:---|:---|
| name            | String                                                                                             | 容器名称，只允许英文小写字母、数字、中划线，最大长度32， 英文小写字母或数字开头和结尾                        |
| image_url       | String                                                                                             | 容器镜像URL                                                             |
| args            | Array of strings                                                                                   | 容器启动参数，字符总长度最大为65536                                                |
| command         | Array of strings                                                                                   | 容器启动命令，字符总长度最大为65536。 command支持使用数组定义多条命令，但在IEF控制台界面只会显示第一条命令。      |
| resources       | [DeploymentResources] object                     | 创建容器时使用的资源                                                          |
| envs            | Array of [Env] objects                                           | 环境变量                                                                |
| ports           | Array of [HostContainerPortMapping] objects | 容器端口映射值                                                             |
| privileged      | Boolean                                                                                            | 是否启用特权容器,默认值false                                                   |
| run_as_user     | Integer                                                                                            | 容器运行用户ID，输入范围为0\~65534的整数                                           |
| readiness_probe | [Probe] object                                                 | 探针配置                                                                |
| liveness_probe  | [Probe] object                                                 | 探针配置                                                                |
| version         | String                                                                                             | 容器镜像版本                                                              |
| volumes         | Array of [Volumes] objects                                   | 卷配置                                                                 |
| npu_type        | String                                                                                             | NPU类型，支持D310、D310B，支持填写： - D310：D310类型 - D310B：D310B类型 - 空值：D310类型。 |
   
 表54DeploymentResources 
| 参数       | 参数类型                 | 描述                                                                                                                                                      |
|:---|:---|:---|
| limits   | Map\<String,String\> | - 允许容器使用的最大资源，key值支持填写：cpu, memory, gpu, npu。 - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。 |
| requests | Map\<String,String\> | - 容器需要使用的最小资源，key值支持填写：cpu, memory, gpu, npu - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。  |
   
 表55Env 
| 参数         | 参数类型                                                       | 描述                                                          |
|:---|:---|:---|
| name       | String                                                     | 环境变量的key，由大小写字母或下划线开头，由数字、大小写字母、下划线组成，最大长度2048个字符，不允许重复     |
| value      | String                                                     | 环境变量的value，最大长度20480个字符。value、value_from和field_path必须三选一使用。 |
| value_from | [ValueFrom] object | 环境变量可使用配置项和密钥导入                                             |
| field_path | String                                                     | 该参数目前只支持赋值"status.hostIP"，即引用边缘节点的IP地址作为环境变量。               |
   
 表56ValueFrom 
| 参数        | 参数类型                                                         | 描述                                              |
|:---|:---|:---|
| secret    | [Secrets] object       | 环境变量引用密钥时使用。使用ValueFrom时，secret与configmap必须二选一。 |
| configmap | [ConfigsMap] object | 环境变量引用配置项时使用。                                   |
   
 表57Secrets 
| 参数   | 参数类型   | 描述     |
|:---|:---|:---|
| name | String | 密钥的名称  |
| key  | String | 密钥的属性名 |
   
 表58ConfigsMap 
| 参数   | 参数类型   | 描述      |
|:---|:---|:---|
| name | String | 配置项的名称  |
| key  | String | 配置项的属性名 |
   
 表59HostContainerPortMapping 
| 参数              | 参数类型                                                               | 描述                                         |
|:---|:---|:---|
| container_port  | Integer                                                            | 构成一对映射的容器端口                                |
| host_port       | Integer                                                            | 构成一对映射的物理机对应网卡端口                           |
| host_ip         | String                                                             | 对应网卡地址                                     |
| host_port_range | [HostPortRange] object | 主机端口范围，在范围内为应用实例自动分配主机端口；与主机端口参数二选一；仅企业版可用 |
   
 表60HostPortRange 
| 参数       | 参数类型    | 描述                                       |
|:---|:---|:---|
| min_port | Integer | 主机端口下限制，1到65535之间的整数                     |
| max_port | Integer | 主机端口上限值，1到65535之间的整数；max_port需大于min_port |
   
 表61Probe 
| 参数                    | 参数类型                                                               | 描述                                     |
|:---|:---|:---|
| exec                  | [Exec] object                   | 执行命令检查，与http_get二选一                    |
| http_get              | [HttpGetDetail] object | 执行http探测                               |
| initial_delay_seconds | Integer                                                            | 表示从工作负载启动后从多久开始探测，大于0且不大于3600的整数，默认为10 |
| timeout_seconds       | Integer                                                            | 表示探测超时时间，大于0且不大于3600的整数，默认为1           |
   
 表62Exec 
| 参数      | 参数类型   | 描述                  |
|:---|:---|:---|
| command | String | 探针执行命令，最大长度10240个字符 |
   
 表63HttpGetDetail 
| 参数     | 参数类型    | 描述                             |
|:---|:---|:---|
| path   | String  | 必须要以/开头，构造结果为：协议类型://主机地址:端口路径 |
| port   | Integer | 探测的http端口，1到65535之间的整数         |
| host   | String  | 请求的主机地址，默认为容器IP                |
| scheme | String  | 协议类型，HTTP或HTTPS，默认HTTP         |
   
 表64Volumes 
| 参数           | 参数类型    | 描述                                                                                                                        |
|:---|:---|:---|
| name         | String  | 卷名称，小写字母或数字，最长63个字符                                                                                                       |
| type         | String  | 卷的类型，支持configMap,secret,emptyDir,hostPath                                                                                 |
| source       | String  | 卷来源，type为hostPath时输入路径，要求以/开头，后面可包含中划线，反斜杠，下划线，点号，字母，数字； secret时输入secret名称，configMap时输入configMap名称，emptyDir时输入disk或memory |
| destination  | String  | 卷挂载路径，必须是合法的路径                                                                                                            |
| read_only    | Boolean | 读写权限，configMap和secret类型只支持读权限                                                                                             |
| default_mode | Integer | 挂载的文件权限，仅configMap和secret类型生效，填写值为十进制表示的linux文件权限，默认为420（对应权限644）                                                         |
   
 表65Annotations 
| 参数                     | 参数类型   | 描述                                       |
|:---|:---|:---|
| ring_controller        | String | 生成ranktablefile。该参数目前只支持赋值"ascend-1980"。 |
| autonomy_edge_selector | String | 离线自愈功能配置字段，须填写调度的节点组id                   |
   
**状态码：400**
表66响应Body参数 
| 参数         | 参数类型   | 描述     |
|:---|:---|:---|
| error_code | String | 错误码    |
| error_msg  | String | 错误描述信息 |
   
**状态码：500**
表67响应Body参数 
| 参数         | 参数类型   | 描述     |
|:---|:---|:---|
| error_code | String | 错误码    |
| error_msg  | String | 错误描述信息 |
   
#### 请求示例
创建部署，应用部署到指定节点，容器网络为主机网络。
```
{
  "name" : "app",
  "description" : "this is a test app",
  "node_ids" : [ "9ebd8efb-9fdd-44a1-abda-9cdbc287a867" ],
  "tags" : [ {
    "key" : "app",
    "value" : "test"
  } ],
  "deployment" : {
    "replicas" : 1,
    "template" : {
      "configs" : {
        "host_network" : true,
        "host_pid" : true,
        "restart_policy" : "Always",
        "toleration_seconds" : 300
      },
      "containers" : [ {
        "name" : "container-0",
        "image_url" : "nginx:alpine",
        "resources" : {
          "limits" : {
            "cpu" : "0.25",
            "memory" : "500"
          },
          "requests" : {
            "cpu" : "0.25",
            "memory" : "500"
          }
        }
      } ]
    }
  }
}
```
#### 响应示例
**状态码：201**
ok
```
{
  "created_at" : "2020-09-23 02:38:17.894471458 +0000 UTC",
  "replicas" : 1,
  "ready_replicas" : 0,
  "description" : "this is a test app",
  "group_id" : "",
  "node_ids" : [ "9ebd8efb-9fdd-44a1-abda-9cdbc287a867" ],
  "id" : "66a7fe7e-699a-41b2-9119-f9468a5ed78e",
  "name" : "app",
  "source" : "",
  "template" : {
    "configs" : {
      "host_network" : true,
      "host_pid" : true,
      "restart_policy" : "Always",
      "migration" : false,
      "toleration_seconds" : 300
    },
    "init_containers" : [ ],
    "containers" : [ {
      "name" : "container-0",
      "image_url" : "nginx:alpine",
      "npu_type" : "",
      "resources" : {
        "limits" : {
          "cpu" : "0.25",
          "memory" : "500"
        },
        "requests" : {
          "cpu" : "0.25",
          "memory" : "500"
        }
      },
      "privileged" : false,
      "version" : ""
    } ]
  },
  "state" : "",
  "project_id" : "05e1aef9040010e22fccc009adecb056",
  "updated_at" : "2020-09-23 02:38:17.894471458 +0000 UTC",
  "api_version" : "v3",
  "source_id" : ""
}
```
**状态码：400**
error
```
{
  "error_code" : "IEF.100001",
  "error_msg" : "PROJECT_ID not found"
}
```
**状态码：500**
error
```
{
  "error_code" : "IEF.100158",
  "error_msg" : "Fail to extract gpu infomation"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 201 | ok    |
| 400 | error |
| 500 | error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ief/ErrorCode.html)。
