華為云計(jì)算 云知識(shí) 更新指定的集群UpdateCluster
更新指定的集群UpdateCluster

 

功能介紹

該API用于更新指定的集群。

集群管理的URL格式為:https://Endpoint/uri。其中uri為資源路徑,也即API訪問(wèn)的路徑。

調(diào)用方法

請(qǐng)參見如何調(diào)用API。

URI

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

項(xiàng)目ID,獲取方式請(qǐng)參見如何獲取接口URI中參數(shù)。

cluster_id

String

集群ID,獲取方式請(qǐng)參見如何獲取接口URI中參數(shù)。

請(qǐng)求參數(shù)

表2 請(qǐng)求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

Content-Type

String

消息體的類型(格式)

X-Auth-Token

String

調(diào)用接口的認(rèn)證方式分為Token和AK/SK兩種,如果您使用的Token方式,此參數(shù)為必填,請(qǐng)?zhí)顚慣oken的值,獲取方式請(qǐng)參見獲取token。

表3 請(qǐng)求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

spec

ClusterInformationSpec object

具體集群參數(shù)

metadata

ClusterMetadataForUpdate object

集群基本信息,包含與名稱相關(guān)的字段

表4 ClusterInformationSpec

參數(shù)

是否必選

參數(shù)類型

描述

description

String

集群的描述信息。

  1. 字符取值范圍[0,200]。不包含~$%^&*<>[]{}()'"#\等特殊字符。

  2. 僅運(yùn)行和擴(kuò)容狀態(tài)(Available、ScalingUp、ScalingDown)的集群允許修改。

customSan

Array of strings

集群的API Server服務(wù)端證書中的自定義SAN(Subject Alternative Name)字段,遵從SSL標(biāo)準(zhǔn)X509定義的格式規(guī)范。

  1. 不允許出現(xiàn)同名重復(fù)。

  2. 格式符合IP和域名格式。

示例:

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

containerNetwork

ContainerNetworkUpdate object

容器網(wǎng)絡(luò)參數(shù),包含容器網(wǎng)段的信息。

eniNetwork

EniNetworkUpdate object

云原生 網(wǎng)絡(luò)2.0網(wǎng)絡(luò)配置,包含CCE Turbo集群的容器子網(wǎng)信息。

hostNetwork

hostNetwork object

節(jié)點(diǎn)網(wǎng)絡(luò)參數(shù),包含了Node節(jié)點(diǎn)默認(rèn)安群組設(shè)置

表5 ContainerNetworkUpdate

參數(shù)

是否必選

參數(shù)類型

描述

cidrs

Array of ContainerCIDR objects

容器網(wǎng)絡(luò)網(wǎng)段列表。1.21及新版本集群,當(dāng)集群網(wǎng)絡(luò)類型為vpc-router時(shí),支持增量添加容器網(wǎng)段。

此參數(shù)在集群更新后不可更改,請(qǐng)謹(jǐn)慎選擇。

表6 ContainerCIDR

