说明:当前页面接口为旧版 API,未来可能停止维护。容器服务 API 3.0 版本接口定义更加规范,访问时延下降显著,建议使用 容器服务 API 3.0。
1. 接口描述
本接口 ( DescribeClusterServiceInfo ) 用于查询单个服务详情。
接口请求域名:ccs.api.qcloud.com
。
2. 输入参数
以下请求参数列表仅列出了接口请求参数,其它参数见 公共请求参数。
参数名称 | 描述 | 类型 | 必选 |
---|---|---|---|
clusterId | 集群 ID,请填写 查询集群列表 接口中返回的 clusterId 字段 | String | 是 |
serviceName | 服务名,请填写 查询服务列表 接口中返回的 serviceName 字段 | String | 是 |
namespace | 命名空间,请填写 查询服务列表 接口中返回的 namespace 字段,默认为 default | String | 否 |
3. 输出参数
参数名称 | 描述 | 类型 |
---|---|---|
code | 公共错误码。0 表示成功,其他值表示失败 | Int |
codeDesc | 业务侧错误码。成功时返回 Success,错误时返回具体业务错误原因 | String |
message | 模块错误信息描述,与接口相关 | String |
service | 服务列表,详细信息如下 | Object Array |
service 参数详细说明
字段 | 描述 | 类型 |
---|---|---|
serviceName | 服务名 | String |
serviceDesc | 服务描述 | String |
externalIp | 服务外网访问的 IP,创建服务时,如果服务指定服务访问类型为负载均衡,那么会为服务创建负载均衡器,该 IP 就是负载均衡器的 IP | String |
accessType | 服务访问方式 LoadBalancer:方式为服务创建一个外网负载均衡,访问该负载均衡的 IP 端口时,会把流量转发到该服务 NodePort:在集群每个 Node 上开启一个端口,通过访问任意 Node 的 IP 和开启的端口,把流量转发到该服务 SvcLBTypeInner:创建一个内网负载均衡,需要指定 subnetId ,占用该子网下的一个 IP。 为空:默认该服务不提供集群外访问,只供集群内其它服务访问 |
- |
createdAt | 服务创建时间 | String |
currentReplicas | 当前运行的实例副本数 | Int |
desiredReplicas | 期望运行的实例副本数,创建服务时指定 | Int |
lbId | 服务对应的外网负载均衡 ID,创建服务时,指定服务的访问类型为负载均衡 | String |
lbStatus | 外网负载均衡的状态,取值为 None、Creating、Running,分别表示该服务没有外网负载均衡、负载均衡创建中、负载均衡运行中 | String |
portMappings | 端口相关信息,对象包含字段详见下面表格 | Object Array |
status | 服务状态,具体说明见下面表格 | String |
reasonMap | 服务处于当前状态的原因集合,map 的 key 为原因,value 为具有相同原因的容器个数,例如 { " 下载镜像失败 " :2 } 这对 key value 表示目前有 2 个容器下载镜像失败 | map[string]int |
labels | 服务的标签列表 | Map |
volumes | 服务的卷,具体定义请参考下面的 volume 定义 | Object Array |
containers | 服务的容器列表 | Object |
serviceIp | 服务在集群内被访问的 vip | String |
namespace | 命名空间 | String |
regionId | 地域 ID | String |
subnetId | 子网 ID,仅在 accessTpye 为 SvcLBTypeInner 时有值 | String |
unHubId | 第三方镜像唯一 ID | String |
status 服务状态说明:
状态类型 | 状态描述 |
---|---|
Normal | 正常运行中 |
Abnormal | 服务异常,例如容器启动失败等 |
Waiting | 服务等待中,例如容器下载镜像过程等 |
Paused | 更新暂停中,当用户在更新服务过程中,暂停了更新操作会出现此状态 |
Updating | 服务更新中 |
RollingBack | 服务回滚中 |
portMappings 参数详细说明
字段 | 描述 | 类型 |
---|---|---|
nodePort | Node 上开启的端口 | Int |
lbPort | 当 accessType 为 LoadBalancer 及 SvcLBTypeInner:负载均衡监听端口和服务的监听端口 当 accessType 为 NodePort 及 ClusterIP :服务的监听端口 |
Int |
containerPort | 容器监听的端口 | Int |
protocol | 协议 ( TCP / UDP ) | String |
volumes 定义说明,详细解释可参考 数据卷挂载说明。
字段 | 描述 | 类型 |
---|---|---|
name | 容器卷名称 | String |
hostPath | 容器卷在 Node 上的目录,容器启动时,把该目录挂载到容器内,如果不填,会为该容器卷在 Node 上分配一个临时目录,当容器销毁时临时目录会被删除,如果指定了 hostPath,容器销毁时,该目录以及数据会被保留 | String |
containers 容器信息说明:
字段 | 描述 | 类型 |
---|---|---|
containerName | 容器名,通常与服务名一致 | String |
image | 容器镜像 | String |
envs | 容器环境变量,详细说明参阅下面表格 | Object数组 |
volumeMounts | 容器卷,详细说明参阅下面表格 | Object数组 |
cpu | 容器需要分配的 CPU 的量 (单位为 mU (千分之一核) ) | Int |
cpuLimits | 容器能使用 CPU 的最大量 (单位为 mU (千分之一核) ) | Int |
memory | 容器需要分配的内存量 (单位为 MiB ) | Int |
memoryLimits | 容器能使用内存的最大量 (单位为 MiB ) | Int |
command | 容器启动命令 详细说明可参阅 服务运行命令和参数设置 |
String |
arguments | 容器启动参数 详细说明可参阅 服务运行命令和参数设置 |
String数组 |
liveProbe | 容器存活检查信息,定义见下表 | Object |
readyProbe | 容器就绪检查信息,与 livePorbe 定义一样,见下表 | Object |
envs 参数详细说明:
字段 | 描述 | 类型 |
---|---|---|
name | 环境变量的名称 | String |
value | 环境变量的 value | String |
volumeMounts 参数详细说明,详情可参考 数据卷挂载说明。
字段 | 描述 | 类型 |
---|---|---|
volumeName | 卷名称 | String |
mountPath | 卷在容器中的挂载路径 | String |
mode | 容器对卷的访问方式,ro 为只读,rw 为读写 | String |
liveProbe 与 readyProbe 参数详细说明,详细解释可参考 服务健康检查设置。
字段 | 描述 | 类型 |
---|---|---|
checkMethod | 检查类型:methodTcp,methodHttp,methodCmd | String |
healthNum | 检查成功阈值,默认为 3,表示需要连续检测成功的次数,例如 type 为 liveCheck,healthNum 为 3,那么需要连续 3 次检测返回成功,才认为容器是存活的 | Int |
unhealthNum | 检查失败阈值,默认为 3,表示需要连续检测失败的次数,例如 type 为 liveCheck,unhealthNum 为 3,那么需要连续 3 次检测都返回失败,才认为容器已经死掉 | Int |
intervalTime | 健康检查间隔时间,表示多久执行一次健康检查操作。单位为秒 | Int |
timeOut | 健康检查操作超时时间,单位秒 | Int |
delayTime | 容器启动后,多长时间后执行健康检查,默认值:0 ( 马上启动健康检查 ),单位秒。注意:如果 type 为 readyCheck,在容器启动后的 delayTime 这段时间内,容器被认为是 unready,访问对应的服务时,请求不会被转发到该容器 | Int |
methodTcp | 当 checkMethod 为 methodTcp 时有效。详细信息见下表 | Object |
methodHttp | 当 checkMethod 为 methodHttp 时有效。详细信息见下表 | Object |
methodCmd | 当 checkMethod 为 methodCmd 时有效。详细信息见下表 | Object |
methodTcp 参数详细说明:
字段 | 描述 | 类型 |
---|---|---|
port | 执行检查操作时会对容器的该端口进行连接探测,连接成功则探测成功,否则失败 | Int |
methodHttp 参数详细说明:
字段 | 描述 | 类型 |
---|---|---|
port | 容器 HTTP 服务的端口,对容器的该端口发起 HTTP 或者 HTTPS 请求,请求返回的 httpcode 的范围在 200 ~ 399 则认为探测成功,否则失败 | Int |
protocol | 对容器进行 HTTP 探测时,协议只支持 HTTP 和 HTTPS | String |
path | 对容器进行 HTTP 探测时,会构建一个 url:protocol://containerIp:port/path ,然后对这个 url 发起 GET 操作来进行探测。protocol 和 port 就是上面指定的参数 |
String |
methodCmd 参数详细说明:
字段 | 类型 | 描述 |
---|---|---|
cmd | 当 checkMethod 为 methodCmd 时有效。探测时会对容器执行 cmd 命令,如果执行结果返回 0,则探测操作成功否则失败 | String |
4. 示例
输入
https://domain/v2/index.php?Action=DescribeClusterServiceInfo
&clusterName=test-cluster
&serviceName="simon"
&其它公共参数
输出
{
"code": 0,
"message": "",
"codeDesc": "Success",
"data": {
"service": {
"serviceName": "xxx",
"serviceDesc": "des",
"status": "Waiting",
"reasonMap": {
"下载镜像失败" : 1
},
"reason": "ImagePullBackOff",
"regionId": 1,
"desiredReplicas": 1,
"currentReplicas": 0,
"lbId": "",
"lbStatus":"None",
"createdAt": "2016-12-08 12:44:21",
"accessType": "LoadBalancer",
"serviceIp": "100.71.0.60",
"externalIp": "",
"namespace": "default",
"portMappings": [
{
"containerPort": 100,
"lbPort": 900,
"nodePort": 32191,
"protocol": "TCP"
}
],
"containers": [
{
"containerName": "test",
"image": "nginx",
"envs": null,
"volumeMounts": null,
"liveProbe": null,
"readyProbe": null,
"cpu": 0,
"memory": 0,
"command": "",
"arguments": null
}
],
"selector": {
"qcloud-app": "xxx"
},
"labels": {
"qcloud-app": "xxx"
}
}
}
}