功能介紹
該API用于獲取指定項目下所有集群的詳細信息。
調(diào)用方法
請參見如何調(diào)用API。
URI
GET /api/v3/projects/{project_id}/clusters
|
參數(shù) |
是否必選 |
參數(shù)類型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
項目ID,獲取方式請參見如何獲取接口URI中參數(shù)。 |
|
參數(shù) |
是否必選 |
參數(shù)類型 |
描述 |
|---|---|---|---|
|
detail |
否 |
String |
查詢集群詳細信息。 若設(shè)置為true,獲取集群下節(jié)點總數(shù)(totalNodesNumber)、正常節(jié)點數(shù)(activeNodesNumber)、CPU總量(totalNodesCPU)、內(nèi)存總量(totalNodesMemory)、已安裝插件列表(installedAddonInstances),已安裝插件列表中包含名稱(addonTemplateName)、版本號(version)、插件的狀態(tài)信息(status),放入到annotation中。 |
|
status |
否 |
String |
集群狀態(tài),取值如下
|
|
type |
否 |
String |
集群類型:
|
|
version |
否 |
String |
集群版本過濾 |
請求參數(shù)
|
參數(shù) |
是否必選 |
參數(shù)類型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
消息體的類型(格式) |
|
X-Auth-Token |
是 |
String |
調(diào)用接口的認證方式分為Token和AK/SK兩種,如果您使用的Token方式,此參數(shù)為必填,請?zhí)顚慣oken的值,獲取方式請參見獲取token。 |
響應(yīng)參數(shù)
狀態(tài)碼: 200
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
kind |
String |
Api type |
|
apiVersion |
String |
API version |
|
items |
集群對象列表,包含了當前項目下所有集群的詳細信息。您可通過items.metadata.name下的值來找到對應(yīng)的集群。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
kind |
String |
API類型,固定值“Cluster”或“cluster”,該值不可修改。 |
|
apiVersion |
String |
API版本,固定值“v3”,該值不可修改。 |
|
metadata |
集群的基本信息,為集合類的元素類型,包含一組由不同名稱定義的屬性。 |
|
|
spec |
spec是集合類的元素類型,您對需要管理的集群對象進行詳細描述的主體部分都在spec中給出。CCE通過spec的描述來創(chuàng)建或更新對象。 |
|
|
status |
集合類的元素類型,用于記錄對象在系統(tǒng)中的當前狀態(tài)信息,包含了集群狀態(tài)和本次創(chuàng)建集群作業(yè)的jobID |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
name |
String |
集群名稱。 命名規(guī)則:以小寫字母開頭,由小寫字母、數(shù)字、中劃線(-)組成,長度范圍4-128位,且不能以中劃線(-)結(jié)尾。 |
|
uid |
String |
集群ID,資源唯一標識,創(chuàng)建成功后自動生成,填寫無效。 |
|
alias |
String |
集群顯示名,用于在 CCE 界面顯示,該名稱創(chuàng)建后可修改。 命名規(guī)則:以小寫字母開頭,由小寫字母、數(shù)字、中劃線(-)組成,長度范圍4-128位,且不能以中劃線(-)結(jié)尾。 顯示名和其他集群的名稱、顯示名不可以重復。 在創(chuàng)建集群、更新集群請求體中,集群顯示名alias未指定或取值為空,表示與集群名稱name一致。在查詢集群等響應(yīng)體中,集群顯示名alias將必然返回,未配置時將返回集群名稱name。 |
|
annotations |
Map<String,String> |
集群注解,由key/value組成: "annotations": {
"key1" : "value1",
"key2" : "value2"
}
說明:
|
|
labels |
Map<String,String> |
集群標簽,key/value對格式。 說明:
該字段值由系統(tǒng)自動生成,用于升級時前端識別集群支持的特性開關(guān),用戶指定無效。 |
|
creationTimestamp |
String |
集群創(chuàng)建時間 |
|
updateTimestamp |
String |
集群更新時間 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
category |
String |
集群類別:
|
|
type |
String |
集群Master節(jié)點架構(gòu):
|
|
flavor |
String |
字段默認值:創(chuàng)建CCE集群或鯤鵬集群時,如果是非專屬云為cce.s1.small,專屬云則為cce.dec.s1.small; 集群規(guī)格,集群創(chuàng)建完成后規(guī)格不可再變更,請按實際業(yè)務(wù)需求進行選擇:
說明:
|
|
version |
String |
集群版本,與Kubernetes社區(qū)基線版本保持一致,建議選擇最新版本。 在CCE控制臺支持創(chuàng)建兩種最新版本的集群??傻卿汣CE控制臺創(chuàng)建集群,在“版本”處獲取到集群版本。 其它集群版本,當前仍可通過api創(chuàng)建,但后續(xù)會逐漸下線,具體下線策略請關(guān)注CCE官方公告。 說明:
|
|
platformVersion |
String |
CCE集群平臺版本號,表示集群版本(version)下的內(nèi)部版本。用于跟蹤某一集群版本內(nèi)的迭代,集群版本內(nèi)唯一,跨集群版本重新計數(shù)。不支持用戶指定,集群創(chuàng)建時自動選擇對應(yīng)集群版本的最新平臺版本。 platformVersion格式為:cce.X.Y
|
|
description |
String |
集群描述,對于集群使用目的的描述,可根據(jù)實際情況自定義,默認為空。集群創(chuàng)建成功后可通過接口更新指定的集群來做出修改,也可在CCE控制臺中對應(yīng)集群的“集群詳情”下的“描述”處進行修改。僅支持utf-8編碼。 |
|
customSan |
Array of strings |
集群的API Server服務(wù)端證書中的自定義SAN(Subject Alternative Name)字段,遵從SSL標準X509定義的格式規(guī)范。
示例: SAN 1: DNS Name=example.com
SAN 2: DNS Name=www.example.com
SAN 3: DNS Name=example.net
SAN 4: IP Address=93.184.216.34
|
|
ipv6enable |
Boolean |
集群是否使用IPv6模式,1.15版本及以上支持。 |
|
hostNetwork |
節(jié)點網(wǎng)絡(luò)參數(shù),包含了 虛擬私有云VPC 和子網(wǎng)的ID信息,而VPC是集群內(nèi)節(jié)點之間的通信依賴,所以是必選的參數(shù)集。 |
|
|
containerNetwork |
容器網(wǎng)絡(luò)參數(shù),包含了容器網(wǎng)絡(luò)類型和容器網(wǎng)段的信息。 |
|
|
eniNetwork |
云原生網(wǎng)絡(luò)2.0網(wǎng)絡(luò)配置,創(chuàng)建CCE Turbo集群時指定。 |
|
|
serviceNetwork |
服務(wù)網(wǎng)段參數(shù),包含IPv4 CIDR。 |
|
|
authentication |
集群認證方式相關(guān)配置。 |
|
|
billingMode |
Integer |
集群的計費方式。
默認為“按需計費”。 |
|
masters |
控制節(jié)點的高級配置 |
|
|
kubernetesSvcIpRange |
String |
服務(wù)網(wǎng)段參數(shù),kubernetes clusterIP取值范圍,1.11.7版本及以上支持。創(chuàng)建集群時如若未傳參,默認為"10.247.0.0/16"。該參數(shù)廢棄中,推薦使用新字段serviceNetwork,包含IPv4服務(wù)網(wǎng)段。 |
|
clusterTags |
集群資源標簽 |
|
|
kubeProxyMode |
String |
服務(wù)轉(zhuǎn)發(fā)模式,支持以下兩種實現(xiàn):
|
|
az |
String |
可用區(qū)(僅查詢返回字段)。 CCE支持的可用區(qū)請參考地區(qū)和終端節(jié)點 |
|
extendParam |
集群擴展字段,可配置多可用區(qū)集群、專屬CCE集群,以及將集群創(chuàng)建在特定的企業(yè)項目下等。 |
|
|
supportIstio |
Boolean |
支持Istio |
|
configurationsOverride |
覆蓋集群默認組件配置 若指定了不支持的組件或組件不支持的參數(shù),該配置項將被忽略。 當前支持的可配置組件及其參數(shù)詳見 配置管理 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
vpc |
String |
用于創(chuàng)建控制節(jié)點的VPC的ID。 獲取方法如下: 說明:
當前vpc-router容器網(wǎng)絡(luò)模型不支持對接含拓展網(wǎng)段的VPC。 |
|
subnet |
String |
用于創(chuàng)建控制節(jié)點的subnet的網(wǎng)絡(luò)ID。獲取方法如下:
|
|
SecurityGroup |
String |
集群默認的Node節(jié)點安全組ID,不指定該字段系統(tǒng)將自動為用戶創(chuàng)建默認Node節(jié)點安全組,指定該字段時集群將綁定指定的安全組。Node節(jié)點安全組需要放通部分端口來保證正常通信。詳細設(shè)置請參考集群安全組規(guī)則配置。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
mode |
String |
容器網(wǎng)絡(luò)類型(只可選擇其一)
|
|
cidr |
String |
容器網(wǎng)絡(luò)網(wǎng)段,建議使用網(wǎng)段10.0.0.0/12~19,172.16.0.0/16~19,192.168.0.0/16~19,如存在網(wǎng)段沖突,將會報錯。 此參數(shù)在集群創(chuàng)建后不可更改,請謹慎選擇。(已廢棄,如填寫cidrs將忽略該cidr) |
|
cidrs |
容器網(wǎng)絡(luò)網(wǎng)段列表。1.21及新版本集群使用cidrs字段,當集群網(wǎng)絡(luò)類型為vpc-router類型時,支持多個容器網(wǎng)段;1.21之前版本若使用cidrs字段,則取值cidrs數(shù)組中的第一個cidr元素作為容器網(wǎng)絡(luò)網(wǎng)段地址。 此參數(shù)在集群創(chuàng)建后不可更改,請謹慎選擇。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
cidr |
String |
容器網(wǎng)絡(luò)網(wǎng)段,建議使用網(wǎng)段10.0.0.0/12~19,172.16.0.0/16~19,192.168.0.0/16~19。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
eniSubnetId |
String |
ENI所在子網(wǎng)的IPv4子網(wǎng)ID(暫不支持IPv6,廢棄中)。獲取方法如下:
|
|
eniSubnetCIDR |
String |
ENI子網(wǎng)CIDR(廢棄中) |
|
subnets |
IPv4子網(wǎng)ID列表 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
subnetID |
String |
用于創(chuàng)建控制節(jié)點的subnet的IPv4子網(wǎng)ID(暫不支持IPv6)。獲取方法如下:
|
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
IPv4CIDR |
String |
kubernetes clusterIP IPv4 CIDR取值范圍。創(chuàng)建集群時若未傳參,默認為"10.247.0.0/16"。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
mode |
String |
集群認證模式。
|
|
authenticatingProxy |
authenticatingProxy模式相關(guān)配置。認證模式為authenticating_proxy時必選。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
ca |
String |
authenticating_proxy模式配置的x509格式CA證書(base64編碼)。當集群認證模式為authenticating_proxy時,此項必須填寫。 最大長度:1M |
|
cert |
String |
authenticating_proxy模式配置的x509格式CA證書簽發(fā)的客戶端證書,用于kube-apiserver到擴展apiserver的認證。(base64編碼)。當集群認證模式為authenticating_proxy時,此項必須填寫。 |
|
privateKey |
String |
authenticating_proxy模式配置的x509格式CA證書簽發(fā)的客戶端證書時對應(yīng)的私鑰,用于kube-apiserver到擴展apiserver的認證。Kubernetes集群使用的私鑰尚不支持密碼加密,請使用未加密的私鑰。(base64編碼)。當集群認證模式為authenticating_proxy時,此項必須填寫。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
key |
String |
Key值。
|
|
value |
String |
Value值。
|
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
clusterAZ |
String |
集群控制節(jié)點可用區(qū)配置。 CCE支持的可用區(qū)請參考地區(qū)和終端節(jié)點
|
|
dssMasterVolumes |
String |
用于指定控制節(jié)點的系統(tǒng)盤和數(shù)據(jù)盤使用 專屬分布式存儲 ,未指定或者值為空時,默認使用EVS 云硬盤 。 如果配置專屬CCE集群,該字段為必選,請按照如下格式設(shè)置: <rootVol.dssPoolID>.<rootVol.volType>;<dataVol.dssPoolID>.<dataVol.volType>
字段說明:
樣例:c950ee97-587c-4f24-8a74-3367e3da570f.sas;6edbc2f4-1507-44f8-ac0d-eed1d2608d38.ssd 說明:
非專屬CCE集群不支持配置該字段。 |
|
enterpriseProjectId |
String |
集群所屬的企業(yè)項目ID。 說明:
|
|
kubeProxyMode |
String |
服務(wù)轉(zhuǎn)發(fā)模式,支持以下兩種實現(xiàn):
說明:
此參數(shù)已廢棄,若同時指定此參數(shù)和ClusterSpec下的kubeProxyMode,以ClusterSpec下的為準。 |
|
clusterExternalIP |
String |
master 彈性公網(wǎng)IP |
|
alpha.cce/fixPoolMask |
String |
容器網(wǎng)絡(luò)固定IP池掩碼位數(shù),僅vpc-router網(wǎng)絡(luò)支持。 該參數(shù)決定節(jié)點可分配容器IP數(shù)量,與創(chuàng)建節(jié)點時設(shè)置的maxPods參數(shù)共同決定節(jié)點最多可以創(chuàng)建多少個Pod, 具體請參見節(jié)點最多可以創(chuàng)建多少Pod。 整數(shù)字符傳取值范圍: 24 ~ 28 |
|
decMasterFlavor |
String |
專屬CCE集群指定可控制節(jié)點的規(guī)格。 |
|
dockerUmaskMode |
String |
集群默認Docker的UmaskMode配置,可取值為secure或normal,不指定時默認為normal。 |
|
kubernetes.io/cpuManagerPolicy |
String |
集群CPU管理策略。取值為none(或空值)或static,默認為none(或空值)。
|
|
orderID |
String |
訂單ID,集群付費類型為自動付費包周期類型時,響應(yīng)中會返回此字段(僅創(chuàng)建場景涉及)。 |
|
periodType |
String |
說明:
作為請求參數(shù),billingMode為1(包周期)時生效,且為必選。 作為響應(yīng)參數(shù),僅在創(chuàng)建包周期集群時返回。 |
|
periodNum |
Integer |
訂購周期數(shù),取值范圍:
說明:
作為請求參數(shù),billingMode為1時生效,且為必選。 作為響應(yīng)參數(shù),僅在創(chuàng)建包周期集群時返回。 |
|
isAutoRenew |
String |
是否自動續(xù)訂
說明:
billingMode為1時生效,不填寫此參數(shù)時默認不會自動續(xù)費。 |
|
isAutoPay |
String |
是否自動扣款
說明:
billingMode為1時生效,不填寫此參數(shù)時默認不會自動扣款。 |
|
upgradefrom |
String |
記錄集群通過何種升級方式升級到當前版本。 |
|
參數(shù) |
參數(shù)類型 |
描述 |
|---|---|---|
|
phase |
String |
集群狀態(tài),取值如下
|
|
jobID |
String |
任務(wù)ID,集群當前狀態(tài)關(guān)聯(lián)的任務(wù)ID。當前支持:
說明:
任務(wù)信息具有一定時效性,僅用于短期跟蹤任務(wù)進度,請勿用于集群狀態(tài)判斷等額外場景。 |
|
reason |
String |
集群變?yōu)楫斍盃顟B(tài)的原因,在集群在非“Available”狀態(tài)下時,會返回此參數(shù)。 |
|
message |
String |
集群變?yōu)楫斍盃顟B(tài)的原因的詳細信息,在集群在非“Available”狀態(tài)下時,會返回此參數(shù)。 |
|
endpoints |
集群中 kube-apiserver 的訪問地址。 |
|
|
isLocked |
Boolean |
CBC資源鎖定 |
|
lockScene |
String |
CBC資源鎖定場景 |
|
lockSource |
String |
鎖定資源 |
|
lockSourceId |
String |
鎖定的資源ID |
|
deleteOption |
Object |
刪除配置狀態(tài)(僅刪除請求響應(yīng)包含) |
|
deleteStatus |
Object |
刪除狀態(tài)信息(僅刪除請求響應(yīng)包含) |
請求示例
無
響應(yīng)示例
狀態(tài)碼: 200
表示獲取集群列表成功。
{
"kind" : "Cluster",
"apiVersion" : "v3",
"items" : [ {
"kind" : "Cluster",
"apiVersion" : "v3",
"metadata" : {
"alias" : "mycluster",
"name" : "mycluster",
"uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
"creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC",
"updateTimestamp" : "2018-08-02 04:05:29.386391813 +0000 UTC"
},
"spec" : {
"type" : "VirtualMachine",
"flavor" : "cce.s1.small",
"version" : "v1.7.3-r13",
"description" : "awesome cluster",
"customSan" : [ "192.168.1.0", "example.com" ],
"hostNetwork" : {
"vpc" : "f0c12911-4fdb-4284-9230-7ffb0860826a",
"subnet" : "ac274229-fd2e-4695-9f01-a0c1372b8006"
},
"containerNetwork" : {
"mode" : "overlay_l2",
"cidr" : "172.16.0.0/16"
},
"authentication" : {
"mode" : "x509",
"authenticatingProxy" : { }
},
"billingMode" : 0
},
"status" : {
"phase" : "Available",
"endpoints" : [ {
"url" : "https://192.168.0.11:5443",
"type" : "Internal"
} ]
}
} ]
}
SDK代碼示例
SDK代碼示例如下。
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cce.v3.region.CceRegion;
import com.huaweicloud.sdk.cce.v3.*;
import com.huaweicloud.sdk.cce.v3.model.*;
public class ListClustersSolution {
public static void main(String[] args) {
String ak = "<YOUR AK>";
String sk = "<YOUR SK>";
String projectId = "<project_id>";
ICredential auth = new BasicCredentials()
.withProjectId(projectId)
.withAk(ak)
.withSk(sk);
CceClient client = CceClient.newBuilder()
.withCredential(auth)
.withRegion(CceRegion.valueOf("cn-north-4"))
.build();
ListClustersRequest request = new ListClustersRequest();
try {
ListClustersResponse response = client.listClusters(request);
System.out.println(response.toString());
} catch (ConnectionException e) {
e.printStackTrace();
} catch (RequestTimeoutException e) {
e.printStackTrace();
} catch (ServiceResponseException e) {
e.printStackTrace();
System.out.println(e.getHttpStatusCode());
System.out.println(e.getRequestId());
System.out.println(e.getErrorCode());
System.out.println(e.getErrorMsg());
}
}
}
# coding: utf-8
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcce.v3.region.cce_region import CceRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcce.v3 import *
if __name__ == "__main__":
ak = "<YOUR AK>"
sk = "<YOUR SK>"
projectId = "<project_id>"
credentials = BasicCredentials(ak, sk, projectId) \
client = CceClient.new_builder() \
.with_credentials(credentials) \
.with_region(CceRegion.value_of("cn-north-4")) \
.build()
try:
request = ListClustersRequest()
response = client.list_clusters(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model"
region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region"
)
func main() {
ak := "<YOUR AK>"
sk := "<YOUR SK>"
projectId := "<project_id>"
auth := basic.NewCredentialsBuilder().
WithAk(ak).
WithSk(sk).
WithProjectId(projectId).
Build()
client := cce.NewCceClient(
cce.CceClientBuilder().
WithRegion(region.ValueOf("cn-north-4")).
WithCredential(auth).
Build())
request := &model.ListClustersRequest{}
response, err := client.ListClusters(request)
if err == nil {
fmt.Printf("%+v\n", response)
} else {
fmt.Println(err)
}
}
更多編程語言的SDK代碼示例,請參見API Explorer的代碼示例頁簽,可生成自動對應(yīng)的SDK代碼示例。
狀態(tài)碼
|
狀態(tài)碼 |
描述 |
|---|---|
|
200 |
表示獲取集群列表成功。 |
錯誤碼
請參見錯誤碼。