參數(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。

表7 EniNetworkUpdate

參數(shù)

是否必選

參數(shù)類型

描述

subnets

Array of NetworkSubnet objects

IPv4子網(wǎng)ID列表。1.19.10及以上版本的CCE Turbo集群支持多容器子網(wǎng),同時(shí)支持增量更新容器子網(wǎng)列表。 只允許新增子網(wǎng),不可刪除已有子網(wǎng),請(qǐng)謹(jǐn)慎選擇。

請(qǐng)求體中需包含所有已經(jīng)存在的subnet。

表8 NetworkSubnet

參數(shù)

是否必選

參數(shù)類型

描述

subnetID

String

用于創(chuàng)建控制節(jié)點(diǎn)的subnet的IPv4子網(wǎng)ID(暫不支持IPv6)。獲取方法如下:

  • 方法1:登錄 虛擬私有云 服務(wù)的控制臺(tái)界面,單擊VPC下的子網(wǎng),進(jìn)入子網(wǎng)詳情頁(yè)面,查找IPv4子網(wǎng)ID。

  • 方法2:通過(guò)虛擬 私有云 服務(wù)的查詢子網(wǎng)列表接口查詢。 鏈接請(qǐng)參見查詢子網(wǎng)列表

表9 hostNetwork

參數(shù)

是否必選

參數(shù)類型

描述

SecurityGroup

String

集群默認(rèn)Node節(jié)點(diǎn)安全組需要放通部分端口來(lái)保證正常通信,詳細(xì)設(shè)置請(qǐng)參考集群安全組規(guī)則配置。 修改后的安全組只作用于新創(chuàng)建的節(jié)點(diǎn)和新納管的節(jié)點(diǎn),存量節(jié)點(diǎn)的安全組需手動(dòng)修改。

表10 ClusterMetadataForUpdate

參數(shù)

是否必選

參數(shù)類型

描述

alias

String

集群顯示名。

命名規(guī)則:以小寫字母開頭,由小寫字母、數(shù)字、中劃線(-)組成,長(zhǎng)度范圍4-128位,且不能以中劃線(-)結(jié)尾。

顯示名和其他集群的名稱、顯示名不可以重復(fù)。

為空時(shí)表示不進(jìn)行修改。

響應(yīng)參數(shù)

狀態(tài)碼: 200

表11 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

kind

String

API類型,固定值“Cluster”或“cluster”,該值不可修改。

apiVersion

String

API版本,固定值“v3”,該值不可修改。

metadata

ClusterMetadata object

集群的基本信息,為集合類的元素類型,包含一組由不同名稱定義的屬性。

spec

ClusterSpec object

spec是集合類的元素類型,您對(duì)需要管理的集群對(duì)象進(jìn)行詳細(xì)描述的主體部分都在spec中給出。CCE通過(guò)spec的描述來(lái)創(chuàng)建或更新對(duì)象。

status

ClusterStatus object

集合類的元素類型,用于記錄對(duì)象在系統(tǒng)中的當(dāng)前狀態(tài)信息,包含了集群狀態(tài)和本次創(chuàng)建集群作業(yè)的jobID

表12 ClusterMetadata

參數(shù)

參數(shù)類型

描述

name

String

集群名稱。

命名規(guī)則:以小寫字母開頭,由小寫字母、數(shù)字、中劃線(-)組成,長(zhǎng)度范圍4-128位,且不能以中劃線(-)結(jié)尾。

uid

String

集群ID,資源唯一標(biāo)識(shí),創(chuàng)建成功后自動(dòng)生成,填寫無(wú)效。

alias

String

集群顯示名,用于在 CCE 界面顯示,該名稱創(chuàng)建后可修改。

命名規(guī)則:以小寫字母開頭,由小寫字母、數(shù)字、中劃線(-)組成,長(zhǎng)度范圍4-128位,且不能以中劃線(-)結(jié)尾。

顯示名和其他集群的名稱、顯示名不可以重復(fù)。

在創(chuàng)建集群、更新集群請(qǐng)求體中,集群顯示名alias未指定或取值為空,表示與集群名稱name一致。在查詢集群等響應(yīng)體中,集群顯示名alias將必然返回,未配置時(shí)將返回集群名稱name。

annotations

Map<String,String>

集群注解,由key/value組成:

"annotations": {
   "key1" : "value1",
   "key2" : "value2"
}
說(shuō)明:
  • Annotations不用于標(biāo)識(shí)和選擇對(duì)象。Annotations中的元數(shù)據(jù)可以是small或large,structured或unstructured,并且可以包括標(biāo)簽不允許使用的字符。

  • 該字段不會(huì)被 數(shù)據(jù)庫(kù) 保存,當(dāng)前僅用于指定集群待安裝插件。

  • 可通過(guò)加入"cluster.install.addons.external/install":"[{"addonTemplateName":"icagent"}]"的鍵值對(duì)在創(chuàng)建集群時(shí)安裝ICAgent。

labels

Map<String,String>

集群標(biāo)簽,key/value對(duì)格式。

說(shuō)明:

該字段值由系統(tǒng)自動(dòng)生成,用于升級(jí)時(shí)前端識(shí)別集群支持的特性開關(guān),用戶指定無(wú)效。

creationTimestamp

String

集群創(chuàng)建時(shí)間

updateTimestamp

String

集群更新時(shí)間

表13 ClusterSpec

參數(shù)

參數(shù)類型

描述

category

String

集群類別:

  • CCE:CCE集群 CCE集群支持虛擬機(jī)與 裸金屬服務(wù)器 混合、GPU、NPU等異構(gòu)節(jié)點(diǎn)的混合部署,基于高性能網(wǎng)絡(luò)模型提供全方位、多場(chǎng)景、安全穩(wěn)定的容器運(yùn)行環(huán)境。

  • Turbo: CCE Turbo集群。 全面基于云原生基礎(chǔ)設(shè)施構(gòu)建的云原生2.0的容器引擎服務(wù),具備軟硬協(xié)同、網(wǎng)絡(luò)無(wú)損、安全可靠、調(diào)度智能的優(yōu)勢(shì),為用戶提供一站式、高性價(jià)比的全新容器服務(wù)體驗(yàn)。

type

String

集群Master節(jié)點(diǎn)架構(gòu):

  • VirtualMachine:Master節(jié)點(diǎn)為x86架構(gòu)服務(wù)器

  • ARM64: Master節(jié)點(diǎn)為鯤鵬(ARM架構(gòu))服務(wù)器

flavor

String

字段默認(rèn)值:創(chuàng)建CCE集群或鯤鵬集群時(shí),如果是非專屬云為cce.s1.small,專屬云則為cce.dec.s1.small;

集群規(guī)格,集群創(chuàng)建完成后規(guī)格不可再變更,請(qǐng)按實(shí)際業(yè)務(wù)需求進(jìn)行選擇:

  • cce.s1.small: 小規(guī)模單控制節(jié)點(diǎn)CCE集群(最大50節(jié)點(diǎn))

  • cce.s1.medium: 中等規(guī)模單控制節(jié)點(diǎn)CCE集群(最大200節(jié)點(diǎn))

  • cce.s2.small: 小規(guī)模多控制節(jié)點(diǎn)CCE集群(最大50節(jié)點(diǎn))

  • cce.s2.medium: 中等規(guī)模多控制節(jié)點(diǎn)CCE集群(最大200節(jié)點(diǎn))

  • cce.s2.large: 大規(guī)模多控制節(jié)點(diǎn)CCE集群(最大1000節(jié)點(diǎn))

  • cce.s2.xlarge: 超大規(guī)模多控制節(jié)點(diǎn)CCE集群(最大2000節(jié)點(diǎn))

說(shuō)明:
  • s1:?jiǎn)慰刂乒?jié)點(diǎn)CCE集群。

  • s2:多控制節(jié)點(diǎn)CCE集群。

  • dec:專屬CCE集群規(guī)格。如cce.dec.s1.small為小規(guī)模單控制節(jié)點(diǎn)專屬CCE集群(最大50節(jié)點(diǎn))。

  • 最大節(jié)點(diǎn)數(shù):當(dāng)前集群支持管理的最大節(jié)點(diǎn)規(guī)模,請(qǐng)根據(jù)業(yè)務(wù)需求選擇。

  • 單控制節(jié)點(diǎn)集群:普通集群是單控制節(jié)點(diǎn),控制節(jié)點(diǎn)故障后,集群將不可用,但已運(yùn)行工作負(fù)載不受影響。

  • 多控制節(jié)點(diǎn)集群:即高可用集群,當(dāng)某個(gè)控制節(jié)點(diǎn)故障時(shí),集群仍然可用。

version

String

