接口URL:/csm/v1/open/servicemesh/detail
Content-Type:text/plain
请求方式:GET
URI参数说明:
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
service_mesh_id | e779bd8***** | String | 是 | 服务网格id |
请求体参数说明:
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
无请求参数KEY/VALUE类型 |
返回参数说明:
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
code | CSM_2000 | String | 错误码 |
message | SUCCESS | String | 错误提示信息 |
returnObj | Object | Object | API返回数据体,接口如果没有返回字段时也可能可能返回{}或[] |
statusCode | 2000 | Integer | 调用错误时返回的错误编码 |
表returnObj
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
endPoints | array | Array[EndPoint] | 集群列表 |
meshInfo | object | ServiceMeshInfo | 服务网格信息 |
meshSpec | object | ServiceMeshSpec | 服务网格明细信息 |
表ServiceMeshInfo
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
clusterType | String | String | 实例类型ENTERPRISE企业版BASE基础版 |
createdTime | String | String | 创建时间 |
name | String | String | 服务网格名称 |
regionCode | String | String | 资源池编码 |
regionName | String | String | 资源池名称 |
serviceMeshId | String | String | 服务网格id |
status | String | String | 服务网格状态(状态 运行中、未就绪) |
version | String | String | 服务网格版本 |
表ServiceMeshSpec
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
clusters | Arrary | Arrary[SimpleCluster] | 实例类型ENTERPRISE企业版BASE基础版 |
meshConfig | Object | APIMeshConfig | 服务网格配置 |
network | Object | Network | 服务网格的网络信息 |
表SimpleCluster
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
clusterId | String | String | 集群id |
clusterName | String | String | 集群名 |
表APIMeshConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
accessLogSettings | Arrary | Arrary[AccessLogSetting] | 访问日志的配置,包括控制面和数据面的开关和日志项目 |
injectorConfig | Object | InjectorConfig | sidecar注入相关的配置 |
istioConfig | Object | IstioConfig | istio相关的配置,一般配置在istio的configMap |
monitorSetting | Object | MonitorSetting | 监控配置 |
opa | Object | OPASetting | opa配置 |
表AccessLogSetting
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
enabled | true | Boolean | 是否启用访问日志 |
project | istiod-accesslog-xxxxx | String | 访问日志项目名称 |
type | data-panel | String | 配置类型。取值data-panel:数据面 control-panel:控制面 |
表 InjectorConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
cniConfig | Object | CNIConfig | CNI配置 |
globalConfig | Object | GlobalConfig | 全局配置 |
sidecarInjectorWebhook | Object | SidecarInjectorConfig | 自动注入配置 |
表CNIConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
enabled | Boolean | Boolean | 是否启用CNI |
excludeNamespaces | Arrary | Arrary[string] | 排除的命名空间 |
表GlobalConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
proxyConfig | Object | ProxyConfig | sidecar容器配置 |
proxyInitConfig | Object | ProxyInitConfig | istio-init初始化容器配置 |
表ProxyConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
clusterDomain | cluster.domain | String | 信任域 |
enableCoreDump | false | Boolean | 是否开启coredump |
excludeIPRanges | 127.0.0.1 | String | 不拦截指定IP范围,多个IP用逗号分隔 |
excludeInboundPorts | 80,8080 | String | 不拦截指定Inbound端口,多个端口用逗号分隔 |
excludeOutboundPorts | 80,8080 | String | 不拦截指定Outbound端口 |
includeIPRanges | 192.168.0.0/16 | String | 包含的IP地址段 |
includeInboundPorts | 443 | String | 包含的Inbound端口 |
includeOutboundPorts | 443 | String | 包含的Outbound端口 |
logLevel | info | String | 日志等级,如果不设置则为warning。可取值为:trace,debug,info,warning,error,critical,off |
resourceCPULimit | 20m | String | sidecar容器的cpu限制 |
resourceCPURequest | 200Mi | String | sidecar容器的cpu所需 |
resourceMemoryLimit | 10m | String | sidecar容器的内存限制 |
resourceMemoryRequest | 100Mi | String | sidecar容器的内存所需 |
表ProxyInitConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
resourceCPULimit | 20m | String | init容器的cpu限制 |
resourceCPURequest | 10m | String | init容器的cpu所需 |
resourceMemoryLimit | 200Mi | String | init容器的内存限制 |
resourceMemoryRequest | 100Mi | String | init容器的内存所需 |
表SidecarInjectorConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
alwaysInjectSelector | Arrary | Arrary | 标签选择列表 |
defaultTemplates | Arrary | Arrary | 默认sidecar配置 |
enableNamespacesByDefault | false | Boolean | 是否在没有启用istio-injection标签的命名空间注入sidecar |
injectedAnnotations | Object | Object | 注入sidecar后添加到pod元数据的注解 |
injectionURL | String | String | webhook服务器的URL |
neverInjectSelector | Arrary | Arrary | 指定哪些pod不注入sidecar |
objectSelector | Object | Object | Object的选择器 |
rewriteAppHTTPProbe | false | Boolean | 是否重写HTTP探针 |
templates | Object | Object | sidecar的配置模板 |
useLegacySelectors | false | Boolean | 是否使用旧标签选择器匹配Pod |
表IstioConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
accessLogEncoding | TEXT | String | 访问日志的编码,目前支持TEXT和JSON |
accessLogFile | /dev/stdout | String | 访问日志的路径 |
accessLogFormat | [%START_TIME%]"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %RESPONSE_FLAGS% %RESPONSE_CODE_DETAILS% %CONNECTION_TERMINATION_DETAILS%"%UPSTREAM_TRANSPORT_FAILURE_REASON%" %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%" "%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" %UPSTREAM_CLUSTER% %UPSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_REMOTE_ADDRESS% %REQUESTED_SERVER_NAME% %ROUTE_NAME%\n | String | 访问日志的格式 |
defaultConfig | Object | DefaultConfig | istio默认配置 |
outboundTrafficPolicy | ALLOW_ANY | String | 出向流量策略。取值:ALLOW_ANY:允许访问所有外部服务。REGISTRY_ONLY:只能访问注册到网格内的服务。 |
telemetry | false | Boolean | 是否开启采集Prometheus监控指标 |
表DefaultConfig
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
concurrency | 2 | Integer | 工作线程数 |
enableDnsCapture | false | Boolean | 是否开启istio内置dns |
holdApplicationUntilProxyStarts | true | Boolean | 应用程序启动前是否等待istio-proxy启动完成 |
interceptionMode | REDIRECT | String | Sidecar对入向流量的拦截策略,REDIRECT:默认的拦截策略,Sidecar将使用重定向方式拦截入向流量。TPROXY:透明代理拦截策略,Sidecar将以透明代理的方式拦截入向流量。NONE:不拦截流量 |
proxyMetadata | Object | map[string]string | 环境变量 |
terminationDrainDuration | 5s | String | Istio Proxy终止等待时长 |
表MonitorSetting
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
enableMetrics | true | Boolean | 是否开启监控指标 |
traceSampling | 1 | Integer | trace采样率[0-100] |
表opa
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
enabled | true | Boolean | 是否开启OPA注入 |
logLevel | error | String | OPA代理容器日志级别 |
表Network
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
SecurityGroupId | Arrary | Arrary | 安全组ID |
vpcId | Object | Object | 专有网络ID |
表EndPoint
参数名 | 示例值 | 参数类型 | 参数描述 |
---|---|---|---|
IntranetPilotEndpoint | 192.168.xx.xx:15012 | String | Istio Pilot地址(内网) |
IntranetApiServerEndpoint | https://192.168.xx.xx:6443 | String | API Server地址(内网) |
返回示例:成功
{
"code": "CSM_2000",
"message": "SUCCESS",
"returnObj": {
"endPoints": [
{
"intranetApiServerEndpoint": "https://192.168.xx.xx:6443",
"intranetPilotEndpoint": "192.168.xx.xx:15012"
}
],
"meshInfo": {
"clusterType": "ENTERPRISE",
"createdTime": "2023-07-18T10:21:20+08:00",
"name": "Name",
"regionCode": "d8bbd132b5****",
"regionName": "内蒙6",
"serviceMeshId": "e779bd8*****",
"status": "READY",
"version": "1.16"
},
"meshSpec": {
"clusters": [
{
"clusterId": "efdsafe*****",
"clusterName": "ccse-*****"
}
],
"meshConfig": {
"accessLogSettings": [
{
"enabled": true,
"project": "istiod-accesslog-xxxxx",
"type": "data-planel"
}
],
"injectorConfig": {
"cniConfig": {
"enabled": false,
"excludeNamespaces": [
"kube-system",
"istio-system"
]
},
"globalConfig": {
"proxyConfig": {
"clusterDomain": "cluster.domain",
"enableCoreDump": false,
"excludeIPRanges": "127.0.0.1",
"excludeInboundPorts": "80,8080",
"excludeOutboundPorts": "80,8080",
"includeIPRanges": "192.168.0.0/16",
"includeInboundPorts": "443",
"includeOutboundPorts": "443",
"logLevel": "trace",
"resourceCPULimit": "20m",
"resourceCPURequest": "10m",
"resourceMemoryLimit": "200Mi",
"resourceMemoryRequest": "100Mi"
},
"proxyInitConfig": {
"resourceCPULimit": "20m",
"resourceCPURequest": "10m",
"resourceMemoryLimit": "200Mi",
"resourceMemoryRequest": "100Mi"
}
},
"sidecarInjectorWebhook": {
"alwaysInjectSelector": [
{
"fields": {
"property1": {
"kind": {}
},
"property2": {
"kind": {}
}
}
}
],
"defaultTemplates": [
"string"
],
"enableNamespacesByDefault": {
"value": true
},
"injectedAnnotations": {
"fields": {
"property1": {
"kind": {}
},
"property2": {
"kind": {}
}
}
},
"injectionURL": "string",
"neverInjectSelector": [
{
"fields": {
"property1": {
"kind": {}
},
"property2": {
"kind": {}
}
}
}
],
"objectSelector": {
"fields": {
"property1": {
"kind": {}
},
"property2": {
"kind": {}
}
}
},
"rewriteAppHTTPProbe": {
"value": true
},
"templates": {
"fields": {
"property1": {
"kind": {}
},
"property2": {
"kind": {}
}
}
},
"useLegacySelectors": {
"value": true
}
}
},
"istioConfig": {
"accessLogEncoding": "TEXT",
"accessLogFile": "/dev/stdout",
"accessLogFormat": "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %RESPONSE_CODE_DETAILS% %CONNECTION_TERMINATION_DETAILS%\"%UPSTREAM_TRANSPORT_FAILURE_REASON%\" %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\" %UPSTREAM_CLUSTER% %UPSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_REMOTE_ADDRESS% %REQUESTED_SERVER_NAME% %ROUTE_NAME%\n",
"defaultConfig": {
"concurrency": 2,
"enableDnsCapture": false,
"holdApplicationUntilProxyStarts": true,
"interceptionMode": "REDIRECT",
"proxyMetadata": {
"ISTIO_META_DNS_AUTO_ALLOCATE": "true",
"ISTIO_META_DNS_CAPTURE": "true"
},
"terminationDrainDuration": "5s"
},
"outboundTrafficPolicy": "ALLOW_ANY",
"telemetry": true
},
"monitorSetting": {
"enableMetrics": true,
"traceSampling": 1
},
"opa": {
"enabled": true,
"logLevel": "error"
}
},
"network": {
"SecurityGroupId": "cg-****",
"vpcId": "vpc-****"
}
}
},
"statusCode": 2000
}
返回示例:失败(详见接口失败示例章节)