Deployment 接口文档

1. 通用返回码说明

类型CODEMESSAGE
InternalServerErrorInternalServerError服务器内部错误
MissingParameterMissingParameter参数 %s 缺失
InvalidFormatInvalidFormat参数 %s 的格式非法
AlreadyExistAlreadyExist%名称已存在
QuotaInsufficientQuotaInsufficient%配额不足

Note

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

2. 接口说明

2.1 创建 Deployment

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

示例

{
  "Placement": {
   "ZoneId": ["cn-east-1a"]
  },
  "SpecType": "ncs.n1.medium2",
  "VirtualPrivateCloud": {
   "VpcId": "yourvpcId",
   "SubnetId": "None"
  },
  "SecurityGroupIds": ["ad2d4e"],
  "ContainerType": "Standard",
  "NamespaceId": 1,
  "Name": "test",
  "Replicas": 3,
  "SysCmds": ["xxx"],
  "MinReadySeconds": 10,
  "DeploymentStrategy": {
     "Type": "RollingUpdate",
     "RollingUpdate": {
        "MaxSurge": 0.25,
        "MaxUnavailable": 0.25
     }
  },
  "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": true,
    "Capabilities": []
   }
  }]
}
参数类型说明备注是否必填
PlacementObject实例所属位置包含Zone信息等,后期可能会包含专属云信息
SpecTypeString资源规格类型PostPaid时必填
VirtualPrivateCloudObject私有网络相关信息配置通过该参数可以指定私有网络的ID,子网ID等信息。仅在新版VPC生效
SecurityGroupIdsString Array实例所属安全组若指定VirtualPrivateCloud参数,则该参数必填,仅在新版VPC生效
ContainerTypeString容器类型Standard(普通容器)/HighPerformance(裸机容器)
NamespaceIdlong空间Id
NameStringDeployment名称
Replicasint副本数
SysCmdsString Arraysysctl系统参数数组有白名单限制
LabelsMap<String, String>k8s labels,用于selectorlabel name & value的正则为:1-63字符,且需要以[a-z0-9A-Z]开头和结尾,中间可为[a-z0-9A-Z_-.]。value值可为空串。详细请参考官方文档:https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
MinReadySecondsintpod更新间隔, 单位s5~300,默认5
DeploymentStrategyObjectDeployment升级策略默认RollingUpdate,MaxSurge、MaxUnavailable均为0.25
ContainersObject Array容器数组

其中,Placement对象格式为:

参数类型说明备注是否必填
ZoneIdString实例所属可用区数组

VirtualPrivateCloud对象格式为:

参数类型说明备注是否必填
VpcIdString私有网络Id,具体可通过VPC接口获取
SubnetIdString子网Id对于classic VPC,没有子网Id,该字段填None

DeploymentStrategy对象格式为:

参数类型说明备注是否必填
TypeStringDeloyment升级策略,value: RollingUpdate/Recreate默认RollingUpdate
RollingUpdateObjectRollingUpdate升级策略参数MaxSurge、MaxUnavailabe默认均为0.25

Container对象格式为:

参数类型说明备注是否必填
NameString容器名称
ImageString镜像URL
LogDirsString Array日志路径数组
ArgsString ArrayDocker CMD命令数组
CommandString ArrayDocker EntryPoint命令
EnvsObject Array环境变量数组
ResourceRequirementsObject资源限制
SecurityContextObject安全选项
LivenessProbeObjectliveness探针具体内容
ReadinessProbeObjectreadiness探针具体内容

其中,Env对象格式为:

参数类型说明备注是否必填
NameString环境变量名
ValueString环境变量值默认“”

ResourceRequirements对象格式为:

参数类型说明备注是否必填
LimitsObject资源最大限制
RequestsObject资源最小限制

Limits对象格式为:

参数类型说明备注是否必填
CpuStringcpu最大限制
MemoryString内存最大限制
GpuIntgpu最大限制单位为 gpu 核数,初定 20180125 版本生效

Requests对象格式为:

参数类型说明备注是否必填
CpuStringcpu最小限制
MemoryString内存最小限制
GpuIntgpu最小限制单位为 gpu 核数,初定 20180125 版本生效

SecurityContext对象格式为:

参数类型说明备注是否必填
PrivilegeString默认权限或root权限Boolean, 缺省为默认权限
CapabilitiesString Array容器权限Array, 默认的权限/SYS_ADMIN

RollingUpdate对象格式为:

参数类型说明备注是否必填
MaxSurgeString默认0.25
MaxUnavailableString默认0.25

ReadinessProbe 和LivenessProbe对象格式为:

参数类型说明备注是否必填
ExecObject
TimeoutSecondsint探针超时时间,单位为秒默认1s,最大600s
PeriodSecondsint探针探测频率,单位为秒默认10s,最大600s

其中Exec 对象具体格式为:

参数类型说明备注是否必填
CommandString Array在容器内部执行一个命令,如果该命令的退出状态码为0,表示容器健康限制长度1024个字符
  • 返回

示例

{
 "DeploymentId": 1
}
Code	 	xxx
Message	 	xxx

2.2 更新Deployment

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

示例

{
"NamespaceId": 1700,
"DeploymentId": 4740,
"Labels": {
},
"Containers": [{
"Name": "new1",
"Image": "10.185.8.175:5001/public/debian:7.9-common",
"Envs": [{
"Name": "TEST",
"Value": "testsss"
}],
"ResourceRequirements": {
"Limits": {
"Cpu": 1996,
"Memory": 2046
},
"Requests": {
"Cpu": 1994,
"Memory": 2045
}
},
"SecurityContext": {
"Privilege": false,
"Capabilities": ["SYS_ADMIN"]
}
}]
}

Note

Cpu 1000代表 1 core。

参数类型说明备注是否必填
ContainersObject Array容器数组
DeploymentIdlongDeploymentId
DeploymentStrategyObject默认使用RollingUpdate
LabelsMap<String, String>k8s labels, 用于selector
MinReadySecondsint默认使用创建时的值
NamespaceIdlong空间Id
SysCmdsString Arraysysctl系统参数数组仅限企业用户,SysCmds和Containers二者必填一个

其中,Container对象格式为:

参数类型说明备注是否必填
NameString容器名称container名称不可修改
ImageString镜像URL
LogDirsString Array日志路径数组
ArgsString ArrayDocker CMD命令数组
CommandString ArrayDocker EntryPoint命令
EnvsObject Array环境变量数组
ResourceRequirementsObject资源限制
SecurityContextObject安全选项

其中,Envs、ResourceRequirements、SecurityContext、Limits、Requests对象格式与创建一样。

  • 返回

参数说明备注
Codexxx
Messagexxx

2.3 更改Deployment实例规格(按量计费)

  • method && URL
METHODURL
POST/ncs?Version=2017-11-16&Action=ResetDeploymentSpecType
  • 请求参数
参数类型说明备注是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeployment Id
SpecTypeString资源规格类型
ContainersObject Array容器资源限制

Container对象为:

参数类型说明备注是否必填
NameString容器名称
ResourceRequirementsObject与创建时的对象一样
  • 示例

{
"NamespaceId": 1700,
"DeploymentId": 4848,
"SpecType": "ncs.n1.medium4",
"Containers": [{
"Name": "con1",
"ResourceRequirements": {
"Limits": {
"Cpu": 2000,
"Memory": 4095
},
"Requests": {
"Cpu": 2000,
"Memory": 4094
}
}
}]
}

Note

Cpu 1000代表 1 core。

  • 返回

2.4 更改Deployment副本数

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=ModifyDeploymentReplicas
  • 请求参数
参数类型说明备注是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeployment Id
Replicasint副本数受限于配额
  • 示例
/ncs?Version=2017-11-16&Action=ModifyDeploymentReplicas&NamespaceId=1&DeploymentId=1&Replicas=3
  • 返回

2.5 重新部署Deployment

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=RedeployDeployment
  • 请求参数
参数类型说明备注是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeployment Id
  • 示例
 
/ncs?Version=2017-11-16&Action=RedeployDeployment&NamespaceId=1&DeploymentId=1
  • 返回

2.6查询Deployment列表

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeDeployments
  • 请求参数
参数类型说明备注是否必填
NamespaceIdlong空间Id
Limitint默认20
Offsetint默认0
  • 示例
/ncs?Version=2017-11-16&Action=DescribeDeployments&NamespaceId=1
  • 返回
参数类型描述
TotalCountint已创建Deployment总数
DeploymentsObject ArrayDeployment列表

其中,Deployment对象包含信息为:

参数类型描述
DeploymentIdlongDeployment Id
NamespaceIdlong空间Id
NameStringDeployment名称
PlacementObject实例所属位置
StatusStringDeployment状态,可取值:Creating/CreateFail/Updating/Running/Abnormal
ImagesString Array镜像URL数组
CreateAtString创建时间,ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAtString更新时间, ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
ConditionsObject ArrayCondition对象参考详情API
AvailableReplicasint正常副本数
DesiredReplicasint预期副本数

Placement对象格式为:

