StatefulWorkload 接口文档

1. 通用返回码说明

类型CODE说明
InternalServerErrorInternalServerError服务器内部错误
MissingParameterMissingParameter参数xxx缺失
InvalidFormatInvalidFormat参数xxx的格式非法
InvalidParameterValueInvalidParameterValue值 xxx 对于参数 xxx 无效
GrayDeploymentErrorNoPrivate无权设置参数xxx
NumErrorInvalidParameterValuexxx 数目错误
DuplicateNameErrorDuplicateNameErrorxxx 设置重复

Note

通用返回码后续可能会新增。

2. 接口说明

2.1 创建 StatefulWorkload

  • method && URL
METHODURL
POST/ncs?Action=CreateStatefulWorkload&Version=2017-11-16

输入参数说明

  • query
参数名称说明参数类型是否必填
ActionCreateStatefulWorkloadstring
Version2017-11-16string
  • Body
参数名称说明参数类型是否必填备注
Placement实例所属位置object详细信息见下表
SpecTypePostPaid时必填string
ContainerType普通容器(Standard)/裸机容器(HighPerformancestring
Containers容器数组array详细信息见下表
SysCmds有白名单限制array
SecurityGroupIds实例所属安全组string
VirtualPrivateCloud私有网络相关信息配置object详细信息见下表
NamespaceId空间Idlong
NameStatefulPod名称string
Labels标签,map类型,key和value类型都是stringobject
ImagePullSecretIds拉取镜像秘钥列表array
  • VirtualPrivateCloud
参数名称说明参数类型是否必填
VpcId私有网络idstring
SubnetId当子网为classic时,无子网id, 此值为Nonestring
  • Containers
参数名称说明参数类型是否必填备注
Name容器名称string
Image镜像URLstring
LogDirs日志路径数组array
ArgsDockerCMD命令array
CommandDockerEntryPoint命令array
Envs环境变量数组array详细信息见下表
ResourceRequirements资源限制object详细信息见下表
SecurityContext安全选项object详细信息见下表
SshKeyIds密钥Id数组array
LivenessProbeliveness探针(可选)object详细信息见下表
ReadinessProbereadiness探针(可选)object详细信息见下表
Volumes容器卷(可选)array详细信息见下表
  • Volumes
参数名称说明参数类型是否必填备注
VolumeType容器卷类型,目前仅支持Emptydirstring
Emptydirs当volumeType为Emptydir时必填,容器绑定的Emptydir的信息array详细信息见下表
Secrets密钥,若VolumeType为Secret则必填array详细信息见下表
  • Secrets
参数名称说明参数类型是否必填
SecretId密钥Idlong
MountPath秘钥在容器中的挂载点string
Mode容器对秘钥的访问方式,仅支持只读string
  • Emptydirs
参数名称说明参数类型是否必填
Medium默认支持内存Memory,未来支持磁盘string
MountPath卷在容器中的挂载点string
Mode容器对卷的访问方式,ro 为只读,rw 为读写(default)string
NameEmptyDir的名称,同一个容器里的EmptyDir此字段不能重复string
  • ReadinessProbe
参数名称说明参数类型是否必填备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型是否必填
Command探针执行的命令array
  • LivenessProbe
参数名称说明参数类型是否必填备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型是否必填
Command探针执行的命令array
  • SecurityContext
参数名称说明参数类型是否必填
privilege默认权限或root权限,缺省为默认权限,有白名单限制boolean
capabilities容量array
  • ResourceRequirements
参数名称说明参数类型是否必填备注
Limits资源限制object详细信息见下表
Requests资源需求object详细信息见下表
  • Requests
参数名称说明参数类型是否必填
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Limits
参数名称说明参数类型是否必填
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Envs
参数名称说明参数类型是否必填
Name环境名字string
Value环境值;当type不存在时必填,其它时候无效;string
Type环境变量类型;此值要么不出现,出现则仅支持Secret;string
SecretId秘钥id,秘钥类型仅支持Opaque;当Type为Secret时必填,Type为其它值时此值无效long
Key键值;键值必须存在于secret中string
  • Placement
参数名称说明参数类型是否必填
ZoneId实例所属可用区数组array

返回参数

参数名称说明参数类型是否必填
StatefulWorkloadId有状态负载的idlong
RequestIdstring
  • 请求示例
 {
   "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
METHODURL
GET/ncs?Action=RedeployStatefulWorkload&Version=2017-11-16
  • 输入参数说明

示例

 NamespaceId=1&StatefulWorkloadId=1
参数类型说明备注是否必填
NamespaceIdLong空间Id
StatefulWorkloadIdLongWorkload 的id
  • 返回

2.3 有状态负载重启

  • method && URL
METHODURL
GET/ncs?Action=RestartContainer&Version=2017-11-16
  • 输入参数说明

示例

NamespaceId=1&StatefulWorkloadId=1&ContainerId=154h9fjnhgorahg9e4qeho9th49f38994fh9fh93r
参数类型说明备注是否必填
NamespaceIdLong空间Id
StatefulWorkloadIdLongWorkload的id
ContainerIdString容器id(DockerContainerId)
  • 返回

2.4 强制重启有状态负载

  • method && URL
METHODURL
GET/ncs?Action=RestartStatefulWorkloadInstance&Version=2017-11-16
  • 输 入参数说明

示例

 NamespaceId=1&StatefulWorkloadId=1
参数类型说明备注是否必填
NamespaceIdLong空间Id
StatefulWorkloadIdLongWorkload的id
  • 返回

2.5 删除 StatefulWorkload

  • method && URL
METHODURL
GET/ncs?Action=DeleteStatefulWorkload&Version=2017-11-16
  • 输入参数说明

示例

NamespaceId=1&StatefulWorkloadId=1
参数类型说明备注是否必填
NamespaceIdLong空间Id
StatefulWorkloadIdLongStatefulPod的id
  • 返回

无 或 ResourceNotFound IncorrectState

2.6 更改有状态负载实例规格(按量计费)

Note

若传入的资源规格类型与容器当前规格相同,则返回特定错误码,而不进行实际的更新

  • method && URL
METHODURL
POST/ncs?Version=2017-11-16&Action=ResetStatefulWorkloadSpecType
  • 请求参数
参数说明类型是否必填
NamespaceId空间Idlong
StatefulWorkloadId有状态工作负载idlong
SpecType资源规格类型String
ContainersContainer 数组容器资源限制数组(Container)

其中Container对象为:

参数说明类型是否必填
Name容器名称String
ResourceRequirementsObject

ResourceRequirements对象为:

参数说明类型是否必填
Limits资源最大限制Object
Requests资源最小限制Object

Limits对象为:

参数说明类型是否必填
Cpucpu最大限制String
Memory内存最大限制String

Requests对象为:

参数说明类型是否必填
Cpucpu最小限制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 CODECODEMESSAGE说明
400MissingParameterThe required input parameter %s for processing this request is not supplied.参数缺失
400InvalidParameterValueThe Parameter %s 's value %s is invalid.参数值非法
400NothingToUpdate规格与原有规格一致,无需更新

2.7 【有状态负载】【查询】指定空间下的负载列表

  • PATH=/ncs
  • Version=2017-11-16
  • Method=GET
  • Action=DescribeStatefulWorkloads
  • 用于查询指定空间下所有负载的列表,列表中包含负载的简单元信息。
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeStatefulWorkloads

输入参数说明

  • query
参数名称说明参数类型是否必填
NamespaceId空间Idstring
StatefulWorkloadId有状态容器的Idstring
ActionDescribeStatefulWorkloadInfostring
Version2017-11-16string

返回参数

参数名称说明参数类型备注
StatefulWorkloadId负载编号long
NamespaceId负载所属空间idlong
Name负载名字string
Placement实例所属位置object详细信息见下表
Statusenum类型,Creating、CreateFail、Running、Updating、Abnormalstring
CreateAt创建时间string
UpdateAt修改时间string
PackageId资源包编号long
StatefulWorkloadStatusenum类型,Pending Running Succeeded Failedenum
PayType购买模式string
VirtualPrivateCloudVpcobject详细信息见下表
SecurityGroupIds实例所属安全组string
ContainerTypeenum容器类型,{普通、高性能}string
SysCmdssysctl系统参数数组array
Containers容器列表array详细信息见下表
EipId弹性公网ipIdstring
Labels标签,map类型,key和value类型都是stringobject
OperationLocks返回一个数组,数组成员对象里目前仅有LockReason一个字段,如果为欠费停服,则字段值financial;如果不是欠费停服状态,则为空数组;array详细信息见下表
Kind种类,目前有状态负载有pods和statefulsetsstring
ClusterId集群idinteger
ImagePullSecretIds拉取镜像秘钥列表array
ResourcePoolInfo资源池信息object详细信息见下表
  • ResourcePoolInfo
参数名称说明参数类型
ResourcePoolId资源池idstring
ResourcePoolName资源池名字string
Owner资源池归属(公共/专属)string
  • OperationLocks
参数名称说明参数类型
LockReason被锁的原因string
  • Containers
参数名称说明参数类型备注
Name容器名称string
Image镜像urlstring
LogDirs日志路径数组array
ArgsDocker CMD命令array
Envs环境变量数组array详细信息见下表
ResourceRequirements资源限制object详细信息见下表
DataDisks磁盘描述数组array详细信息见下表
SshKeyIds 密钥数组,long类型 array
SecurityContext安全选项object
LivenessProbeliveness探针object
ReadinessProbereadiness探针object详细信息见下表
Volumes容器卷array详细信息见下表
  • Volumes
参数名称说明参数类型备注
VolumeType容器卷类型,目前仅支持Emptydirstring
Emptydirs当volumeType为Emptydir时必填,容器绑定的Emptydir的信息array详细信息见下表
Secrets密钥,若VolumeType为Secret则必填array详细信息见下表
  • Secrets
参数名称说明参数类型
SecretId密钥Idlong
MountPath秘钥在容器中的挂载点string
Mode容器对秘钥的访问方式,仅支持只读string
  • Emptydirs
参数名称说明参数类型
Medium默认支持内存Memory,未来支持磁盘string
MountPath卷在容器中的挂载点string
Mode容器对卷的访问方式,ro 为只读,rw 为读写(default)string
NameEmptyDir的名称,同一个容器里的EmptyDir此字段不能重复string
  • ReadinessProbe
参数名称说明参数类型备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型
Command探针执行的命令array
  • LivenessProbe
参数名称说明参数类型备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型
Command探针执行的命令array
  • SecurityContext
参数名称说明参数类型
privilege默认权限或root权限,缺省为默认权限,有白名单限制boolean
capabilities容量array
  • DataDisks
参数名称说明参数类型
DiskType数据盘类型string
DiskName磁盘名string
DiskId磁盘idstring
DiskUuid磁盘的VolumeIdstring
MountPath挂载路径string
DiskSize数据盘大小string
  • ResourceRequirements
参数名称说明参数类型备注
Limits资源限制object详细信息见下表
Requests资源需求object详细信息见下表
  • Requests
参数名称说明参数类型
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Limits
参数名称说明参数类型
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Envs
参数名称说明参数类型
Name环境名字string
Value环境值;当type不存在时必填,其它时候无效;string
Type环境变量类型;此值要么不出现,出现则仅支持Secret;string
SecretId秘钥id,秘钥类型仅支持Opaque;当Type为Secret时必填,Type为其它值时此值无效long
Key键值;键值必须存在于secret中string
  • VirtualPrivateCloud
参数名称说明参数类型
VpcId私有网络idstring
SubnetId当子网为classic时,无子网id, 此值为Nonestring
  • Placement
参数名称说明参数类型
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

用于查询所有空间下所有负载的列表,列表中包含负载的简单元信息。

METHODurl
GET/ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadsAllNamespaces
  • 输入参数说明
参数类型必填描述备注
Limitint查询数量大于0的整数,默认20
Offsetint列表偏移大等于0的整数,默认0
  • 示例
Offset=1&
Limit=2
  • 返回说明
参数类型描述备注
TotalCountint总数
StatefulWorkloads[object]有状态容器的列表
----NamespaceIdlong空间Id
----StatefulWorkLoadIdlong有状态容器的Id
----Namestring有状态容器名
----Placementobject实例所属位置
----StatefulWorkloadStatusString负载底层状态Pending
--------ZoneId[string]实例所属可用区数组
----CreateAtString创建时间ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
----UpdateAtString最后更新时间ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
----Statusenum有状态负载的状态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
  • 用于查询指定有状态负载的详细情况
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadInfo

输入参数说明

参数类型是否必填描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong有状态容负载的Id
  • 示例
StatefulWorkloadId=403778&
NamespaceId=771294
  • 返回说明
参数类型描述备注
StatefulWorkloadIdlong负载编号
NamespaceIdlong负载所属命名空间
Namestring负载名
Placementobject实例所属位置
OperationLocksarray是否是欠费停服状态返回一个数组,数组对象里目前仅有LockReason一个字段,如果为欠费停服,则字段值为financial;如果不是欠费停服状态,则为空数组;
----ZoneId[string]可用区
StatefulWorkloadStatusenum负载底层状态Pending
CreateAtString创建时间ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAtString更新时间ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
SpecTypestring规格类型
VirtualPrivateCloudobjectVpc
----VpcIdstringVpc编号
----SubnetIdstring私有网络子网ID
SecurityGroupIds[string]实例所属安全组
ContainerTypeenum容器类型{普通、高性能}
SysCmds[string]sysctl系统参数数组有白名单控制
Containers[object]容器列表
----Namestring容器名称
----Imagestring镜像地址
----LogDirs[string]日志路径数组
----Args[string]Docker CMD命令
Command[string]Docker EntryPoint命令
----Envs[object]环境变量数组
--------Namestring
--------Valuestring
----ResourceRequirementsobject资源限制
--------Limitsobject资源最小限制
------------Cpustringcpu最大限制单位为千分之一核
------------Memorystring内存最大限制
------------Gpuintgpu最大限制单位为 gpu 核数,初定20180125后生效
--------Requestsobject资源最大限制
------------Cpustringcpu最小限制单位为千分之一核
------------Memorystring内存最小限制
------------Gpuintgpu最小限制单位为 gpu 核数,初定20180125后生效
----DataDisks[object]
--------DiskTypestring数据盘类型.CloudSsd、CloudHighPerformanceSsd、CloudLocal
--------DiskNamestring磁盘名
--------DiskIdstring磁盘id
--------DiskUuidstring磁盘的VolumeId
--------MountPathstring挂载路径
--------DiskSizelong数据盘大小
----SshKeyIds[long]密钥数组
----SecurityContextobject安全选项
--------Privilegeenum权限限制默认权限或root权限。
--------Capabilities[string]容器权限缺省为默认容器运行时权限。取值范围:默认的权限、SYS_ADMIN
----LivenessProbeObject容器liveness探针与创建是格式相同
----ReadinessProbeObject容器readiness探针与创建是格式相同
EipIdstring弹性公网ipId与创建是格式相同
LabelsMap<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地址,运行状态等信息。
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadInstances
  • 输入参数说明
参数类型必填描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong有状态负载的Id
  • 示例
StatefulWorkloadId=5328&
NamespaceId=508085
  • 返回说明
参数类型描述备注
Podsobject负载下的pod实例列表可能为0个
----PodIdlong有状态容器的Id
----PodNamestringPod名称
----StatusenumPod状态
----IpstringPod内网ip
----SystemDiskstringPod的系统盘信息
--------DiskTypestring系统盘类型新版计算通用枚举表
--------DiskUuidstring系统盘VolumeId
----ZoneId[string]可用区
----CreateAtString创建时间ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
----Containers[object]容器数组
--------Namestring容器名称1-24位小写字母、数字、或中划线组成,以字母开头,字母或数字结尾
--------Imagestring镜像地址
--------Statusstring容器状态running,waiting,terminated,restart_process,restart_fail
--------ContainerIdlong容器id
--------DockerContainerIdstring容器在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
  • 查询当前负载的运行状态。
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeStatefulWorkloadImages

输入参数说明

参数类型必填描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong有状态容器的Id
  • 示例
StatefulWorkloadId=334204&
NamespaceId=199547
  • 返回说明
参数类型描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong
Containers[string]容器的数组,包含镜像信息
----ContainerNamelong容器名
----Imagestring容器镜像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不支持日志目录挂载目点的增加或删除,使用时需要保证目录前后数量一致。

METHODURL
POST/ncs?Version=2017-11-16&Action=ModifyStatefulWorkload

请求参数

  • query
参数名称说明参数类型是否必填
ActionModifyStatefulWorkloadstring
Version2017-11-16string
  • Body
参数名称说明参数类型是否必填备注
NamespaceId空间Idlong
StatefulWorkloadId有状态负载的Idlong
SysCmdssysctl系统参数数组array
Labels标签,map类型,key和value类型都是stringobject
Containersarray详细信息见下表
ImagePullSecretIds镜像拉取秘钥array
  • Containers
参数名称说明参数类型是否必填
Name容器名称string
Image镜像URLstring
LogDirs日志路径数组array
ArgsDocker CMD命令array
CommandDocker EntryPoint命令array
Envs环境变量数组array详细信息见下表
ResourceRequirements资源限制object详细信息见下表
SecurityContext安全选项object详细信息见下表
SshKeyIds密钥Id数组array
LivenessProbeliveness探针(可选)object详细信息见下表
ReadinessProbereadiness探针(可选)object详细信息见下表
Volumes容器卷(可选)array详细信息见下表
  • Volumes
参数名称说明参数类型是否必填备注
VolumeType容器卷类型,目前仅支持Emptydirstring
Emptydirs当volumeType为Emptydir时必填,容器绑定的Emptydir的信息array详细信息见下表
Secrets密钥,若VolumeType为Secret则必填array详细信息见下表
  • Secrets
参数名称说明参数类型是否必填
SecretId密钥Idlong
MountPath秘钥在容器中的挂载点string
Mode容器对秘钥的访问方式,仅支持只读string
  • Emptydirs
参数名称说明参数类型是否必填
Medium默认支持内存Memory,未来支持磁盘string
MountPath卷在容器中的挂载点string
Mode容器对卷的访问方式,ro 为只读,rw 为读写(default)string
NameEmptyDir的名称,同一个容器里的EmptyDir此字段不能重复string
  • ReadinessProbe
参数名称说明参数类型是否必填备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型是否必填
Command探针执行的命令array
  • LivenessProbe
参数名称说明参数类型是否必填备注
Exec探针执行的结构object详细信息见下表
PeriodSeconds执行间隔周期integer
timeoutSeconds执行超时时间integer
  • Exec
参数名称说明参数类型是否必填
Command探针执行的命令array
  • SecurityContext
参数名称说明参数类型是否必填
privilege默认权限或root权限,缺省为默认权限,有白名单限制boolean
capabilities容量array
  • ResourceRequirements
参数名称说明参数类型是否必填备注
Limits资源限制object详细信息见下表
Requests资源需求object详细信息见下表
  • Requests
参数名称说明参数类型是否必填
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Limits
参数名称说明参数类型是否必填
Cpucpu核数long
Memory内存大小long
Gpugpu核数string
  • Envs
参数名称说明参数类型是否必填
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
METHODURL
GET/ncs?Version=2017-11-16&Action=AssociateEipOfStatefulWorkload

输入

参数类型必填描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong有状态容器的Id
EipIdstring弹性公网ip的id注意并非是IP地址
  • 示例
StatefulWorkloadId=786910&
EipId=xxx-EipId&
NamespaceId=133137

2.14 【有状态负载】【更新】解绑弹性公网IP

  • PATH=/ncs
  • Version=2017-11-16
  • Method=GET
  • Action=UnAssociateEipOfStatefulWorkload
METHODURL
GET/ncs?Version=2017-11-16&Action=UnAssociateEipOfStatefulWorkload

输入

参数类型必填描述备注
NamespaceIdlong空间Id
StatefulWorkloadIdlong有状态容器的id
EipIdstring弹性公网ip的id注意并非是IP地址
  • 示例
StatefulWorkloadId=420405&
EipId=xxx-EipId&
NamespaceId=221079