集群版本,與Kubernetes社區(qū)基線版本保持一致,建議選擇最新版本。

在CCE控制臺(tái)支持創(chuàng)建兩種最新版本的集群??傻卿汣CE控制臺(tái)創(chuàng)建集群,在“版本”處獲取到集群版本。 其它集群版本,當(dāng)前仍可通過(guò)api創(chuàng)建,但后續(xù)會(huì)逐漸下線,具體下線策略請(qǐng)關(guān)注CCE官方公告。

說(shuō)明:
  • 若不配置,默認(rèn)創(chuàng)建最新版本的集群。

  • 若指定集群基線版本但是不指定具體r版本,則系統(tǒng)默認(rèn)選擇對(duì)應(yīng)集群版本的最新r版本。建議不指定具體r版本由系統(tǒng)選擇最新版本。

  • Turbo集群支持1.19及以上版本商用。

platformVersion

String

CCE集群平臺(tái)版本號(hào),表示集群版本(version)下的內(nèi)部版本。用于跟蹤某一集群版本內(nèi)的迭代,集群版本內(nèi)唯一,跨集群版本重新計(jì)數(shù)。不支持用戶指定,集群創(chuàng)建時(shí)自動(dòng)選擇對(duì)應(yīng)集群版本的最新平臺(tái)版本。

platformVersion格式為:cce.X.Y

  • X: 表示內(nèi)部特性版本。集群版本中特性或者補(bǔ)丁修復(fù),或者OS支持等變更場(chǎng)景。其值從1開始單調(diào)遞增。

  • Y: 表示內(nèi)部特性版本的補(bǔ)丁版本。僅用于特性版本上線后的軟件包更新,不涉及其他修改。其值從0開始單調(diào)遞增。

description

String

集群描述,對(duì)于集群使用目的的描述,可根據(jù)實(shí)際情況自定義,默認(rèn)為空。集群創(chuàng)建成功后可通過(guò)接口更新指定的集群來(lái)做出修改,也可在CCE控制臺(tái)中對(duì)應(yīng)集群的“集群詳情”下的“描述”處進(jìn)行修改。僅支持utf-8編碼。

customSan

Array of strings

集群的API Server服務(wù)端證書中的自定義SAN(Subject Alternative Name)字段,遵從SSL標(biāo)準(zhǔn)X509定義的格式規(guī)范。

  1. 不允許出現(xiàn)同名重復(fù)。

  2. 格式符合IP和域名格式。

示例:

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

HostNetwork object

節(jié)點(diǎn)網(wǎng)絡(luò)參數(shù),包含了 虛擬私有云VPC 和子網(wǎng)的ID信息,而VPC是集群內(nèi)節(jié)點(diǎn)之間的通信依賴,所以是必選的參數(shù)集。

containerNetwork

ContainerNetwork object

容器網(wǎng)絡(luò)參數(shù),包含了容器網(wǎng)絡(luò)類型和容器網(wǎng)段的信息。

eniNetwork

EniNetwork object

云原生網(wǎng)絡(luò)2.0網(wǎng)絡(luò)配置,創(chuàng)建CCE Turbo集群時(shí)指定。

serviceNetwork

ServiceNetwork object

服務(wù)網(wǎng)段參數(shù),包含IPv4 CIDR。

authentication

Authentication object

集群認(rèn)證方式相關(guān)配置。

billingMode

Integer

集群的計(jì)費(fèi)方式。

  • 0: 按需計(jì)費(fèi)

  • 1: 包周期

默認(rèn)為“按需計(jì)費(fèi)”。

masters

Array of MasterSpec objects

控制節(jié)點(diǎn)的高級(jí)配置

kubernetesSvcIpRange

String

服務(wù)網(wǎng)段參數(shù),kubernetes clusterIP取值范圍,1.11.7版本及以上支持。創(chuàng)建集群時(shí)如若未傳參,默認(rèn)為"10.247.0.0/16"。該參數(shù)廢棄中,推薦使用新字段serviceNetwork,包含IPv4服務(wù)網(wǎng)段。

clusterTags

Array of ResourceTag objects

集群資源標(biāo)簽

kubeProxyMode

String

服務(wù)轉(zhuǎn)發(fā)模式,支持以下兩種實(shí)現(xiàn):

  • iptables:社區(qū)傳統(tǒng)的kube-proxy模式,完全以iptables規(guī)則的方式來(lái)實(shí)現(xiàn)service 負(fù)載均衡 。該方式最主要的問(wèn)題是在服務(wù)多的時(shí)候產(chǎn)生太多的iptables規(guī)則,非增量式更新會(huì)引入一定的時(shí)延,大規(guī)模情況下有明顯的性能問(wèn)題。

  • ipvs:主導(dǎo)開發(fā)并在社區(qū)獲得廣泛支持的kube-proxy模式,采用增量式更新,吞吐更高,速度更快,并可以保證service更新期間連接保持不斷開,適用于大規(guī)模場(chǎng)景。

az

String

可用區(qū)(僅查詢返回字段)。

CCE支持的可用區(qū)請(qǐng)參考地區(qū)和終端節(jié)點(diǎn)

extendParam

ClusterExtendParam object

集群擴(kuò)展字段,可配置多可用區(qū)集群、專屬CCE集群,以及將集群創(chuàng)建在特定的企業(yè)項(xiàng)目下等。

supportIstio

Boolean

支持Istio

configurationsOverride

Array of PackageConfiguration objects

覆蓋集群默認(rèn)組件配置

若指定了不支持的組件或組件不支持的參數(shù),該配置項(xiàng)將被忽略。

當(dāng)前支持的可配置組件及其參數(shù)詳見 配置管理

表14 HostNetwork

參數(shù)

參數(shù)類型

描述

vpc

String

用于創(chuàng)建控制節(jié)點(diǎn)的VPC的ID。

