Service 接口
1. 通用返回码说明
类型 | code | 说明 |
InternalServerError | InternalServerError | 服务器内部错误 |
MissingParameter | MissingParameter | 参数 %s 缺失 |
InvalidFormat | InvalidFormat | 参数 %s 的格式非法 |
AlreadyExist | AlreadyExist | %s 已存在 |
CanNotFound | CanNotFound | %s 不存在 |
OutOfBounds | OutOfBounds | %s 超过限制 |
NoPermission | NoPermission | 无权限操作 |
2. 接口说明
2.1 创建Service
METHOD | URL |
POST | /ncs?Version=2017-11-16&Action=CreateService |
示例
{
"ServiceName": "nceservice",
"PortMappings": [
{
"Port": 2000,
"TargetPort": 3000,
"Protocol": "TCP"
},
{
"Port": 2500,
"TargetPort": 3500,
"Protocol": "UDP"
}
],
"NamespaceId": 123456,
"Type": "ClusterIP",
"ClusterIP": "None",
"Selector": {
"app":"nginx",
"env":"test"
},
"VirtualPrivateCloud": {
"VpcId": "ez33zas23rsas8adad",
"SubnetId": "None"
}
}
参数 | 说明 | 类型 | 备注 |
ServiceName | 服务名, 1-24位小写字母、数字、或中划线组成,以字母开头,字母或数字结尾 | string | 必选 |
PortMappings | 端口映射,当ClusterIP="None"时,portMapping可为空 | array | 非必选 |
NamespaceId | 空间Id | long | 必选 |
Type | k8s集群暴露service的方式。k8s缺省为ClusterIP类型。当前仅支持type为ClusterIP类型 | string | 非必选 |
ClusterIP | 可取值"None" 或者"",k8s集群内部IP地址,该字段不可更新。当取值"None"时,为headless service,不分配IP。当Type为ClusterIP时,该字段必填 | string | 非必选 |
Selector | 根据匹配的标签将service的流量路由到pods上。 当为空,或不传时,代表有外部endpoint。label name & value的正则为:1-63字符,且需要以[a-z0-9A-Z]开头和结尾,中间可为[a-z0-9A-Z_-.]。value值可为空串。详细请参考官方文档:https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ | object | 非必选 |
VirtualPrivateCloud | 私有网络相关信息配置 。 通过该参数可以指定私有网络的ID,子网ID等信息。当该参数不填的时候,默认使用的是经典网络。当ClusterIP取值"None"的时候,不分配网络,该值无效。 | object | 必选 |
portMappings参数详细说明:
参数 | 说明 | 类型 | 备注 |
Port | 服务端口 1~65535 | int | 必选 |
TargetPort | 容器端口 1~65535 | int | 必选 |
Protocol | 协议TCP/UDP | string | 必选 |
VirtualPrivateCloud对象格式为:
参数 | 类型 | 说明 | 备注 |
VpcId | String | 私有网络Id,具体可通过 VPC 接口获取 | 是 |
SubnetId | String | 子网Id,经典网络填写None | 是 |
示例
{
"ServiceId":123456
}
参数 | 说明 | 类型 |
ServiceId | 服务 id | long |
2.2 删除Service
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DeleteService |
输入参数说明
示例
&ServiceId=45678&NamespaceId=23456
参数 | 说明 | 类型 | 备注 |
ServiceId | 服务id | long | 必选 |
NamespaceId | 空间Id | long | 必选 |
2.3 查询service列表
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeServices |
示例
&NamespaceId=23456&Limit=10&Offset=1020
参数 | 说明 | 类型 | 备注 |
NamespaceId | 空间Id | long | 必选 |
Limit | 查询数量大于0整数,默认20 | int | 非必选 |
Offset | 列表偏移大等于0整数,默认0 | int | 非必选 |
示例
{
"TotalCount": 1,
"Services": [
{
"ServiceId": 12345,
"ServiceName": "nce",
"NamespaceId": 23456,
"CreateAt": 253452334,
"UpdateAt": 234234324,
"PortMappings": [
{
"Port": 7070,
"TargetPort": 9090,
"Protocol": "TCP"
}
],
"EndPoint": {
"Name": "ncend",
"EndpointId": 345234,
"Subsets": [
{
"Addresses": [
"10.12.24.15",
"15.85.88.42"
],
"Ports": [
4123,
5345
]
}
]
},
"Type": "ClusterIP",
"ClusterIP": "12.25.56.45",
"Selector": {}
}
]
}
参数 | 说明 | 类型 |
TotalCount | 服务总数 | int |
Services | 服务列表,参见services参数详细说明 | array |
Services参数详细说明:
参数 | 说明 | 类型 | 备注 |
ServiceId | 服务id | long | |
ServiceName | 服务名 | string | |
NamespaceId | 空间id | long | |
CreateAt | 创建时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
UpdateAt | 修改时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
PortMappings | 端口映射,参见portMappings详细参数说明 | array | |
Endpoint | Endpoint | object | |
Type | 类型 | string | |
Selector | k8s中spec.selector,按字典序排序 | object | |
ClusterIP | IP地址或者None | String | |
portMappings参数详细说明:
参数 | 说明 | 类型 |
Port | 服务端口 | int |
TargetPort | 容器端口 | int |
Protocol | 协议TCP/UDP | string |
endpoint参数详细说明:
参数 | 说明 | 类型 |
Name | Endpoint name | string |
EndpointId | EndpointId | long |
Subsets | Endpoint的Subset数组 | array |
Subsets参数详细说明:
参数 | 说明 | 类型 |
Addresses | IP地址数组 | array |
Ports | 端口数组,1~65535 | array |
VirtualPrivateCloud对象格式为:
参数 | 类型 | 说明 |
VpcId | String | 私有网络Id |
SubnetId | String | 子网Id |
2.4 查询所有空间下服务列表
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeServicesAllNamespaces |
示例
&Limit=10&Offset=1020
参数 | 说明 | 类型 | 备注 |
Limit | 查询数量大于0整数,默认20 | int | 非必选 |
Offset | 列表偏移大等于0整数,默认0 | int | 非必选 |
Filters | 过滤条件,每次请求的Filters的上限为10,Filter.Values的上限为5 | filter array | 非必选 |
Filter类型参数说明:
参数 | 说明 | 类型 | 备注 |
Name | 过滤键的名称 | string | 非必选 |
Values | 一个或者多个过滤值 | string array | 非必选 |
示例
{
"TotalCount": 1,
"Services": [
{
"ServiceId": 12345,
"ServiceName": "nce",
"NamespaceId": 23456,
"CreateAt": 253452334,
"UpdateAt": 234234234,
"PortMappings": [
{
"Port": 7070,
"TargetPort": 9090,
"Protocol": "TCP"
}
],
"Endpoint": {},
"Type": "ClusterIP",
"ClusterIP": "12.25.56.45",
"Selector": {}
}
]
}
参数 | 说明 | 类型 |
TotalCount | 服务总数 | int |
Services | 服务列表,参见services参数详细说明 | array |
Services参数详细说明:
参数 | 说明 | 类型 | 备注 |
ServiceId | 服务id | long | |
ServiceName | 服务名 | string | |
NamespaceId | 空间id | long | |
CreateAt | 创建时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
UpdateAt | 修改时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
PortMappings | 端口映射,参见portMappings详细参数说明 | array | |
Endpoint | Endpoint | object | |
Type | 类型 | string | |
ClusterIP | Service的ClusterIP | String | |
Selector | 标签选择器,按字典排序 | Object | |
VirtualPrivateCloud | 私有网络相关信息配置 ,如果创建时ClusterIP为None,则不返回该信息 | Object | |
portMappings参数详细说明:
参数 | 说明 | 类型 |
Port | 服务端口 | int |
TargetPort | 容器端口 | int |
Protocol | 协议TCP/UDP | string |
Endpoint参数详细说明:
参数 | 说明 | 类型 |
Addresses | Ip地址数组 | array |
Ports | 端口数组,1~65535 | array |
EndpointId | EndpointId | long |
Name | Endpoint name | string |
VirtualPrivateCloud对象格式为:
参数 | 类型 | 说明 |
VpcId | String | 私有网络Id |
SubnetId | String | 子网Id |
2.5 查询服务详情
METHOD | URL |
GET | /ncs?Version=2017-11-16&Action=DescribeServiceInfo |
示例
&NamespaceId=345345&ServiceId=456546
参数 | 说明 | 类型 | 备注 |
NamespaceId | 空间id | long | 必选 |
ServiceId | 服务的id | long | 必选 |
示例
{
"Service": {
"ServiceId": 12345,
"ServiceName": "nce",
"NamespaceId": 345345,
"CreateAt": 253452334,
"UpdateAt": 345345345,
"PortMappings": [
{
"Port": 7070,
"TargetPort": 9090,
"Protocol": "TCP"
}
],
"Endpoint": {},
"Type": "ClusterIP",
"ClusterIP": "12.25.56.45",
"Selector": {}
]
}
}
参数 | 说明 | 类型 |
Service | 服务,参见service参数详细说明 | object |
Service参数详细说明:
参数 | 说明 | 类型 | 备注 |
ServiceId | 服务id | long | |
ServiceName | 服务名 | string | |
NamespaceId | 空间id | long | |
CreateAt | 创建时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
UpdateAt | 修改时间,毫秒 | String | ISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z') |
PortMappings | 端口映射,参见portMappings详细参数说明 | array | |
Endpoint | Endpoint | object | |
Type | 类型 | string | |
ClusterIP | | string | |
Selector | 标签选择器,按字典序排序 | object | |
VirtualPrivateCloud | 私有网络相关信息配置 ,如果创建时ClusterIP为None,则不返回该信息 | object | |
portMappings参数详细说明:
参数 | 说明 | 类型 | 备注 |
Port | 服务端口 | int | |
TargetPort | 容器端口 | int | |
Protocol | 协议TCP/UDP | string | |
endpoint参数详细说明:
参数 | 说明 | 类型 |
Name | Endpoint name | string |
EndpointId | EndpointId | long |
Subsets | Endpoint的Subset | array |
Subsets参数详细说明:
参数 | 说明 | 类型 |
Addresses | IP地址数组 | array |
Ports | 端口数组,1~65535 | array |
VirtualPrivateCloud对象格式为:
参数 | 类型 | 说明 |
VpcId | String | 私有网络Id |
SubnetId | String | 子网Id |
2.6 修改服务
METHOD | URL |
POST | /ncs?Version=2017-11-16&Action=ModifyService |
示例
{
"NamespaceId": 123456,
"ServiceId": 3453422,
"PortMappings": [
{
"Port": 2000,
"TargetPort": 3000,
"Protocol": "TCP"
},
{
"Port": 2500,
"TargetPort": 3500,
"Protocol": "UDP"
}
],
"Type": "ClusterIP",
"Selector": {"app": "tomcat"}
}
参数 | 说明 | 类型 | 备注 |
NamespaceId | 空间id | long | 必选 |
ServiceId | 服务id | long | 必选 |
PortMappings | 端口映射,参见portMappings详细参数说明。不传、传null或者传[]表示修改为空。当ClusterIP不为"None"时,不能修改为空 | array | 非必选 |
Type | 当前仅支持类型为ClusterIP,不填默认为ClusterIP | string | 非必选 |
Selector | 不传、传null或者传{}表示修改为空 label name & value的正则为:1-63字符,且需要以[a-z0-9A-Z]开头和结尾,中间可为[a-z0-9A-Z_-.]。value值可为空串。详细请参考官方文档:https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ | object | 非必选 |
portMappings参数详细说明
参数 | 说明 | 类型 | 备注 |
Port | 服务端口 1~65535 | int | 必选 |
TargetPort | 容器端口 1~65535 | int | 必选 |
Protocol | 协议TCP/UDP, 缺省TCP | string | 必选 |
示例
2.7 通过label查询pod
METHOD | URL |
POST | /ncs?Version=2017-11-16&Action=ListPods |
示例
{
"NamespaceId": 123456,
"LabelSelector":
{
"app": "nginx",
"env": "test"
},
"Limit": 3,
"Offset": 3
}
参数 | 说明 | 类型 | 备注 |
NamespaceId | 空间id | long | 必选 |
LabelSelector | 选择标签,通过该标签选择匹配的pod | map | 必选 |
Limit | 查询的个数限制,默认20 | int | 非必选 |
Offset | 查询的偏移量,默认0 | int | 非必选 |