Service 接口

1. 通用返回码说明

类型code说明
InternalServerErrorInternalServerError服务器内部错误
MissingParameterMissingParameter参数 %s 缺失
InvalidFormatInvalidFormat参数 %s 的格式非法
AlreadyExistAlreadyExist%s 已存在
CanNotFoundCanNotFound%s 不存在
OutOfBoundsOutOfBounds%s 超过限制
NoPermissionNoPermission无权限操作

2. 接口说明

2.1 创建Service

  • method && URL
METHODURL
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空间Idlong必选
Typek8s集群暴露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~65535int必选
TargetPort容器端口 1~65535int必选
Protocol协议TCP/UDPstring必选

VirtualPrivateCloud对象格式为:

参数类型说明备注
VpcIdString私有网络Id,具体可通过 VPC 接口获取
SubnetIdString子网Id,经典网络填写None
  • 返回

示例

{
"ServiceId":123456
}

参数说明类型
ServiceId服务 idlong

2.2 删除Service

  • method && URL
METHODURL
GET/ncs?Version=2017-11-16&Action=DeleteService

输入参数说明

示例

 &ServiceId=45678&NamespaceId=23456
参数说明类型备注
ServiceId服务idlong必选
NamespaceId空间Idlong必选
  • 返回

2.3 查询service列表

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

示例

&NamespaceId=23456&Limit=10&Offset=1020
参数说明类型备注
NamespaceId空间Idlong必选
Limit查询数量大于0整数,默认20int非必选
Offset列表偏移大等于0整数,默认0int非必选
  • 返回

示例

{
"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服务idlong
ServiceName服务名string
NamespaceId空间idlong
CreateAt创建时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAt修改时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
PortMappings端口映射,参见portMappings详细参数说明array
EndpointEndpointobject
Type类型string
Selectork8s中spec.selector,按字典序排序object
ClusterIPIP地址或者NoneString

portMappings参数详细说明:

参数说明类型
Port服务端口int
TargetPort容器端口int
Protocol协议TCP/UDPstring

endpoint参数详细说明:

参数说明类型
NameEndpoint namestring
EndpointIdEndpointIdlong
SubsetsEndpoint的Subset数组array

Subsets参数详细说明:

参数说明类型
AddressesIP地址数组array
Ports端口数组,1~65535array

VirtualPrivateCloud对象格式为:

参数类型说明
VpcIdString私有网络Id
SubnetIdString子网Id

2.4 查询所有空间下服务列表

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

示例

&Limit=10&Offset=1020
参数说明类型备注
Limit查询数量大于0整数,默认20int非必选
Offset列表偏移大等于0整数,默认0int非必选
Filters过滤条件,每次请求的Filters的上限为10,Filter.Values的上限为5filter 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服务idlong
ServiceName服务名string
NamespaceId空间idlong
CreateAt创建时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAt修改时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
PortMappings端口映射,参见portMappings详细参数说明array
EndpointEndpointobject
Type类型string
ClusterIPService的ClusterIPString
Selector标签选择器,按字典排序Object
VirtualPrivateCloud私有网络相关信息配置 ,如果创建时ClusterIP为None,则不返回该信息Object

portMappings参数详细说明:

参数说明类型
Port服务端口int
TargetPort容器端口int
Protocol协议TCP/UDPstring

Endpoint参数详细说明:

参数说明类型
AddressesIp地址数组array
Ports端口数组,1~65535array
EndpointIdEndpointIdlong
NameEndpoint namestring

VirtualPrivateCloud对象格式为:

参数类型说明
VpcIdString私有网络Id
SubnetIdString子网Id

2.5 查询服务详情

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

示例

&NamespaceId=345345&ServiceId=456546
参数说明类型备注
NamespaceId空间idlong必选
ServiceId服务的idlong必选
  • 返回

示例

{
"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服务idlong
ServiceName服务名string
NamespaceId空间idlong
CreateAt创建时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
UpdateAt修改时间,毫秒StringISO8601 (yyyy-MM-dd'T'HH:mm:ss'Z')
PortMappings端口映射,参见portMappings详细参数说明array
EndpointEndpointobject
Type类型string
ClusterIPstring
Selector标签选择器,按字典序排序object
VirtualPrivateCloud私有网络相关信息配置 ,如果创建时ClusterIP为None,则不返回该信息object

portMappings参数详细说明:

参数说明类型备注
Port服务端口int
TargetPort容器端口int
Protocol协议TCP/UDPstring

endpoint参数详细说明:

参数说明类型
NameEndpoint namestring
EndpointIdEndpointIdlong
SubsetsEndpoint的Subsetarray

Subsets参数详细说明:

参数说明类型
AddressesIP地址数组array
Ports端口数组,1~65535array

VirtualPrivateCloud对象格式为:

参数类型说明
VpcIdString私有网络Id
SubnetIdString子网Id

2.6 修改服务

  • method && URL
METHODURL
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空间idlong必选
ServiceId服务idlong必选
PortMappings端口映射,参见portMappings详细参数说明。不传、传null或者传[]表示修改为空。当ClusterIP不为"None"时,不能修改为空array非必选
Type当前仅支持类型为ClusterIP,不填默认为ClusterIPstring非必选
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~65535int必选
TargetPort容器端口 1~65535int必选
Protocol协议TCP/UDP, 缺省TCPstring必选
  • 返回

示例

2.7 通过label查询pod

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

示例

{
"NamespaceId": 123456,
"LabelSelector": 
{
    "app": "nginx",
    "env": "test"
},
"Limit": 3,
"Offset": 3
}
参数说明类型备注
NamespaceId空间idlong必选
LabelSelector选择标签,通过该标签选择匹配的podmap必选
Limit查询的个数限制,默认20int非必选
Offset查询的偏移量,默认0int非必选