獲取方法如下:

  • 方法1:登錄虛擬私有云服務(wù)的控制臺(tái)界面,在虛擬私有云的詳情頁(yè)面查找VPC ID。

  • 方法2:通過(guò)虛擬私有云服務(wù)的API接口查詢。 鏈接請(qǐng)參見查詢VPC列表

說(shuō)明:

當(dāng)前vpc-router容器網(wǎng)絡(luò)模型不支持對(duì)接含拓展網(wǎng)段的VPC。

subnet

String

用于創(chuàng)建控制節(jié)點(diǎn)的subnet的網(wǎng)絡(luò)ID。獲取方法如下:

  • 方法1:登錄虛擬私有云服務(wù)的控制臺(tái)界面,單擊VPC下的子網(wǎng),進(jìn)入子網(wǎng)詳情頁(yè)面,查找網(wǎng)絡(luò)ID。

  • 方法2:通過(guò)虛擬私有云服務(wù)的查詢子網(wǎng)列表接口查詢。 鏈接請(qǐng)參見查詢子網(wǎng)列表

SecurityGroup

String

集群默認(rèn)的Node節(jié)點(diǎn)安全組ID,不指定該字段系統(tǒng)將自動(dòng)為用戶創(chuàng)建默認(rèn)Node節(jié)點(diǎn)安全組,指定該字段時(shí)集群將綁定指定的安全組。Node節(jié)點(diǎn)安全組需要放通部分端口來(lái)保證正常通信。詳細(xì)設(shè)置請(qǐng)參考集群安全組規(guī)則配置。

表15 ContainerNetwork

參數(shù)

參數(shù)類型

描述

mode

String

