接口功能介绍
调用该接口创建一个ECI实例
接口约束
无
URI
POST /eci/api/v1/containers/createContainerGroup
路径参数
无
Query参数
无
请求参数
请求头header参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| regionId | 是 | String | 区域ID | bb9fdb42056f11eda1610242ac110002 | |
请求体body参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| containerGroupName | 是 | String | ECI容器实例名称 | test | |
| cpu | 否 | Float | ECI容器实例CPU大小,不传时会自动规整 | 1 | |
| memory | 否 | Float | ECI容器实例Memory大小,不传时会自动规整 | 2 | |
| gpu | 否 | Float | ECI容器实例GPU卡数,当指定规格Flavor创建Gpu实例时,必传 | 1 | |
| alsInstanceId | 否 | String | ALS日志实例ID | ALS-VsV73kmFxy | |
| azInfo | 是 | Array of Objects | az信息 | | azInfo |
| eip | 否 | Object | eip信息 | | eip |
| vpcId | 是 | String | ECI容器实例所在VpcId | vpc-ctt6yag121 | |
| vSwitchId | 是 | String | ECI容器实例所在的子网ID | subnet-y9n723knrg | |
| securityGroupId | 是 | String | ECI容器实例所在的安全组ID | sg-5bvqyvrmch | |
| hostAliases | 否 | Array of Objects | ip hostname映射 | | hostAliases |
| containers | 是 | Array of Objects | 容器信息 | | container |
| initContainers | 否 | Array of Objects | init容器信息,不支持更新 | | initContainer |
| restartPolicy | 是 | String | ECI容器组的重启策略。 | Always/OnFailure/Never | |
| ephemeralVolume | 否 | Integer | 临时存储大小,取值范围40-2048 | 40 | |
| flavorName | 否 | String | 虚机规格。指定规格创建时,必传。查询地址:https://eop.ctyun.cn/ebp/searchCtapi/ctApiDebug?product=25&api=8327&data=87 | s7.small.1 | |
| hostName | 否 | String | ECI实例主机名称 | test | |
| autoMatchImageCache | 否 | Boolean | 是否自动创建镜像缓存 | true | |
| imageCacheId | 否 | String | 镜像缓存ID | imc-7nh0dkpoaxepqyh2 | |
| dnsConfig | 否 | Object | DNS配置 | | dnsConfig |
| tags | 否 | Array of Objects | ECI实例的标签。最多支持20个 | | tag |
| imageRegistryCredential | 否 | Array of Objects | 镜像凭证 | | imageRegistryCredential |
| volumes | 否 | Array of Objects | 存储卷 | | volume |
| iamRoleName | 否 | String | ECS资源委托名称 | testName | |
| securityContext | 否 | Object | 实例级安全上下文。仅支持namespaced级别参数(kernel.shm*,kernel.msg*,kernel.sem,fs.mqueue.,net.(net.core.rmem_max除外)) | | securityContext |
| dataCacheBucket | 否 | String | 自动匹配数据缓存,需要保持和available状态的数据缓存的az一致,且需要volumeMount与dataCache的path一致才能匹配数据缓存 | | |
| epId | 否 | String | 企业项目ID | | |
| cpuArchitecture | 否 | String | 容器组cpu架构类型 | | |
| 表 securityContext | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| sysctl | 是 | Array of Objects | 内核参数对 | | sysctl |
| 表 sysctl | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 是 | String | 内核参数名 | kernel.msgmax | |
| value | 是 | String | 内核参数值 | 65536 | |
| 表 dnsConfig | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| nameservers | 否 | Array of Strings | DNS服务器的IP地址列表 | ["8.8.8.8"] | |
| searches | 否 | Array of Strings | DNS搜索域列表 | ["ns1.svc.cluster-domain.example"] | |
| options | 否 | Array of Objects | DNS策略生成的选项 | | option |
| 表 option | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 否 | String | 对象的Name,属性中的内容将合并到从指定的 DNS 策略生成的选项 | name-test | |
| value | 否 | String | 对象的Value,属性中的内容将合并到从指定的 DNS 策略生成的选项 | value-test | |
| 表 tag | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| key | 否 | String | Tag标识的Key | tagKey | |
| value | 否 | String | Tag标识的Value | tagValue | |
| 表 imageRegistryCredential | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| server | 是 | String | 镜像仓库地址 | registry-vpc.cn-shanghai.ctyun.com | |
| userName | 是 | String | 镜像仓库账号名称 | test | |
| password | 是 | String | 镜像仓库账号对应的密码 | passwd | |
| 表 volume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| type | 是 | String | 存储卷类型。取值范围:EmptyDirVolume:EmptyDir 类型的数据卷,表示空目录。ConfigFileVolume:ConfigFile 类型的数据卷,表示配置文件。NasVolume:表示弹性文件。ZosVolume:表示对象存储(原生版)。DiskVolume:云硬盘数据卷,支持挂载云硬盘。DownwardAPIVolume:downwardAPI卷 | EmptyDirVolume | |
| name | 是 | String | 存储卷名称 | test | |
| emptyDirVolume | 否 | Object | 临时目录 | | emptyDirVolume |
| configFileVolume | 否 | Object | 配置项 | | configFileVolume |
| diskVolume | 否 | Object | 云硬盘 | | diskVolume |
| nasVolume | 否 | Object | 弹性文件 | | nasVolume |
| zosVolume | 否 | Object | 对象存储 | | zosVolume |
| downwardAPIVolume | 否 | Object | downwardAPI卷 | | downwardAPIVolume |
| 表 emptyDirVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| medium | 是 | String | EmptyDirVolume 的存储媒介,支持空字符串"",使用一般文件系统;支持Memory,表示使用内存, 当使用共享内存时,容器挂载路径需指定为/dev/shm。 | Memory | |
| sizeLimit | 否 | Integer | EmptyDirVolume 的大小。单位为 MB | 10 | |
| 表 configFileVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| defaultMode | 否 | Integer | ConfigFileVolume 的默认权限,采用四位八进制数表示。 | 0644 | |
| configFileToPaths | 是 | Array of Objects | ConfigFileVolume 存储卷路径信息 | | configFileToPath |
| 表 configFileToPath | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| path | 是 | String | ConfigFileVolume 数据卷路径 | /test | |
| content | 是 | String | ConfigFileVolume 数据卷内容的base64编码值 | aGVsbG8= | |
| mode | 否 | Integer | 配置文件的权限,如果没有设置,则采用ConfigFileVolume.defaultMode的值。采用四位八进制数表示。 | 0644 | |
| 表 diskVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| volumeHandle | 是 | String | 云硬盘ID | faee540b-fdb7-415b-a573-4f576c51e396 | |
| fsType | 是 | String | 云硬盘文件系统类型。如果该云硬盘已经存在文件系统,那么仅支持按当前存在的文件系统方式挂载。 | ext4或xfs | |
| 表 nasVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| sourcePath | 是 | String | 弹性文件路径,该文件需要与ECI实例处于同一个VPC | 127.0.0.1:/mnt/sfs_cap/jmx-mix-4_rj0tysoxz0n1ewh7 | |
| readOnly | 否 | Boolean | 弹性文件是否只读 | false | |
| 表 zosVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| bucket | 是 | String | 对象存储中Bucket名称 | zos-test | |
| url | 是 | String | 对象存储中的Bucket访问域名 | http://127.0.0.1:80 | |
| crendential | 是 | String | 对象存储中授权的"ak:sk"的base64编码值 | YWs6c2s= | |
| readOnly | 否 | Boolean | 对象存储是否只读 | false | |
| 表 downwardAPIVolume | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| defaultMode | 否 | Integer | DownwardAPIVolume 的默认权限,采用四位八进制数表示。 | 0644 | |
| items | 是 | Array of Objects | DownwardAPIVolume 存储卷信息 | | item |
| 表 item | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| mode | 否 | Integer | 配置文件的权限,如果没有设置,则采用DownwardAPIVolume.defaultMode的值。采用四位八进制数表示。 | 0644 | |
| path | 是 | String | DownwardAPIVolume 数据卷路径 | name | |
| fieldRef | 否 | Object | field引用 | | fieldRef |
| 表 fieldRef | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| fieldPath | 否 | String | field路径。仅支持 metadata.name 和 metadata.namespace | metadata.name | |
| 表 azInfo | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| azName | 是 | String | 可用区名称,目前仅支持一个 | cn-huadong1-jsnj1A-public-ctcloud | |
| azId | 否 | Integer | 可用区ID,目前仅支持一个 | 1 | |
| 表 eip | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| eipInstanceId | 否 | String | 弹性IP的ID。注:弹性IP默认不开放8080、80、443、8443端口,建议使用其他端口 | eip-xxxx | |
| autoCreateEip | 否 | Boolean | 是否自动创建一个 EIP,并绑定到 ECI 实例上 | false | |
| eipBandwidth | 否 | Integer | 自动创建eip时自动EIP带宽,默认为 5 Mbps | 5 | |
| 表 hostAliases | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| ip | 否 | String | ip地址 | 1.1.1.1 | |
| hostnames | 否 | Array of Strings | hostname列表 | ["a.com","b.com"] | |
| 表 container | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 是 | String | 容器名 | test | |
| image | 是 | String | 容器镜像 | nginx:latest | |
| imagePullPolicy | 否 | String | 容器镜像拉取策略 | Always | |
| cpu | 否 | Float | 容器CPU大小 | 1 | |
| memory | 否 | Float | 容器Memory大小 | 2 | |
| gpu | 否 | Float | 容器GPU卡数 | 1 | |
| command | 否 | Array of Strings | 容器启动命令 | ["/bin/sh"] | |
| args | 否 | Array of Strings | 容器启动参数 | ["-c","/app"] | |
| ports | 否 | Array of Objects | 容器端口 | | port |
| environmentVar | 否 | Array of Objects | 容器环境变量 | | environmentVar |
| workingDir | 否 | String | 容器工作目录 | /app | |
| livenessProbe | 否 | Object | 容器存活探针 | | livenessProbe |
| readinessProbe | 否 | Object | 容器就绪探针 | | readinessProbe |
| lifecyclePostStartHandlerExec | 否 | Array of Strings | 容器启动后执行的命令,如果执行失败会重启容器 | ["curl", "localhost:80"] | |
| lifecyclePreStopHandlerExec | 否 | Array of Strings | 容器停止前执行的命令,如果执行失败会重启容器 | ["curl", "localhost:80"] | |
| volumeMount | 否 | Array of Objects | 容器内卷挂载信息 | | volumeMount |
| 表 initContainer | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 是 | String | 容器名 | test | |
| image | 是 | String | 容器镜像 | nginx:latest | |
| imagePullPolicy | 否 | String | 容器镜像拉取策略 | Always | |
| cpu | 否 | Float | 容器CPU大小 | 1 | |
| memory | 否 | Float | 容器Memory大小 | 2 | |
| gpu | 否 | Float | 容器GPU卡数 | 1 | |
| command | 否 | Array of Strings | 容器启动命令 | ["/bin/sh"] | |
| args | 否 | Array of Strings | 容器启动参数 | ["-c","/app"] | |
| ports | 否 | Array of Objects | 容器端口 | | port |
| environmentVar | 否 | Array of Objects | 容器环境变量 | | environmentVar |
| workingDir | 否 | String | 容器工作目录 | /app | |
| volumeMount | 否 | Array of Objects | 容器内卷挂载信息 | | volumeMount |
| 表 port | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 否 | String | 容器端口名 | xxx | |
| port | 是 | Integer | 容器端口号 | 80 | |
| protocol | 是 | String | 容器端口协议 | TCP/UDP | |
| 表 environmentVar | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| key | 是 | String | 容器环境变量名 | product | |
| value | 是 | String | 容器环境变量值 | eci | |
| 表 livenessProbe | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| exec | 否 | Object | 命令行 | | exec |
| httpGet | 否 | Object | Http请求 | | httpGet |
| tcpSocket | 否 | Object | TCPSocket | | tcpSocket |
| initialDelaySeconds | 否 | Integer | 执行第一次探活判断操作需要等待的时间 | 1 | |
| timeoutSeconds | 否 | Integer | 执行一次探活判断操作的超时时间 | 1 | |
| periodSeconds | 否 | Integer | 执行一次探活判断操作的间隔时间 | 1 | |
| successThreshold | 否 | Integer | 探活判断多少次判定容器存活正常 | 1 | |
| failureThreshold | 否 | Integer | 探活判断多少次判定容器未存活异常 | 1 | |
| 表 readinessProbe | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| exec | 否 | Object | 命令行 | | exec |
| httpGet | 否 | Object | Http请求 | | httpGet |
| tcpSocket | 否 | Object | TCPSocket | | tcpSocket |
| initialDelaySeconds | 否 | Integer | 执行第一次就绪判断操作需要等待的时间 | 1 | |
| timeoutSeconds | 否 | Integer | 执行一次就绪判断操作的超时时间 | 1 | |
| periodSeconds | 否 | Integer | 执行一次就绪判断操作的间隔时间 | 1 | |
| successThreshold | 否 | Integer | 就绪判断多少次判定容器存活正常 | 1 | |
| failureThreshold | 否 | Integer | 就绪判断多少次判定容器未存活异常 | 1 | |
| 表 exec | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| command | 是 | Array of Strings | 命令 | ["/app"] | |
| 表 httpGet | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| scheme | 是 | String | 协议 | HTTPS/HTTP | |
| port | 是 | Integer | 端口 | 80 | |
| path | 是 | String | URL路径 | /healthz | |
| 表 tcpSocket | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| port | 是 | Integer | 端口 | 80 | |
| 表 volumeMount | | | | | |
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| name | 是 | String | 存储卷名 | volume-test | |
| mountPath | 是 | String | 挂载路径 | /data1 | |
| readOnly | 否 | Boolean | 只读属性 | true | |
响应参数
| 参数 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| statusCode | Integer | 请求成功(200)或失败(非200) | 200 | |
| error | String | 错误码,三段式 | ECI.Openapi.StatusReasonInternalError | |
| message | String | 错误信息描述 | Internal error occurred | |
| returnObj | Object | 返回信息 | | returnObj |
| 表 returnObj | | | | |
| 参数 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|
| requestId | String | 请求ID | a4f0f36e-7e75-4045-a73a-a2507b26 | |
| containerGroupId | String | ECI实例ID | eci-3rr2p3bikgw7phf1lm0cn39y0y | |
| masterOrderId | String | 主订单ID | 5637ae2a19234e3593ca717c66513474 | |
枚举参数
无
请求示例
请求url
https://eci-global.ctapi.ctyun.cn/eci/api/v1/containers/createContainerGroup
请求头header
{
regionId: bb9fdb42056f11eda1610242ac110002
}
请求体body
{
"containerGroupName": "cg-test",
"cpu": 1,
"memory": 1,
"restartPolicy": "Never",
"vpcId": "vpc-ctt6yag121",
"vSwitchId": "subnet-y9n723knrg",
"securityGroupId": "sg-5bvqyvrmch",
"azInfo": [
{
"azName": "cn-huadong1-jsnj1A-public-ctcloud"
}
],
"dnsConfig": {
"nameservers": ["1.1.1.1"]
},
"hostAliases": [
{
"ip": "127.0.0.1",
"hostnames": ["test"]
}
],
"tags": [
{
"key": "hello",
"value": "world"
}
],
"containers": [
{
"name": "test",
"cpu": 1,
"memory": 1,
"image": "nginx:latest",
"imagePullPolicy": "IfNotPresent",
"environmentVar": [
{
"key": "hello",
"value": "world"
}
],
"readinessProbe": {
"exec": {
"command": ["curl", "localhost:80"]
},
"initialDelaySeconds": 10,
"timeoutSeconds": 10,
"periodSeconds": 10,
"successThreshold": 1,
"failureThreshold": 1
},
"volumeMount": [
{
"name": "test-volume",
"mountPath": "/test-volume"
}
]
}
],
"volumes": [
{
"name": "test-volume",
"type": "ConfigFileVolume",
"configFileVolume": {
"configFileToPaths": [
{
"path": "test/xxx.conf",
"content": "d29vZHM="
}
]
}
}
]
}
响应示例
{
"statusCode": 200,
"returnObj": {
"requestId": "a4f0f36e-7e75-4045-a73a-a2507b26",
"containerGroupId": "eci-3rr2p3bikgw7phf1lm0cn39y0y",
"masterOrderId": "5637ae2a19234e3593ca717c66513474"
}
}
状态码
请参考 状态码
错误码
请参考 错误码