StatefulWorkload 接口文档
1. 通用返回码说明
类型 | CODE | 说明 |
InternalServerError | InternalServerError | 服务器内部错误 |
MissingParameter | MissingParameter | 参数xxx缺失 |
InvalidFormat | InvalidFormat | 参数xxx的格式非法 |
InvalidParameterValue | InvalidParameterValue | 值 xxx 对于参数 xxx 无效 |
GrayDeploymentError | NoPrivate | 无权设置参数xxx |
NumError | InvalidParameterValue | xxx 数目错误 |
DuplicateNameError | DuplicateNameError | xxx 设置重复 |
Note
通用返回码后续可能会新增。
2. 接口说明
2.1 创建 StatefulWorkload
METHOD | URL |
POST | /ncs?Action=CreateStatefulWorkload&Version=2017-11-16 |
输入参数说明
参数名称 | 说明 | 参数类型 | 是否必填 |
Action | CreateStatefulWorkload | string | 是 |
Version | 2017-11-16 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Placement | 实例所属位置 | object | 是 | 详细信息见下表 |
SpecType | PostPaid时必填 | string | 否 | |
ContainerType | 普通容器(Standard)/裸机容器(HighPerformance | string | 是 | |
Containers | 容器数组 | array | 是 | 详细信息见下表 |
SysCmds | 有白名单限制 | array | 否 | |
SecurityGroupIds | 实例所属安全组 | string | 否 | |
VirtualPrivateCloud | 私有网络相关信息配置 | object | 是 | 详细信息见下表 |
NamespaceId | 空间Id | long | 是 | |
Name | StatefulPod名称 | string | 是 | |
Labels | 标签,map类型,key和value类型都是string | object | 否 | |
ImagePullSecretIds | 拉取镜像秘钥列表 | array | 否 | |
参数名称 | 说明 | 参数类型 | 是否必填 |
VpcId | 私有网络id | string | 否 |
SubnetId | 当子网为classic时,无子网id, 此值为None | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Name | 容器名称 | string | 否 | |
Image | 镜像URL | string | 否 | |
LogDirs | 日志路径数组 | array | 否 | |
Args | Docker | CMD命令 | array | 否 |
Command | Docker | EntryPoint命令 | array | 否 |
Envs | 环境变量数组 | array | 否 | 详细信息见下表 |
ResourceRequirements | 资源限制 | object | 否 | 详细信息见下表 |
SecurityContext | 安全选项 | object | 否 | 详细信息见下表 |
SshKeyIds | 密钥Id数组 | array | 否 | |
LivenessProbe | liveness探针(可选) | object | 否 | 详细信息见下表 |
ReadinessProbe | readiness探针(可选) | object | 否 | 详细信息见下表 |
Volumes | 容器卷(可选) | array | 是 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
VolumeType | 容器卷类型,目前仅支持Emptydir | string | 是 | |
Emptydirs | 当volumeType为Emptydir时必填,容器绑定的Emptydir的信息 | array | 否 | 详细信息见下表 |
Secrets | 密钥,若VolumeType为Secret则必填 | array | 否 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 |
SecretId | 密钥Id | long | 是 |
MountPath | 秘钥在容器中的挂载点 | string | 是 |
Mode | 容器对秘钥的访问方式,仅支持只读 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Medium | 默认支持内存Memory,未来支持磁盘 | string | 否 |
MountPath | 卷在容器中的挂载点 | string | 是 |
Mode | 容器对卷的访问方式,ro 为只读,rw 为读写(default) | string | 是 |
Name | EmptyDir的名称,同一个容器里的EmptyDir此字段不能重复 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Exec | 探针执行的结构 | object | 否 | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | 否 | |
timeoutSeconds | 执行超时时间 | integer | 否 | |
参数名称 | 说明 | 参数类型 | 是否必填 |
Command | 探针执行的命令 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Exec | 探针执行的结构 | object | 否 | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | 否 | |
timeoutSeconds | 执行超时时间 | integer | 否 | |
参数名称 | 说明 | 参数类型 | 是否必填 |
Command | 探针执行的命令 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
privilege | 默认权限或root权限,缺省为默认权限,有白名单限制 | boolean | 否 |
capabilities | 容量 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Limits | 资源限制 | object | 否 | 详细信息见下表 |
Requests | 资源需求 | object | 否 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Cpu | cpu核数 | long | 否 |
Memory | 内存大小 | long | 否 |
Gpu | gpu核数 | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Cpu | cpu核数 | long | 否 |
Memory | 内存大小 | long | 否 |
Gpu | gpu核数 | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Name | 环境名字 | string | 是 |
Value | 环境值;当type不存在时必填,其它时候无效; | string | 否 |
Type | 环境变量类型;此值要么不出现,出现则仅支持Secret; | string | 否 |
SecretId | 秘钥id,秘钥类型仅支持Opaque;当Type为Secret时必填,Type为其它值时此值无效 | long | 否 |
Key | 键值;键值必须存在于secret中 | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
ZoneId | 实例所属可用区数组 | array | 否 |
返回参数
参数名称 | 说明 | 参数类型 | 是否必填 |
StatefulWorkloadId | 有状态负载的id | long | 是 |
RequestId | | string | 是 |
{
"Placement": {
"ZoneId": ["cn-east-1a"]
},
"SpecType": "ncs.n1.medium2",
"VirtualPrivateCloud": {
"VpcId": "xfdjk309f9-fa0e-f9aj9j390-9e02",
"SubnetId": "None"
},
"SecurityGroupIds": ["ad2d4e"],
"Labels": {"test":"test"},
"ContainerType": "Standard",
"NamespaceId": 1,
"Name": "test",
"SysCmds": ["xxx"],
"Containers": [{
"Name": "container",
"Image": "hub.cn-east-1.163yun.com/public/debian:7.9",
"LogDirs": ["/var/log/test/", "/var/log/hello/"],
"Args": ["xxx", "xxx"],
"Envs": [{
"Name": "HOSTNAME",
"Value": "test"
}],
"ResourceRequirements": {
"Limits": {
"Cpu": "1000",
"Memory": "1024"
},
"Requests": {
"Cpu": "1000",
"Memory": "1024"
}
},
"SecurityContext ": {
"Privilege": false,
"Capabilities": ["SYS_ADMIN"]
}
"DataDisks":[{
"DiskType":"CloudLocal",
"DiskName":"localTest",
"MountPath":"/mnt",
"DiskSize":20
}],
"SshKeyIds":[1,2,3],
"Volumes": [{
"VolumeType": "Emptydir",
"Emptydirs": [{
"Medium": "Memory",
"MountPath": "/abc",
"Mode": "rw"
}]
}]
}]
}
{
"StatefulWorkloadId": 1
}
2.2 重新部署有状态负载
METHOD | URL |
GET | /ncs?Action=RedeployStatefulWorkload&Version=2017-11-16 |
示例
NamespaceId=1&StatefulWorkloadId=1
参数 | 类型 | 说明 | 备注 | 是否必填 |
NamespaceId | Long | 空间Id | | 是 |
StatefulWorkloadId | Long | Workload 的id | | 是 |
无
2.3 有状态负载重启
METHOD | URL |
GET | /ncs?Action=RestartContainer&Version=2017-11-16 |
示例
NamespaceId=1&StatefulWorkloadId=1&ContainerId=154h9fjnhgorahg9e4qeho9th49f38994fh9fh93r
参数 | 类型 | 说明 | 备注 | 是否必填 |
NamespaceId | Long | 空间Id | | 是 |
StatefulWorkloadId | Long | Workload的id | | 是 |
ContainerId | String | 容器id(DockerContainerId) | | 是 |
无
2.4 强制重启有状态负载
METHOD | URL |
GET | /ncs?Action=RestartStatefulWorkloadInstance&Version=2017-11-16 |
示例
NamespaceId=1&StatefulWorkloadId=1
参数 | 类型 | 说明 | 备注 | 是否必填 |
NamespaceId | Long | 空间Id | | 是 |
StatefulWorkloadId | Long | Workload的id | | 是 |
无
2.5 删除 StatefulWorkload
METHOD | URL |
GET | /ncs?Action=DeleteStatefulWorkload&Version=2017-11-16 |
示例
NamespaceId=1&StatefulWorkloadId=1
参数 | 类型 | 说明 | 备注 | 是否必填 |
NamespaceId | Long | 空间Id | | 是 |
StatefulWorkloadId | Long | StatefulPod的id | | 是 |
无 或 ResourceNotFound IncorrectState
2.6 更改有状态负载实例规格(按量计费)
Note
若传入的资源规格类型与容器当前规格相同,则返回特定错误码,而不进行实际的更新
METHOD | URL |
POST | /ncs?Version=2017-11-16&Action=ResetStatefulWorkloadSpecType |
参数 | 说明 | 类型 | 是否必填 |
NamespaceId | 空间Id | long | 是 |
StatefulWorkloadId | 有状态工作负载id | long | 是 |
SpecType | 资源规格类型 | String | 是 |
Containers | Container 数组 | 容器资源限制数组(Container) | 是 |
其中Container对象为:
参数 | 说明 | 类型 | 是否必填 |
Name | 容器名称 | String | 是 |
ResourceRequirements | Object | 是 | |
ResourceRequirements对象为:
参数 | 说明 | 类型 | 是否必填 |
Limits | 资源最大限制 | Object | 是 |
Requests | 资源最小限制 | Object | 是 |
Limits对象为:
参数 | 说明 | 类型 | 是否必填 |
Cpu | cpu最大限制 | String | 是 |
Memory | 内存最大限制 | String | 是 |
Requests对象为:
参数 | 说明 | 类型 | 是否必填 |
Cpu | cpu最小限制 | String | 是 |
Memory | 内存最小限制 | String | 是 |
POST /ncs?Action=ResetStatefulWorkloadSpecType&Version=2017-11-16
{
"NamespaceId":17,
"SpecType":"ncs.n1.medium8",
"StatefulWorkloadId":5241,
"Containers":[
{
"Name":"container",
"ResourceRequirements":{
"Limits":{
"Cpu":"2000",
"Memory":"4096:
},
"Requests":{
"Cpu":"2000",
"Memory":"4096"
}
}
}
]
}
返回
{
"RequestId":"b0092238-148d-4361-8cdb-72794a049cbc"
}
错误码:
HTTP STATUS CODE | CODE | MESSAGE | 说明 |
400 | MissingParameter | The required input parameter %s for processing this request is not supplied. | 参数缺失 |
400 | InvalidParameterValue | The Parameter %s 's value %s is invalid. | 参数值非法 |
400 | NothingToUpdate | | 规格与原有规格一致,无需更新 |
2.7 【有状态负载】【查询】指定空间下的负载列表
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=DescribeStatefulWorkloads
- 用于查询指定空间下所有负载的列表,列表中包含负载的简单元信息。
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeStatefulWorkloads |
输入参数说明
参数名称 | 说明 | 参数类型 | 是否必填 |
NamespaceId | 空间Id | string | 是 |
StatefulWorkloadId | 有状态容器的Id | string | 是 |
Action | DescribeStatefulWorkloadInfo | string | 是 |
Version | 2017-11-16 | string | 是 |
返回参数
参数名称 | 说明 | 参数类型 | 备注 |
StatefulWorkloadId | 负载编号 | long | |
NamespaceId | 负载所属空间id | long | |
Name | 负载名字 | string | |
Placement | 实例所属位置 | object | 详细信息见下表 |
Status | enum类型,Creating、CreateFail、Running、Updating、Abnormal | string | |
CreateAt | 创建时间 | string | |
UpdateAt | 修改时间 | string | |
PackageId | 资源包编号 | long | |
StatefulWorkloadStatus | enum类型,Pending Running Succeeded Failed | enum | |
PayType | 购买模式 | string | |
VirtualPrivateCloud | Vpc | object | 详细信息见下表 |
SecurityGroupIds | 实例所属安全组 | string | |
ContainerType | enum容器类型,{普通、高性能} | string | |
SysCmds | sysctl系统参数数组 | array | |
Containers | 容器列表 | array | 详细信息见下表 |
EipId | 弹性公网ipId | string | |
Labels | 标签,map类型,key和value类型都是string | object | |
OperationLocks | 返回一个数组,数组成员对象里目前仅有LockReason一个字段,如果为欠费停服,则字段值financial;如果不是欠费停服状态,则为空数组; | array | 详细信息见下表 |
Kind | 种类,目前有状态负载有pods和statefulsets | string | |
ClusterId | 集群id | integer | |
ImagePullSecretIds | 拉取镜像秘钥列表 | array | |
ResourcePoolInfo | 资源池信息 | object | 详细信息见下表 |
参数名称 | 说明 | 参数类型 |
ResourcePoolId | 资源池id | string |
ResourcePoolName | 资源池名字 | string |
Owner | 资源池归属(公共/专属) | string |
参数名称 | 说明 | 参数类型 |
LockReason | 被锁的原因 | string |
参数名称 | 说明 | 参数类型 | 备注 |
Name | 容器名称 | string | |
Image | 镜像url | string | |
LogDirs | 日志路径数组 | array | |
Args | Docker CMD命令 | array | |
Envs | 环境变量数组 | array | 详细信息见下表 |
ResourceRequirements | 资源限制 | object | 详细信息见下表 |
DataDisks | 磁盘描述数组 | array | 详细信息见下表 |
SshKeyIds 密钥数组,long类型 array | | | |
SecurityContext | 安全选项 | object | |
LivenessProbe | liveness探针 | object | |
ReadinessProbe | readiness探针 | object | 详细信息见下表 |
Volumes | 容器卷 | array | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 备注 |
VolumeType | 容器卷类型,目前仅支持Emptydir | string | |
Emptydirs | 当volumeType为Emptydir时必填,容器绑定的Emptydir的信息 | array | 详细信息见下表 |
Secrets | 密钥,若VolumeType为Secret则必填 | array | 详细信息见下表 |
参数名称 | 说明 | 参数类型 |
SecretId | 密钥Id | long |
MountPath | 秘钥在容器中的挂载点 | string |
Mode | 容器对秘钥的访问方式,仅支持只读 | string |
参数名称 | 说明 | 参数类型 |
Medium | 默认支持内存Memory,未来支持磁盘 | string |
MountPath | 卷在容器中的挂载点 | string |
Mode | 容器对卷的访问方式,ro 为只读,rw 为读写(default) | string |
Name | EmptyDir的名称,同一个容器里的EmptyDir此字段不能重复 | string |
参数名称 | 说明 | 参数类型 | 备注 |
Exec | 探针执行的结构 | object | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | |
timeoutSeconds | 执行超时时间 | integer | |
参数名称 | 说明 | 参数类型 |
Command | 探针执行的命令 | array |
参数名称 | 说明 | 参数类型 | 备注 |
Exec | 探针执行的结构 | object | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | |
timeoutSeconds | 执行超时时间 | integer | |
参数名称 | 说明 | 参数类型 |
Command | 探针执行的命令 | array |
参数名称 | 说明 | 参数类型 |
privilege | 默认权限或root权限,缺省为默认权限,有白名单限制 | boolean |
capabilities | 容量 | array |
参数名称 | 说明 | 参数类型 |
DiskType | 数据盘类型 | string |
DiskName | 磁盘名 | string |
DiskId | 磁盘id | string |
DiskUuid | 磁盘的VolumeId | string |
MountPath | 挂载路径 | string |
DiskSize | 数据盘大小 | string |
参数名称 | 说明 | 参数类型 | 备注 |
Limits | 资源限制 | object | 详细信息见下表 |
Requests | 资源需求 | object | 详细信息见下表 |
参数名称 | 说明 | 参数类型 |
Cpu | cpu核数 | long |
Memory | 内存大小 | long |
Gpu | gpu核数 | string |
参数名称 | 说明 | 参数类型 |
Cpu | cpu核数 | long |
Memory | 内存大小 | long |
Gpu | gpu核数 | string |
参数名称 | 说明 | 参数类型 |
Name | 环境名字 | string |
Value | 环境值;当type不存在时必填,其它时候无效; | string |
Type | 环境变量类型;此值要么不出现,出现则仅支持Secret; | string |
SecretId | 秘钥id,秘钥类型仅支持Opaque;当Type为Secret时必填,Type为其它值时此值无效 | long |
Key | 键值;键值必须存在于secret中 | string |
参数名称 | 说明 | 参数类型 |
VpcId | 私有网络id | string |
SubnetId | 当子网为classic时,无子网id, 此值为None | string |
参数名称 | 说明 | 参数类型 |
ZoneId | 实例所属可用区数组 | array |
/ncs?Action=DescribeStatefulWorkloadInfo&Version=2017-11-16&NamespaceId=1&StatefulWorkloadId=1
{
"Status": "Running",
"RequestId": "b6dc66c6-b09c-4560-afc5-7d3e36882803",
"SpecType": "ncs.n1.small1",
"ContainerType": "Standard",
"Containers": [
{
"Volumes": [
{
"VolumeType": "Emptydir",
"Emptydirs": [
{
"Medium": "Memory",
"MountPath": "/abc",
"Mode": "rw"
}
]
}
],
"ReadinessProbe": {
"Exec": {
"Command": [
"ls",
"-l"
]
},
"PeriodSeconds": 10,
"TimeoutSeconds": 1
},
"SshKeyIds": [
1353,
1359
],
"DataDisks": [
{
"DiskId": 26139,
"DiskName": "b01ssd",
"DiskSize": 10,
"DiskType": "CloudSsd",
"DiskUuid": "448366a1-0c90-4c16-883a-9cbdaaa630d5",
"MountPath": "/disk01b/"
}
],
"LogDirs": [
"/log01/",
"/log02/"
],
"Command": [],
"LivenessProbe": {
"Exec": {
"Command": [
"ls",
"-l"
]
},
"PeriodSeconds": 10,
"TimeoutSeconds": 1
},
"Envs": [
{
"Name": "aaa",
"Value": "111"
},
{
"Name": "bbb",
"Value": "222"
},
{
"Name": "ccc",
"Value": "333"
}
],
"SecurityContext": {
"Capabilities": [
"NET_ADMIN"
],
"Privilege": false
},
"Image": "10.185.8.133:5000/ncetest/cat:s20170301m1",
"ResourceRequirements": {
"Limits": {
"Memory": "1024",
"Cpu": "1000",
"Gpu": "0"
},
"Requests": {
"Memory": "1024",
"Cpu": "1000",
"Gpu": "0"
}
},
"Name": "container01"
}
],
"Labels": {
"00": "00",
"01": "01",
"AA": "AA",
"a-a": "a-a",
"a.a": "a.a",
"a1a": "a1a",
"aA": "aA",
"a_a": "a_a",
"aa": "aa",
"ab": "ab",
"netease/tenantId": "e24cb1276d554f8e9824e681365484f3"
},
"SecurityGroupIds": [
"9b8fee1b-4c73-466e-8b8b-19c2f94260e4"
],
"OperationLocks": [],
"Name": "sts0822test01",
"StatefulWorkloadId": 38184,
"SysCmds": [],
"StatefulWorkloadStatus": "Pending",
"UpdateAt": "2018-08-28T09:36:40Z",
"VirtualPrivateCloud": {
"VpcId": "95fac776-4a8d-41e2-9332-2c94fa88f035",
"SubnetId": "e8edc80c-3de4-43ba-9cb8-8c9e8cce2db7"
},
"CreateAt": "2018-08-22T06:34:15Z",
"Placement": {
"ZoneId": [
"cn-east-1b"
]
},
"NamespaceId": 63177485
}
2.8 【有状态负载】【查询】全部空间下的负载列表
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=DescribeStatefulWorkloadsAllNamespaces
用于查询所有空间下所有负载的列表,列表中包含负载的简单元信息。
METHOD | url |
GET | /ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadsAllNamespaces |
参数 | 类型 | 必填 | 描述 | 备注 |
Limit | int | | 查询数量 | 大于0的整数,默认20 |
Offset | int | | 列表偏移 | 大等于0的整数,默认0 |
Offset=1&
Limit=2
参数 | 类型 | 描述 | 备注 |
TotalCount | int | 总数 | |
StatefulWorkloads | [object] | 有状态容器的列表 | |
----NamespaceId | long | 空间Id | |
----StatefulWorkLoadId | long | 有状态容器的Id | |
----Name | string | 有状态容器名 | |
----Placement | object | 实例所属位置 | |
----StatefulWorkloadStatus | String | 负载底层状态 | Pending |
--------ZoneId | [string] | 实例所属可用区数组 | |
----CreateAt | String | 创建时间 | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
----UpdateAt | String | 最后更新时间 | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
----Status | enum | 有状态负载的状态 | Creating、CreateFail、Running、Updating、Abnormal |
----Images | [string] | 镜像URL数组 | |
{
"StatefulWorkloads":[{
"Name":"xxx-Name",
"Status":"Running",
"StatefulWorkloadId":985399,
"StatefulWorkloadStatus":"Pending",
"CreateAt":152042,
"Images":["xxx-Images"],
"Placement":{
"ZoneId":["B"]
},
"NamespaceId":212638
}],
"TotalCount":1
}
2.9 【有状态负载】【查询】信息详情
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=DescribeStatefulWorkloadInfo
- 用于查询指定有状态负载的详细情况
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadInfo |
输入参数说明
参数 | 类型 | 是否必填 | 描述 | 备注 |
NamespaceId | long | 是 | 空间Id | |
StatefulWorkloadId | long | 是 | 有状态容负载的Id | |
StatefulWorkloadId=403778&
NamespaceId=771294
参数 | 类型 | 描述 | 备注 |
StatefulWorkloadId | long | 负载编号 | |
NamespaceId | long | 负载所属命名空间 | |
Name | string | 负载名 | |
Placement | object | 实例所属位置 | |
OperationLocks | array | 是否是欠费停服状态 | 返回一个数组,数组对象里目前仅有LockReason一个字段,如果为欠费停服,则字段值为financial;如果不是欠费停服状态,则为空数组; |
----ZoneId | [string] | 可用区 | |
StatefulWorkloadStatus | enum | 负载底层状态 | Pending |
CreateAt | String | 创建时间 | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
UpdateAt | String | 更新时间 | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
SpecType | string | 规格类型 | |
VirtualPrivateCloud | object | Vpc | |
----VpcId | string | Vpc编号 | |
----SubnetId | string | 私有网络子网ID | |
SecurityGroupIds | [string] | 实例所属安全组 | |
ContainerType | enum | 容器类型 | {普通、高性能} |
SysCmds | [string] | sysctl系统参数数组 | 有白名单控制 |
Containers | [object] | 容器列表 | |
----Name | string | 容器名称 | |
----Image | string | 镜像地址 | |
----LogDirs | [string] | 日志路径数组 | |
----Args | [string] | Docker CMD命令 | |
Command | [string] | Docker EntryPoint命令 | |
----Envs | [object] | 环境变量数组 | |
--------Name | string | | |
--------Value | string | | |
----ResourceRequirements | object | 资源限制 | |
--------Limits | object | 资源最小限制 | |
------------Cpu | string | cpu最大限制 | 单位为千分之一核 |
------------Memory | string | 内存最大限制 | |
------------Gpu | int | gpu最大限制 | 单位为 gpu 核数,初定20180125后生效 |
--------Requests | object | 资源最大限制 | |
------------Cpu | string | cpu最小限制 | 单位为千分之一核 |
------------Memory | string | 内存最小限制 | |
------------Gpu | int | gpu最小限制 | 单位为 gpu 核数,初定20180125后生效 |
----DataDisks | [object] | | |
--------DiskType | string | 数据盘类型. | CloudSsd、CloudHighPerformanceSsd、CloudLocal |
--------DiskName | string | 磁盘名 | |
--------DiskId | string | 磁盘id | |
--------DiskUuid | string | 磁盘的VolumeId | |
--------MountPath | string | 挂载路径 | |
--------DiskSize | long | 数据盘大小 | |
----SshKeyIds | [long] | 密钥数组 | |
----SecurityContext | object | 安全选项 | |
--------Privilege | enum | 权限限制 | 默认权限或root权限。 |
--------Capabilities | [string] | 容器权限 | 缺省为默认容器运行时权限。取值范围:默认的权限、SYS_ADMIN |
----LivenessProbe | Object | 容器liveness探针 | 与创建是格式相同 |
----ReadinessProbe | Object | 容器readiness探针 | 与创建是格式相同 |
EipId | string | 弹性公网ipId | 与创建是格式相同 |
Labels | Map<String,String> | 负载的labels | 包含系统lable和用户label,字典排序 |
{
"Containers":[{
"Name":"xxx-Name",
"NamespaceId":666,
"Args":["xxx-Args"],
"ResourceRequirements":{
"Requests":{
"Memory":"xxx-Memory",
"Cpu":"xxx-Cpu"
},
"Limits":{
"Memory":"xxx-Memory",
"Cpu":"xxx-Cpu"
}
},
"Envs":[{
"Name":"xxx-Name",
"Value":"xxx-Value"
}],
"Image":"hub.cn-east-1.163yun.com/public/debian:7.9",
"SecurityContext":{
"Privilege":"xxx",
"Capabilities":["SYS_ADMIN"]
},
"DataDisks":[{
"DiskSize":290787,
"DiskName":"xxx-DiskName",
"MountPath":"xxx-MountPath",
"DiskId":"xxx-DiskId",
"DiskType":"xxx-DiskType"
}],
"LogDirs":["/home/logs/"],
"SshKeyIds":[789897]
}],
"SpecType":"xxx-SpecType",
"CreateAt":278235,
"PayType":"PostPaid",
"Placement":{
"ZoneId":["B"]
},
"SysCmds":["xxx-SysCmds"],
"Name":"xxx-Name",
"StatefulWorkloadStatus":"Pending",
"StatefulWorkloadId":692570,
"SecurityGroupIds":["xxx-SecurityGroupIds"],
"EipId":"xxx-EipId",
"ContainerType":"xxx",
"VirtualPrivateCloud":{
"SubnetId":"xxx-SubnetId",
"VpcId":"xxx-VpcId"
},
"PackageId":946478
}
2.10 【有状态负载】【查询】实例详情
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=DescribeStatefulWorkloadInstances
- 查询有状态容器的Pod信息,主要包含容器的运行状态和各个副本Ip地址,运行状态等信息。
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadInstances |
参数 | 类型 | 必填 | 描述 | 备注 |
NamespaceId | long | 是 | 空间Id | |
StatefulWorkloadId | long | 是 | 有状态负载的Id | |
StatefulWorkloadId=5328&
NamespaceId=508085
参数 | 类型 | 描述 | 备注 |
Pods | object | 负载下的pod实例列表 | 可能为0个 |
----PodId | long | 有状态容器的Id | |
----PodName | string | Pod名称 | |
----Status | enum | Pod状态 | |
----Ip | string | Pod内网ip | |
----SystemDisk | string | Pod的系统盘信息 | |
--------DiskType | string | 系统盘类型 | 见新版计算通用枚举表 |
--------DiskUuid | string | 系统盘VolumeId | |
----ZoneId | [string] | 可用区 | |
----CreateAt | String | 创建时间 | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
----Containers | [object] | 容器数组 | |
--------Name | string | 容器名称 | 1-24位小写字母、数字、或中划线组成,以字母开头,字母或数字结尾 |
--------Image | string | 镜像地址 | |
--------Status | string | 容器状态 | running,waiting,terminated,restart_process,restart_fail |
--------ContainerId | long | 容器id | |
--------DockerContainerId | string | 容器在Docker中的ID | |
{
"Pods":[{
"Containers":[{
"Name":"xxx-Name",
"Status":"Running",
"DockerContainerId":"xxx-DockerContainerId",
"Image":"hub.cn-east-1.163yun.com/public/debian:7.9",
"ContainerId":483988
}],
"Ip":"xxx-Ip",
"Status":"Running",
"PodName":"xxx-PodName",
"CreateAt":17974,
"ZoneId":["B"],
"PodId":129955
}]
}
2.11 【有状态负载】【查询】容器镜像列表
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=DescribeStatefulWorkloadImages
- 查询当前负载的运行状态。
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadImages |
输入参数说明
参数 | 类型 | 必填 | 描述 | 备注 |
NamespaceId | long | 是 | 空间Id | |
StatefulWorkloadId | long | 是 | 有状态容器的Id | |
StatefulWorkloadId=334204&
NamespaceId=199547
参数 | 类型 | 描述 | 备注 |
NamespaceId | long | 空间Id | |
StatefulWorkloadId | long | | |
Containers | [string] | 容器的数组,包含镜像信息 | |
----ContainerName | long | 容器名 | |
----Image | string | 容器镜像URL | |
{
"Containers":[{
"Image":"hub.cn-east-1.163yun.com/public/debian:7.9",
"ContainerName":"MyCentos"
}],
"StatefulWorkloadId":373029,
"NamespaceId":193185
}
2.12 【有状态负载】【更新】定义
- PATH=/ncs
- Version=2017-11-16
- Method=POST
- Action=ModifyStatefulWorkload
Note
1.在调用该接口时应该输入全部的参数,而非仅输入有变化的参数。任何留空的参数将会被理解为将该参数置空。
2.该接口仅支持修改已经存在的容器的信息,不能新增或删除容器,同时也不支持修改容器名。
3.containers中的容器必须通过name字段与实际的容器构成一一对应的映射关系,否则会返回错误码ContainerNumNotMatch。
4.LogDirs不支持日志目录挂载目点的增加或删除,使用时需要保证目录前后数量一致。
METHOD | URL |
POST | /ncs?Version=2017-11-16&Action=ModifyStatefulWorkload |
请求参数
参数名称 | 说明 | 参数类型 | 是否必填 |
Action | ModifyStatefulWorkload | string | 是 |
Version | 2017-11-16 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
NamespaceId | 空间Id | long | 是 | |
StatefulWorkloadId | 有状态负载的Id | long | 否 | |
SysCmds | sysctl系统参数数组 | array | 否 | |
Labels | 标签,map类型,key和value类型都是string | object | 否 | |
Containers | array | 是 | 详细信息见下表 | |
ImagePullSecretIds | 镜像拉取秘钥 | array | 是 | |
参数名称 | 说明 | 参数类型 | 是否必填 | 备 |
Name | 容器名称 | string | 否 | |
Image | 镜像URL | string | 否 | |
LogDirs | 日志路径数组 | array | 否 | |
Args | Docker CMD命令 | array | 否 | |
Command | Docker EntryPoint命令 | array | 否 | |
Envs | 环境变量数组 | array | 否 | 详细信息见下表 |
ResourceRequirements | 资源限制 | object | 否 | 详细信息见下表 |
SecurityContext | 安全选项 | object | 否 | 详细信息见下表 |
SshKeyIds | 密钥Id数组 | array | 否 | |
LivenessProbe | liveness探针(可选) | object | 否 | 详细信息见下表 |
ReadinessProbe | readiness探针(可选) | object | 否 | 详细信息见下表 |
Volumes | 容器卷(可选) | array | 是 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
VolumeType | 容器卷类型,目前仅支持Emptydir | string | 是 | |
Emptydirs | 当volumeType为Emptydir时必填,容器绑定的Emptydir的信息 | array | 否 | 详细信息见下表 |
Secrets | 密钥,若VolumeType为Secret则必填 | array | 否 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 |
SecretId | 密钥Id | long | 是 |
MountPath | 秘钥在容器中的挂载点 | string | 是 |
Mode | 容器对秘钥的访问方式,仅支持只读 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Medium | 默认支持内存Memory,未来支持磁盘 | string | 否 |
MountPath | 卷在容器中的挂载点 | string | 是 |
Mode | 容器对卷的访问方式,ro 为只读,rw 为读写(default) | string | 是 |
Name | EmptyDir的名称,同一个容器里的EmptyDir此字段不能重复 | string | 是 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Exec | 探针执行的结构 | object | 否 | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | 否 | |
timeoutSeconds | 执行超时时间 | integer | 否 | |
参数名称 | 说明 | 参数类型 | 是否必填 |
Command | 探针执行的命令 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Exec | 探针执行的结构 | object | 否 | 详细信息见下表 |
PeriodSeconds | 执行间隔周期 | integer | 否 | |
timeoutSeconds | 执行超时时间 | integer | 否 | |
参数名称 | 说明 | 参数类型 | 是否必填 |
Command | 探针执行的命令 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
privilege | 默认权限或root权限,缺省为默认权限,有白名单限制 | boolean | 否 |
capabilities | 容量 | array | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 | 备注 |
Limits | 资源限制 | object | 否 | 详细信息见下表 |
Requests | 资源需求 | object | 否 | 详细信息见下表 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Cpu | cpu核数 | long | 否 |
Memory | 内存大小 | long | 否 |
Gpu | gpu核数 | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Cpu | cpu核数 | long | 否 |
Memory | 内存大小 | long | 否 |
Gpu | gpu核数 | string | 否 |
参数名称 | 说明 | 参数类型 | 是否必填 |
Name | 环境名字 | string | 是 |
Value | 环境值;当type不存在时必填,其它时候无效; | string | 否 |
Type | 环境变量类型;此值要么不出现,出现则仅支持Secret; | string | 否 |
SecretId | 秘钥id,秘钥类型仅支持Opaque;当Type为Secret时必填,Type为其它值时此值无效 | long | 否 |
Key | 键值;键值必须存在于secret中 | string | 否 |
返回参数
参数名称 | 说明 | 参数类型 | 是否必填 |
RequestId | 请求 id,方便排错 | string | 是 |
POST
{
"SysCmds":[
"xxx-SysCmds"
],
"Containers":[
{
"Name":"containerName",
"Image":"hub.c.163.com/public/ubuntu:16.04-tools",
"Args":[
"xxx-Args"
],
"ResourceRequirements":{
"Requests":{
"Memory":"xxx-Memory",
"Cpu":"xxx-Cpu"
},
"Limits":{
"Memory":"xxx-Memory",
"Cpu":"xxx-Cpu"
}
},
"Envs":[
{
"Name":"xxx-Name",
"Value":"xxx-Value"
}
],
"LogDirs":[
"/home/logs/"
],
"SshKeyIds":[
458768
],
"Volumes": [
{
"VolumeType": "Emptydir",
"Emptydirs": [
{
"Medium": "Memory",
"MountPath": "/abc",
"Mode": "rw"
}
]
}
]
}
],
"StatefulWorkloadId":275041,
"NamespaceId":134412
}
返回示例
{
"RequestId": "4cba6e5f-6321-4ee2-86aa-e3af7cce314f"
}
2.13 【有状态负载】【更新】绑定弹性公网IP
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=AssociateEipOfStatefulWorkload
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=AssociateEipOfStatefulWorkload |
输入
参数 | 类型 | 必填 | 描述 | 备注 |
NamespaceId | long | 是 | 空间Id | |
StatefulWorkloadId | long | 是 | 有状态容器的Id | |
EipId | string | 是 | 弹性公网ip的id | 注意并非是IP地址 |
StatefulWorkloadId=786910&
EipId=xxx-EipId&
NamespaceId=133137
2.14 【有状态负载】【更新】解绑弹性公网IP
- PATH=/ncs
- Version=2017-11-16
- Method=GET
- Action=UnAssociateEipOfStatefulWorkload
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=UnAssociateEipOfStatefulWorkload |
输入
参数 | 类型 | 必填 | 描述 | 备注 |
NamespaceId | long | 是 | 空间Id | |
StatefulWorkloadId | long | 是 | 有状态容器的id | |
EipId | string | 是 | 弹性公网ip的id | 注意并非是IP地址 |
StatefulWorkloadId=420405&
EipId=xxx-EipId&
NamespaceId=221079