容器網(wǎng)絡(luò)類型(只可選擇其一)

  • overlay_l2:容器隧道網(wǎng)絡(luò),通過(guò)OVS(OpenVSwitch)為容器構(gòu)建的overlay_l2網(wǎng)絡(luò)。

  • vpc-router:VPC網(wǎng)絡(luò),使用ipvlan和自定義VPC路由為容器構(gòu)建的Underlay的l2網(wǎng)絡(luò)。

  • eni:云原生網(wǎng)絡(luò)2.0,深度整合VPC原生ENI彈性網(wǎng)卡能力,采用VPC網(wǎng)段分配容器地址,支持ELB直通容器,享有高性能,創(chuàng)建CCE Turbo集群時(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,如存在網(wǎng)段沖突,將會(huì)報(bào)錯(cuò)。

此參數(shù)在集群創(chuàng)建后不可更改,請(qǐng)謹(jǐn)慎選擇。(已廢棄,如填寫cidrs將忽略該cidr)

cidrs

Array of ContainerCIDR objects

容器網(wǎng)絡(luò)網(wǎng)段列表。1.21及新版本集群使用cidrs字段,當(dāng)集群網(wǎng)絡(luò)類型為vpc-router類型時(shí),支持多個(gè)容器網(wǎng)段;1.21之前版本若使用cidrs字段,則取值cidrs數(shù)組中的第一個(gè)cidr元素作為容器網(wǎng)絡(luò)網(wǎng)段地址。

此參數(shù)在集群創(chuàng)建后不可更改,請(qǐng)謹(jǐn)慎選擇。

表16 ContainerCIDR

參數(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。

表17 EniNetwork

參數(shù)

參數(shù)類型

描述

eniSubnetId

String

ENI所在子網(wǎng)的IPv4子網(wǎng)ID(暫不支持IPv6,廢棄中)。獲取方法如下:

  • 方法1:登錄虛擬私有云服務(wù)的控制臺(tái)界面,單擊VPC下的子網(wǎng),進(jìn)入子網(wǎng)詳情頁(yè)面,查找IPv4子網(wǎng)ID。

  • 方法2:通過(guò)虛擬私有云服務(wù)的查詢子網(wǎng)列表接口查詢。 鏈接請(qǐng)參見查詢子網(wǎng)列表

eniSubnetCIDR

String

ENI子網(wǎng)CIDR(廢棄中)

subnets

Array of NetworkSubnet objects

IPv4子網(wǎng)ID列表

表18 NetworkSubnet

參數(shù)

參數(shù)類型

描述

subnetID

String

用于創(chuàng)建控制節(jié)點(diǎn)的subnet的IPv4子網(wǎng)ID(暫不支持IPv6)。獲取方法如下:

  • 方法1:登錄虛擬私有云服務(wù)的控制臺(tái)界面,單擊VPC下的子網(wǎng),進(jìn)入子網(wǎng)詳情頁(yè)面,查找IPv4子網(wǎng)ID。

  • 方法2:通過(guò)虛擬私有云服務(wù)的查詢子網(wǎng)列表接口查詢。 鏈接請(qǐng)參見查詢子網(wǎng)列表

表19 ServiceNetwork

參數(shù)

參數(shù)類型

描述

IPv4CIDR

String

kubernetes clusterIP IPv4 CIDR取值范圍。創(chuàng)建集群時(shí)若未傳參,默認(rèn)為"10.247.0.0/16"。

表20 Authentication

參數(shù)

參數(shù)類型

描述

mode

String

集群認(rèn)證模式。

  • kubernetes 1.11及之前版本的集群支持“x509”、“rbac”和“authenticating_proxy”,默認(rèn)取值為“x509”。

  • kubernetes 1.13及以上版本的集群支持“rbac”和“authenticating_proxy”,默認(rèn)取值為“rbac”。

authenticatingProxy

AuthenticatingProxy object

authenticatingProxy模式相關(guān)配置。認(rèn)證模式為authenticating_proxy時(shí)必選。

表21 AuthenticatingProxy

參數(shù)

參數(shù)類型

描述

ca

String

authenticating_proxy模式配置的x509格式CA證書(base64編碼)。當(dāng)集群認(rèn)證模式為authenticating_proxy時(shí),此項(xiàng)必須填寫。

最大長(zhǎng)度:1M

cert

String

authenticating_proxy模式配置的x509格式CA證書簽發(fā)的客戶端證書,用于kube-apiserver到擴(kuò)展apiserver的認(rèn)證。(base64編碼)。當(dāng)集群認(rèn)證模式為authenticating_proxy時(shí),此項(xiàng)必須填寫。

privateKey

String

authenticating_proxy模式配置的x509格式CA證書簽發(fā)的客戶端證書時(shí)對(duì)應(yīng)的私鑰,用于kube-apiserver到擴(kuò)展apiserver的認(rèn)證。Kubernetes集群使用的私鑰尚不支持密碼加密,請(qǐng)使用未加密的私鑰。(base64編碼)。當(dāng)集群認(rèn)證模式為authenticating_proxy時(shí),此項(xiàng)必須填寫。

表22 MasterSpec

參數(shù)

參數(shù)類型

描述

availabilityZone

String

可用區(qū)

表23 ResourceTag

參數(shù)

參數(shù)類型

描述

key

String

Key值。

  • 不能為空,最多支持128個(gè)字符

  • 可用UTF-8格式表示的漢字、字母、數(shù)字和空格

  • 支持部分特殊字符:_.:/=+-@

  • 不能以"_sys_"開頭

value

String

Value值。

  • 可以為空但不能缺省,最多支持255個(gè)字符

  • 可用UTF-8格式表示的漢字、字母、數(shù)字和空格

  • 支持部分特殊字符:_.:/=+-@

表24 ClusterExtendParam

參數(shù)

參數(shù)類型

描述

clusterAZ

String

集群控制節(jié)點(diǎn)可用區(qū)配置。

CCE支持的可用區(qū)請(qǐng)參考地區(qū)和終端節(jié)點(diǎn)

  • multi_az:多可用區(qū),可選。僅使用高可用集群時(shí)才可以配置多可用區(qū)。

  • 專屬 云計(jì)算 池可用區(qū):用于指定專屬云可用區(qū)部署集群控制節(jié)點(diǎn)。如果需配置專屬CCE集群,該字段為必選。

dssMasterVolumes

String

用于指定控制節(jié)點(diǎn)的系統(tǒng)盤和數(shù)據(jù)盤使用 專屬分布式存儲(chǔ) ,未指定或者值為空時(shí),默認(rèn)使用EVS 云硬盤 。

如果配置專屬CCE集群,該字段為必選,請(qǐng)按照如下格式設(shè)置:

<rootVol.dssPoolID>.<rootVol.volType>;<dataVol.dssPoolID>.<dataVol.volType>

字段說(shuō)明:

  • rootVol為系統(tǒng)盤;dataVol為數(shù)據(jù)盤;

  • dssPoolID為專屬分布式存儲(chǔ)池ID;

  • volType為專屬分布式存儲(chǔ)池的存儲(chǔ)類型,如SAS、SSD。

樣例:c950ee97-587c-4f24-8a74-3367e3da570f.sas;6edbc2f4-1507-44f8-ac0d-eed1d2608d38.ssd

說(shuō)明:

非專屬CCE集群不支持配置該字段。

enterpriseProjectId

String

集群所屬的企業(yè)項(xiàng)目ID。

說(shuō)明:
  • 需要開通企業(yè)項(xiàng)目功能后才可配置企業(yè)項(xiàng)目。

  • 集群所屬的企業(yè)項(xiàng)目與集群下所關(guān)聯(lián)的其他云服務(wù)資源所屬的企業(yè)項(xiàng)目必須保持一致。

kubeProxyMode

String

服務(wù)轉(zhuǎn)發(fā)模式,支持以下兩種實(shí)現(xiàn):

  • iptables:社區(qū)傳統(tǒng)的kube-proxy模式,完全以iptables規(guī)則的方式來(lái)實(shí)現(xiàn)service負(fù)載均衡。該方式最主要的問(wèn)題是在服務(wù)多的時(shí)候產(chǎn)生太多的iptables規(guī)則,非增量式更新會(huì)引入一定的時(shí)延,大規(guī)模情況下有明顯的性能問(wèn)題

  • ipvs:主導(dǎo)開發(fā)并在社區(qū)獲得廣泛支持的kube-proxy模式,采用增量式更新,吞吐更高,速度更快,并可以保證service更新期間連接保持不斷開,適用于大規(guī)模場(chǎng)景。

說(shuō)明:

此參數(shù)已廢棄,若同時(shí)指定此參數(shù)和ClusterSpec下的kubeProxyMode,以ClusterSpec下的為準(zhǔn)。

clusterExternalIP

String

master 彈性公網(wǎng)IP

alpha.cce/fixPoolMask

String

容器網(wǎng)絡(luò)固定IP池掩碼位數(shù),僅vpc-router網(wǎng)絡(luò)支持。

該參數(shù)決定節(jié)點(diǎn)可分配容器IP數(shù)量,與創(chuàng)建節(jié)點(diǎn)時(shí)設(shè)置的maxPods參數(shù)共同決定節(jié)點(diǎn)最多可以創(chuàng)建多少個(gè)Pod, 具體請(qǐng)參見節(jié)點(diǎn)最多可以創(chuàng)建多少Pod

整數(shù)字符傳取值范圍: 24 ~ 28

decMasterFlavor

String

專屬CCE集群指定可控制節(jié)點(diǎn)的規(guī)格。

dockerUmaskMode

String

集群默認(rèn)Docker的UmaskMode配置,可取值為secure或normal,不指定時(shí)默認(rèn)為normal。

kubernetes.io/cpuManagerPolicy

String

集群CPU管理策略。取值為none(或空值)或static,默認(rèn)為none(或空值)。

  • none(或空值):關(guān)閉工作負(fù)載實(shí)例獨(dú)占CPU核的功能,優(yōu)點(diǎn)是CPU共享池的可分配核數(shù)較多

  • static:支持給節(jié)點(diǎn)上的工作負(fù)載實(shí)例配置CPU獨(dú)占,適用于對(duì)CPU緩存和調(diào)度延遲敏感的工作負(fù)載,Turbo集群下僅對(duì)普通容器節(jié)點(diǎn)有效,安全容器節(jié)點(diǎn)無(wú)效。

orderID

String

訂單ID,集群付費(fèi)類型為自動(dòng)付費(fèi)包周期類型時(shí),響應(yīng)中會(huì)返回此字段(僅創(chuàng)建場(chǎng)景涉及)。

periodType

String

  • month:月

  • year:年

說(shuō)明:

作為請(qǐng)求參數(shù),billingMode為1(包周期)時(shí)生效,且為必選。 作為響應(yīng)參數(shù),僅在創(chuàng)建包周期集群時(shí)返回。

periodNum

Integer

訂購(gòu)周期數(shù),取值范圍:

  • periodType=month(周期類型為月)時(shí),取值為[1-9]。

  • periodType=year(周期類型為年)時(shí),取值為1-3。

說(shuō)明:

作為請(qǐng)求參數(shù),billingMode為1時(shí)生效,且為必選。 作為響應(yīng)參數(shù),僅在創(chuàng)建包周期集群時(shí)返回。

isAutoRenew

String

是否自動(dòng)續(xù)訂

  • “true”:自動(dòng)續(xù)訂

  • “false”:不自動(dòng)續(xù)訂

說(shuō)明:

billingMode為1時(shí)生效,不填寫此參數(shù)時(shí)默認(rèn)不會(huì)自動(dòng)續(xù)費(fèi)。

isAutoPay

String

是否自動(dòng)扣款

  • “true”:自動(dòng)扣款

  • “false”:不自動(dòng)扣款

說(shuō)明:

billingMode為1時(shí)生效,不填寫此參數(shù)時(shí)默認(rèn)不會(huì)自動(dòng)扣款。

upgradefrom

String

記錄集群通過(guò)何種升級(jí)方式升級(jí)到當(dāng)前版本。

表25 PackageConfiguration

參數(shù)

參數(shù)類型

描述

name

String

組件名稱

configurations

Array of ConfigurationItem objects

組件配置項(xiàng)

表26 ConfigurationItem

參數(shù)

參數(shù)類型

描述

name

String

組件配置項(xiàng)名稱

value

Object

組件配置項(xiàng)值

表27 ClusterStatus

參數(shù)

參數(shù)類型

描述

phase

String

集群狀態(tài),取值如下

  • Available:可用,表示集群處于正常狀態(tài)。

  • Unavailable:不可用,表示集群異常,需手動(dòng)刪除。

  • ScalingUp:擴(kuò)容中,表示集群正處于擴(kuò)容過(guò)程中。

  • ScalingDown:縮容中,表示集群正處于縮容過(guò)程中。

  • Creating:創(chuàng)建中,表示集群正處于創(chuàng)建過(guò)程中。

  • Deleting:刪除中,表示集群正處于刪除過(guò)程中。

  • Upgrading:升級(jí)中,表示集群正處于升級(jí)過(guò)程中。

  • Resizing:規(guī)格變更中,表示集群正處于變更規(guī)格中。

  • RollingBack:回滾中,表示集群正處于回滾過(guò)程中。

  • RollbackFailed:回滾異常,表示集群回滾異常。

  • Hibernating:休眠中,表示集群正處于休眠過(guò)程中。

  • Hibernation:已休眠,表示集群正處于休眠狀態(tài)。

  • Awaking:?jiǎn)拘阎?,表示集群正處于從休眠狀態(tài)喚醒的過(guò)程中。

  • Empty:集群無(wú)任何資源(已廢棄)

jobID

String

任務(wù)ID,集群當(dāng)前狀態(tài)關(guān)聯(lián)的任務(wù)ID。當(dāng)前支持:

  • 創(chuàng)建集群時(shí)返回關(guān)聯(lián)的任務(wù)ID,可通過(guò)任務(wù)ID查詢創(chuàng)建集群的附屬任務(wù)信息;

  • 刪除集群或者刪除集群失敗時(shí)返回關(guān)聯(lián)的任務(wù)ID,此字段非空時(shí),可通過(guò)任務(wù)ID查詢刪除集群的附屬任務(wù)信息。

說(shuō)明:

任務(wù)信息具有一定時(shí)效性,僅用于短期跟蹤任務(wù)進(jìn)度,請(qǐng)勿用于集群狀態(tài)判斷等額外場(chǎng)景。

reason

String

集群變?yōu)楫?dāng)前狀態(tài)的原因,在集群在非“Available”狀態(tài)下時(shí),會(huì)返回此參數(shù)。