参数类型描述
ZoneIdArray实例所属可用区数组

2.7 查询所有空间下Deployment列表

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeDeploymentsAllNamespaces
  • 请求参数
参数类型描述是否必填
Limitint默认20
Offsetint默认0
  • 示例
/ncs?Version=2017-11-16&Action=DescribeDeployments
  • 返回
参数类型描述
TotalCountint已创建Deployment总数
DeploymentsObject ArrayDeployment列表

其中,Deployment对象包含信息为:

参数类型描述
DeploymentIdlongDeployment Id
NamespaceIdlong空间Id
NameStringDeployment名称
PlacementObject实例所属位置
StatusStringDeployment状态, 可取值:Creating/CreateFail/Updating/Running/Abnormal
ImagesString Array镜像URL数组
CreateAtString创建时间,ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAtString更新时间,ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
ConditionsObject ArrayCondition对象参考详情API
AvailableReplicasint正常副本数
DesiredReplicasint预期副本数

Placement对象格式为:

参数类型描述
ZoneIdString Array实例所属可用区数组

2.8 查询Deployment详情

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeDeploymentInfo
  • 请求参数
参数类型描述是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeploymentId
  • 示例
/ncs?Version=2017-11-16&Action=DescribeDeploymentInfo&NamespaceId=1&DeploymentId=1
  • 返回
参数类型描述
DeploymentObjectDeployment详情

其中,Deployment对象包含信息为:

参数类型描述
DeploymentIdlongDeployment Id
NamespaceIdlong负载所属命名空间Id
NameStringDeployment名称
PlacementObject实例所属位置
AvailableReplicasint正常副本数
DesiredReplicasint预期副本数
CreateAtString创建时间,ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAtString 更新时间, ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
OperationLocksarray
返回一个数组,数组对象里目前仅有LockReason一个字段,如果为欠费停服,则字段值为financial;如果不是欠费停服状态,则为空数组;
SpecTypeString资源规格类型
VirtualPrivateCloudObject私有网络相关信息
SecurityGroupIdsString Array实例所属安全组
ContainerTypeString容器类型,Standard/HighPerformance, 默认Standard
Replicasint副本数
SysCmdsString Arraysysctl系统参数数组
LabelsMap<String, String>k8s labels
MinReadySecondsintpod最小更新间隔
DeploymentStrategyObject更新策略
ContainersObject Array容器数组
ConditionsObject Array状态信息
PodsObject ArrayPod列表

Placement对象格式为:

参数类型描述
ZoneIdString Array实例所属可用区数组

Container对象格式为:

参数类型说明备注
NameString容器名称
ImageString镜像URL
LogDirsString Array日志路径数组
ArgsString ArrayDocker CMD命令数组
CommandString ArrayDocker EntryPoint命令
EnvsOject Array环境变量数组
ResourceRequirementsObject资源限制
SecurityContextObject安全选项
LivenessProbeObjectliveness探针格式与创建时相同
ReadinessProbeObjectreadiness探针格式与创建时相同

Condition对象格式为:

参数类型描述
TypeStringType of deployment condition
StatusStringStatus of the condition,True/False/Unknow
ReasonStringThe reason for the condition's last transition
LastUpdateTimeStringType of deployment condition

VirtualPrivateCloud、Envs、SecurityContext、ResourceRequirements与创建时一样,Pod对象格式参考列表API。

2.9 查询Deployment实例列表

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DescribeDeploymentInstances
  • 请求参数
参数类型描述是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeploymentId
Limitint默认20
Offsetint默认0
  • 示例
/ncs?Version=2017-11-16&Action= DescribeDeploymentInstances&NamespaceId=1&DeploymentId=1

  • 返回
参数类型描述
TotalCountint总数
PodsObject ArrayDeployment当前rs 下的pods列表

Pod对象格式为:

参数类型描述
PodIdlongpod id
PodNameStringpod名称
StatusStringpod状态
IpStringpod内网ip
ZoneIdString可用区
CreateAtString创建时间,ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
ContainersObject Array容器数组

Container对象格式为:

参数类型描述
NameStringcontainer名称
ImageString镜像URL
StatusString容器状态
ContainerIdlong容器id, 数据库主键
DockerContainerIdString容器在docker中的id

2.10 删除Deployment实例

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DeleteDeployment
  • 请求参数
参数类型说明备注是否必填
NamespaceIdlong空间Id
DeploymentIdlongDeployment Id
  • 示例
GET /ncs?Version=2017-11-16&Action=DeleteDeployment&NamespaceId=1&DeploymentId=1
  • 返回

无 或 ResourceNotFound IncorrectState