查询服务详情

最近更新时间:2017-12-20 16:38:34

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"
            }
        }
    }
}

如果有其他疑问,您也可以在问答社区中寻求帮助。前往问答社区 >