message

String

集群變?yōu)楫?dāng)前狀態(tài)的原因的詳細(xì)信息,在集群在非“Available”狀態(tài)下時(shí),會(huì)返回此參數(shù)。

endpoints

Array of ClusterEndpoints objects

集群中 kube-apiserver 的訪問(wèn)地址。

isLocked

Boolean

CBC資源鎖定

lockScene

String

CBC資源鎖定場(chǎng)景

lockSource

String

鎖定資源

lockSourceId

String

鎖定的資源ID

deleteOption

Object

刪除配置狀態(tài)(僅刪除請(qǐng)求響應(yīng)包含)

deleteStatus

Object

刪除狀態(tài)信息(僅刪除請(qǐng)求響應(yīng)包含)

表28 ClusterEndpoints

參數(shù)

參數(shù)類型

描述

url

String

集群中 kube-apiserver 的訪問(wèn)地址

type

String

集群訪問(wèn)地址的類型

  • Internal:用戶子網(wǎng)內(nèi)訪問(wèn)的地址

  • External:公網(wǎng)訪問(wèn)的地址

請(qǐng)求示例

  • 僅更新集群描述

    {
      "spec" : {
        "description" : "new description"
      }
    }
  • 僅更新集群自定義證書SAN

    {
      "spec" : {
        "customSan" : [ "192.168.1.0", "example.com" ]
      }
    }
  • 同時(shí)更新集群描述和自定義證書SAN

    {
      "spec" : {
        "description" : "new description",
        "customSan" : [ "192.168.1.0", "example.com" ]
      }
    }
  • 添加集群容器網(wǎng)段(v1.21版本以上VPC網(wǎng)絡(luò)模型的集群適用)

    {
      "spec" : {
        "containerNetwork" : {
          "cidrs" : [ {
            "cidr" : "10.10.0.0/16"
          }, {
            "cidr" : "10.11.0.0/16"
          } ]
        }
      }
    }
  • 修改集群默認(rèn)節(jié)點(diǎn)安全組

    /api/v3/projects/{project_id}/clusters/{cluster_id}
    
    {
      "spec" : {
        "hostNetwork" : {
          "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae"
        }
      }
    }

響應(yīng)示例

狀態(tài)碼: 200

表示更新指定集群成功。

{
  "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 06:39:36.844676088 +0000 UTC"
  },
  "spec" : {
    "type" : "VirtualMachine",
    "flavor" : "cce.s1.small",
    "version" : "v1.7.3-r13",
    "description" : "new description",
    "customSan" : [ "192.168.1.0", "example.com" ],
    "hostNetwork" : {
      "vpc" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
      "subnet" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
      "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae"
    },
    "containerNetwork" : {
      "mode" : "overlay_l2",
      "cidr" : "172.17.0.0/16"
    },
    "authentication" : {
      "mode" : "x509",
      "authenticatingProxy" : { }
    },
    "billingMode" : 0
  },
  "status" : {
    "phase" : "Available",
    "endpoints" : [ {
      "url" : "https://192.168.0.11:5443",
      "type" : "Internal"
    } ]
  }
}

SDK代碼示例

SDK代碼示例如下。

  • Java
  • Python
  • Go
  • 更多
  • 僅更新集群描述

    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 UpdateClusterSolution {
    
        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();
            UpdateClusterRequest request = new UpdateClusterRequest();
            request.withClusterId("<cluster_id>");
            ClusterInformation body = new ClusterInformation();
            ClusterInformationSpec specbody = new ClusterInformationSpec();
            specbody.withDescription("new description");
            body.withSpec(specbody);
            request.withBody(body);
            try {
                UpdateClusterResponse response = client.updateCluster(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());
            }
        }
    }
  • 僅更新集群自定義證書SAN

    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.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class UpdateClusterSolution {
    
        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();
            UpdateClusterRequest request = new UpdateClusterRequest();
            request.withClusterId("<cluster_id>");
            ClusterInformation body = new ClusterInformation();
            List<String> listSpecCustomSan = new ArrayList<>();
            listSpecCustomSan.add("192.168.1.0");
            listSpecCustomSan.add("example.com");
            ClusterInformationSpec specbody = new ClusterInformationSpec();
            specbody.withCustomSan(listSpecCustomSan);
            body.withSpec(specbody);
            request.withBody(body);
            try {
                UpdateClusterResponse response = client.updateCluster(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());
            }
        }
    }
  • 同時(shí)更新集群描述和自定義證書SAN

    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.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class UpdateClusterSolution {
    
        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();
            UpdateClusterRequest request = new UpdateClusterRequest();
            request.withClusterId("<cluster_id>");
            ClusterInformation body = new ClusterInformation();
            List<String> listSpecCustomSan = new ArrayList<>();
            listSpecCustomSan.add("192.168.1.0");
            listSpecCustomSan.add("example.com");
            ClusterInformationSpec specbody = new ClusterInformationSpec();
            specbody.withDescription("new description")
                .withCustomSan(listSpecCustomSan);
            body.withSpec(specbody);
            request.withBody(body);
            try {
                UpdateClusterResponse response = client.updateCluster(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());
            }
        }
    }
  • 添加集群容器網(wǎng)段(v1.21版本以上VPC網(wǎng)絡(luò)模型的集群適用)

    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.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class UpdateClusterSolution {
    
        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();
            UpdateClusterRequest request = new UpdateClusterRequest();
            request.withClusterId("<cluster_id>");
            ClusterInformation body = new ClusterInformation();
            List<ContainerCIDR> listContainerNetworkCidrs = new ArrayList<>();
            listContainerNetworkCidrs.add(
                new ContainerCIDR()
                    .withCidr("10.10.0.0/16")
            );
            listContainerNetworkCidrs.add(
                new ContainerCIDR()
                    .withCidr("10.11.0.0/16")
            );
            ContainerNetworkUpdate containerNetworkSpec = new ContainerNetworkUpdate();
            containerNetworkSpec.withCidrs(listContainerNetworkCidrs);
            ClusterInformationSpec specbody = new ClusterInformationSpec();
            specbody.withContainerNetwork(containerNetworkSpec);
            body.withSpec(specbody);
            request.withBody(body);
            try {
                UpdateClusterResponse response = client.updateCluster(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());
            }
        }
    }
  • 修改集群默認(rèn)節(jié)點(diǎn)安全組

    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 UpdateClusterSolution {
    
        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();
            UpdateClusterRequest request = new UpdateClusterRequest();
            request.withClusterId("<cluster_id>");
            ClusterInformation body = new ClusterInformation();
            ClusterInformationSpecHostNetwork hostNetworkSpec = new ClusterInformationSpecHostNetwork();
            hostNetworkSpec.withSecurityGroup("6ee29825-8f49-4796-b33a-fc76f84a59ae");
            ClusterInformationSpec specbody = new ClusterInformationSpec();
            specbody.withHostNetwork(hostNetworkSpec);
            body.withSpec(specbody);
            request.withBody(body);
            try {
                UpdateClusterResponse response = client.updateCluster(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 = UpdateClusterRequest()
            request.cluster_id = "<cluster_id>"
            specbody = ClusterInformationSpec(
                description="new description"
            )
            request.body = ClusterInformation(
                spec=specbody
            )
            response = client.update_cluster(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
  • 僅更新集群自定義證書SAN

    # 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 = UpdateClusterRequest()
            request.cluster_id = "<cluster_id>"
            listCustomSanSpec = [
                "192.168.1.0",
                "example.com"
            ]
            specbody = ClusterInformationSpec(
                custom_san=listCustomSanSpec
            )
            request.body = ClusterInformation(
                spec=specbody
            )
            response = client.update_cluster(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
  • 同時(shí)更新集群描述和自定義證書SAN

    # 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 = UpdateClusterRequest()
            request.cluster_id = "<cluster_id>"
            listCustomSanSpec = [
                "192.168.1.0",
                "example.com"
            ]
            specbody = ClusterInformationSpec(
                description="new description",
                custom_san=listCustomSanSpec
            )
            request.body = ClusterInformation(
                spec=specbody
            )
            response = client.update_cluster(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
  • 添加集群容器網(wǎng)段(v1.21版本以上VPC網(wǎng)絡(luò)模型的集群適用)

    # 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 = UpdateClusterRequest()
            request.cluster_id = "<cluster_id>"
            listCidrsContainerNetwork = [
                ContainerCIDR(
                    cidr="10.10.0.0/16"
                ),
                ContainerCIDR(
                    cidr="10.11.0.0/16"
                )
            ]
            containerNetworkSpec = ContainerNetworkUpdate(
                cidrs=listCidrsContainerNetwork
            )
            specbody = ClusterInformationSpec(
                container_network=containerNetworkSpec
            )
            request.body = ClusterInformation(
                spec=specbody
            )
            response = client.update_cluster(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
  • 修改集群默認(rèn)節(jié)點(diǎn)安全組

    # 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 = UpdateClusterRequest()
            request.cluster_id = "<cluster_id>"
            hostNetworkSpec = ClusterInformationSpecHostNetwork(
                security_group="6ee29825-8f49-4796-b33a-fc76f84a59ae"
            )
            specbody = ClusterInformationSpec(
                host_network=hostNetworkSpec
            )
            request.body = ClusterInformation(
                spec=specbody
            )
            response = client.update_cluster(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.UpdateClusterRequest{}
    	request.ClusterId = "<cluster_id>"
    	descriptionSpec:= "new description"
    	specbody := &model.ClusterInformationSpec{
    		Description: &descriptionSpec,
    	}
    	request.Body = &model.ClusterInformation{
    		Spec: specbody,
    	}
    	response, err := client.UpdateCluster(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
  • 僅更新集群自定義證書SAN

    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.UpdateClusterRequest{}
    	request.ClusterId = "<cluster_id>"
    	var listCustomSanSpec = []string{
            "192.168.1.0",
    	    "example.com",
        }
    	specbody := &model.ClusterInformationSpec{
    		CustomSan: &listCustomSanSpec,
    	}
    	request.Body = &model.ClusterInformation{
    		Spec: specbody,
    	}
    	response, err := client.UpdateCluster(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
  • 同時(shí)更新集群描述和自定義證書SAN

    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.UpdateClusterRequest{}
    	request.ClusterId = "<cluster_id>"
    	var listCustomSanSpec = []string{
            "192.168.1.0",
    	    "example.com",
        }
    	descriptionSpec:= "new description"
    	specbody := &model.ClusterInformationSpec{
    		Description: &descriptionSpec,
    		CustomSan: &listCustomSanSpec,
    	}
    	request.Body = &model.ClusterInformation{
    		Spec: specbody,
    	}
    	response, err := client.UpdateCluster(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
  • 添加集群容器網(wǎng)段(v1.21版本以上VPC網(wǎng)絡(luò)模型的集群適用)

    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.UpdateClusterRequest{}
    	request.ClusterId = "<cluster_id>"
    	var listCidrsContainerNetwork = []model.ContainerCidr{
            {
                Cidr: "10.10.0.0/16",
            },
            {
                Cidr: "10.11.0.0/16",
            },
        }
    	containerNetworkSpec := &model.ContainerNetworkUpdate{
    		Cidrs: &listCidrsContainerNetwork,
    	}
    	specbody := &model.ClusterInformationSpec{
    		ContainerNetwork: containerNetworkSpec,
    	}
    	request.Body = &model.ClusterInformation{
    		Spec: specbody,
    	}
    	response, err := client.UpdateCluster(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
  • 修改集群默認(rèn)節(jié)點(diǎn)安全組

    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.UpdateClusterRequest{}
    	request.ClusterId = "<cluster_id>"
    	securityGroupHostNetwork:= "6ee29825-8f49-4796-b33a-fc76f84a59ae"
    	hostNetworkSpec := &model.ClusterInformationSpecHostNetwork{
    		SecurityGroup: &securityGroupHostNetwork,
    	}
    	specbody := &model.ClusterInformationSpec{
    		HostNetwork: hostNetworkSpec,
    	}
    	request.Body = &model.ClusterInformation{
    		Spec: specbody,
    	}
    	response, err := client.UpdateCluster(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }

更多編程語(yǔ)言的SDK代碼示例,請(qǐng)參見API Explorer的代碼示例頁(yè)簽,可生成自動(dòng)對(duì)應(yīng)的SDK代碼示例。

狀態(tài)碼

狀態(tài)碼

描述

200

表示更新指定集群成功。

錯(cuò)誤碼

請(qǐng)參見錯(cuò)誤碼