華為云計(jì)算 云知識(shí) 更新指定節(jié)點(diǎn)池UpdateNodePool
更新指定節(jié)點(diǎn)池UpdateNodePool

 

功能介紹

該API用于更新指定的節(jié)點(diǎn)池。僅支持集群在處于可用、擴(kuò)容、縮容狀態(tài)時(shí)調(diào)用。

  • 集群管理的URL格式為:https://Endpoint/uri。其中uri為資源路徑,也即API訪(fǎng)問(wèn)的路徑
  • 當(dāng)前僅支持更新節(jié)點(diǎn)池名稱(chēng),spec下的initialNodeCount,k8sTags,taints,login,userTags與節(jié)點(diǎn)池的擴(kuò)縮容配置相關(guān)字段。若此次更新未設(shè)置相關(guān)值,默認(rèn)更新為初始值。

調(diào)用方法

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

URI

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

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

project_id

String

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

cluster_id

String

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

nodepool_id

String

節(jié)點(diǎn)池ID

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

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

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

Content-Type

String

消息體的類(lèi)型(格式)

X-Auth-Token

String

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

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

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

metadata

NodePoolMetadataUpdate object

節(jié)點(diǎn)池的元數(shù)據(jù)信息

spec

NodePoolSpecUpdate object

節(jié)點(diǎn)池的規(guī)格描述

表4 NodePoolMetadataUpdate

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

name

String

節(jié)點(diǎn)池名稱(chēng)。

說(shuō)明:

命名規(guī)則:

  • 以小寫(xiě)字母開(kāi)頭,由小寫(xiě)字母、數(shù)字、中劃線(xiàn)(-)組成,長(zhǎng)度范圍1-50位,且不能以中劃線(xiàn)(-)結(jié)尾。
  • 不允許創(chuàng)建名為 DefaultPool 的節(jié)點(diǎn)池。
表5 NodePoolSpecUpdate

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

nodeTemplate

NodeSpecUpdate object

節(jié)點(diǎn)池模板詳細(xì)參數(shù)。

initialNodeCount

Integer

節(jié)點(diǎn)池初始化節(jié)點(diǎn)個(gè)數(shù)。查詢(xún)時(shí)為節(jié)點(diǎn)池目標(biāo)節(jié)點(diǎn)數(shù)量。默認(rèn)值為0。

autoscaling

NodePoolNodeAutoscaling object

彈性伸縮 參數(shù)。僅按需計(jì)費(fèi)的節(jié)點(diǎn)池支持彈性伸縮。

表6 NodeSpecUpdate

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

taints

Array of Taint objects

支持給創(chuàng)建出來(lái)的節(jié)點(diǎn)加Taints來(lái)設(shè)置反親和性,taints配置不超過(guò)20條。默認(rèn)值為空。每條Taints包含以下3個(gè)參數(shù):

  • Key:必須以字母或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符;另外可以使用DNS子域作為前綴。
  • Value:必須以字符或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符。
  • Effect:只可選NoSchedule,PreferNoSchedule或NoExecute。

示例:

"taints": [{
  "key": "status",
  "value": "unavailable",
  "effect": "NoSchedule"
}, {
  "key": "looks",
  "value": "bad",
  "effect": "NoSchedule"
}]

k8sTags

Map<String,String>

格式為key/value鍵值對(duì)。鍵值對(duì)個(gè)數(shù)不超過(guò)20條。默認(rèn)值為空。

  • Key:必須以字母或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符;另外可以使用DNS子域作為前綴,例如example.com/my-key,DNS子域最長(zhǎng)253個(gè)字符。
  • Value:可以為空或者非空字符串,非空字符串必須以字符或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符。

示例:

"k8sTags": {
  "key": "value"
}

userTags

Array of UserTag objects

云服務(wù)器 標(biāo)簽,鍵必須唯一,CCE支持的最大用戶(hù)自定義標(biāo)簽數(shù)量依region而定,自定義標(biāo)簽數(shù)上限為8個(gè)。默認(rèn)值為空。

initializedConditions

Array of strings

自定義初始化標(biāo)記。

CCE節(jié)點(diǎn)在初始化完成之前,會(huì)打上初始化未完成污點(diǎn)(node.cloudprovider.kubernetes.io/uninitialized)防止pod調(diào)度到節(jié)點(diǎn)上。

cce支持自定義初始化標(biāo)記,在接收到initializedConditions參數(shù)后,會(huì)將參數(shù)值轉(zhuǎn)換成節(jié)點(diǎn)標(biāo)簽,隨節(jié)點(diǎn)下發(fā),例如:cloudprovider.openvessel.io/inject-initialized-conditions=CCEInitial_CustomedInitial。

當(dāng)節(jié)點(diǎn)上設(shè)置了此標(biāo)簽,會(huì)輪詢(xún)節(jié)點(diǎn)的status.Conditions,查看conditions的type是否存在標(biāo)記名,如CCEInitial、CustomedInitial標(biāo)記,如果存在所有傳入的標(biāo)記,且狀態(tài)為T(mén)rue,認(rèn)為節(jié)點(diǎn)初始化完成,則移除初始化污點(diǎn)。

默認(rèn)值為空。

  • 必須以字母、數(shù)字組成,長(zhǎng)度范圍1-20位。
  • 標(biāo)記數(shù)量不超過(guò)2個(gè)
表7 Taint

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

key

String

value

String

effect

String

作用效果

表8 UserTag

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

key

String

云服務(wù)器標(biāo)簽的鍵。不得以"CCE-"或"__type_baremetal"開(kāi)頭

value

String

云服務(wù)器標(biāo)簽的值

表9 NodePoolNodeAutoscaling

參數(shù)

是否必選

參數(shù)類(lèi)型

描述

enable

Boolean

是否開(kāi)啟自動(dòng)擴(kuò)縮容

minNodeCount

Integer

若開(kāi)啟自動(dòng)擴(kuò)縮容,最小能縮容的節(jié)點(diǎn)個(gè)數(shù)。不可大于集群規(guī)格所允許的節(jié)點(diǎn)上限

maxNodeCount

Integer

若開(kāi)啟自動(dòng)擴(kuò)縮容,最大能擴(kuò)容的節(jié)點(diǎn)個(gè)數(shù),應(yīng)大于等于 minNodeCount,且不超過(guò)集群規(guī)格對(duì)應(yīng)的節(jié)點(diǎn)數(shù)量上限。

scaleDownCooldownTime

Integer

節(jié)點(diǎn)保留時(shí)間,單位為分鐘,擴(kuò)容出來(lái)的節(jié)點(diǎn)在這個(gè)時(shí)間內(nèi)不會(huì)被縮掉

priority

Integer

節(jié)點(diǎn)池權(quán)重,更高的權(quán)重在擴(kuò)容時(shí)擁有更高的優(yōu)先級(jí)

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

狀態(tài)碼: 200

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

參數(shù)

參數(shù)類(lèi)型

描述

kind

String

API類(lèi)型,固定值“NodePool”。

apiVersion

String

API版本,固定值“v3”。

metadata

NodePoolMetadata object

節(jié)點(diǎn)池的元數(shù)據(jù)信息

spec

NodePoolSpec object

節(jié)點(diǎn)池的規(guī)格描述

status

NodePoolStatus object

節(jié)點(diǎn)池狀態(tài)

表11 NodePoolMetadata

參數(shù)

參數(shù)類(lèi)型

描述

name

String

節(jié)點(diǎn)名池名稱(chēng)。

說(shuō)明:

命名規(guī)則:

  • 以小寫(xiě)字母開(kāi)頭,由小寫(xiě)字母、數(shù)字、中劃線(xiàn)(-)組成,長(zhǎng)度范圍1-50位,且不能以中劃線(xiàn)(-)結(jié)尾。
  • 不允許創(chuàng)建名為 DefaultPool 的節(jié)點(diǎn)池。

uid

String

節(jié)點(diǎn)池的uid。創(chuàng)建成功后自動(dòng)生成,填寫(xiě)無(wú)效

annotations

Map<String,String>

節(jié)點(diǎn)池的注解,以key value對(duì)表示。僅用于查詢(xún),不支持請(qǐng)求時(shí)傳入,填寫(xiě)無(wú)效。

updateTimestamp

String

更新時(shí)間

creationTimestamp

String

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

表12 NodePoolSpec

參數(shù)

參數(shù)類(lèi)型

描述

type

String

節(jié)點(diǎn)池類(lèi)型。不填寫(xiě)時(shí)默認(rèn)為vm。

  • vm:彈性云服務(wù)器
  • ElasticBMS:C6型彈性裸金屬通用計(jì)算增強(qiáng)型云服務(wù)器,規(guī)格示例:c6.22xlarge.2.physical
  • pm: 裸金屬服務(wù)器

nodeTemplate

NodeSpec object

節(jié)點(diǎn)池模板詳細(xì)參數(shù)。

initialNodeCount

Integer

節(jié)點(diǎn)池初始化節(jié)點(diǎn)個(gè)數(shù)。查詢(xún)時(shí)為節(jié)點(diǎn)池目標(biāo)節(jié)點(diǎn)數(shù)量。

autoscaling

NodePoolNodeAutoscaling object

彈性伸縮參數(shù)。

nodeManagement

NodeManagement object

節(jié)點(diǎn)管理相關(guān)配置

podSecurityGroups

Array of SecurityID objects

安全組相關(guān)配置, 僅turbo集群支持配置該參數(shù)。

customSecurityGroups

Array of strings

節(jié)點(diǎn)池自定義安全組相關(guān)配置。支持節(jié)點(diǎn)池新擴(kuò)容節(jié)點(diǎn)綁定指定的安全組。

  • 未指定安全組ID,新建節(jié)點(diǎn)將添加Node節(jié)點(diǎn)默認(rèn)安全組。
  • 指定有效安全組ID,新建節(jié)點(diǎn)將使用指定安全組。
  • 指定安全組,應(yīng)避免對(duì)CCE運(yùn)行依賴(lài)的端口規(guī)則進(jìn)行修改。詳細(xì)設(shè)置請(qǐng)參考集群安全組規(guī)則配置。
表13 NodeSpec

參數(shù)

參數(shù)類(lèi)型

描述

flavor

String

節(jié)點(diǎn)的規(guī)格,CCE支持的節(jié)點(diǎn)規(guī)格請(qǐng)參考節(jié)點(diǎn)規(guī)格說(shuō)明獲取。

az

String

待創(chuàng)建節(jié)點(diǎn)所在的可用區(qū),需要指定可用區(qū)(AZ)的名稱(chēng)。 CCE支持的可用區(qū)請(qǐng)參考地區(qū)和終端節(jié)點(diǎn)

os

String

節(jié)點(diǎn)的操作系統(tǒng)類(lèi)型。具體支持的操作系統(tǒng)請(qǐng)參見(jiàn)節(jié)點(diǎn)操作系統(tǒng)說(shuō)明。

說(shuō)明:
  • 系統(tǒng)會(huì)根據(jù)集群版本自動(dòng)選擇支持的系統(tǒng)版本。當(dāng)前集群版本不支持該系統(tǒng)類(lèi)型,則會(huì)報(bào)錯(cuò)。
  • 若在創(chuàng)建節(jié)點(diǎn)時(shí)指定了extendParam中的alpha.cce/NodeImageID參數(shù),可以不填寫(xiě)此參數(shù)。
  • 創(chuàng)建節(jié)點(diǎn)池時(shí),該參數(shù)為必選。

login

Login object

節(jié)點(diǎn)的登錄方式。密鑰對(duì)和密碼登錄方式二者必選其一。

rootVolume

Volume object

節(jié)點(diǎn)的磁盤(pán)信息

dataVolumes

Array of Volume objects

節(jié)點(diǎn)的數(shù)據(jù)盤(pán)參數(shù)(目前已支持通過(guò)控制臺(tái)為CCE節(jié)點(diǎn)添加第二塊數(shù)據(jù)盤(pán))。 如果數(shù)據(jù)盤(pán)正供容器運(yùn)行時(shí)和Kubelet組件使用,則不可被卸載,否則將導(dǎo)致節(jié)點(diǎn)不可用。 針對(duì)專(zhuān)屬云節(jié)點(diǎn),參數(shù)解釋與rootVolume一致

storage

Storage object

磁盤(pán)初始化配置管理參數(shù)。

該參數(shù)配置邏輯較為復(fù)雜,詳細(xì)說(shuō)明請(qǐng)參見(jiàn)節(jié)點(diǎn)磁盤(pán)掛載。

該參數(shù)缺省時(shí),按照extendParam中的DockerLVMConfigOverride(已廢棄)參數(shù)進(jìn)行磁盤(pán)管理。此參數(shù)對(duì)1.15.11及以上集群版本支持。

說(shuō)明:

如存在節(jié)點(diǎn)規(guī)格涉及本地盤(pán)并同時(shí)使用 云硬盤(pán) 場(chǎng)景時(shí),請(qǐng)勿缺省此參數(shù),避免出現(xiàn)將用戶(hù)未期望的磁盤(pán)分區(qū)。

publicIP

NodePublicIP object

節(jié)點(diǎn)的 彈性公網(wǎng)IP

說(shuō)明:

創(chuàng)建節(jié)點(diǎn)池添加節(jié)點(diǎn)時(shí)不支持該參數(shù)。

nodeNicSpec

NodeNicSpec object

節(jié)點(diǎn)的網(wǎng)卡信息

count

Integer

批量創(chuàng)建時(shí)節(jié)點(diǎn)的個(gè)數(shù),必須為大于等于1,小于等于最大限額的正整數(shù)。作用于節(jié)點(diǎn)池時(shí)該項(xiàng)可以不填寫(xiě)。

billingMode

Integer

節(jié)點(diǎn)的計(jì)費(fèi)模式:

  • 0: 按需付費(fèi)
  • 1: 包周期
  • 2: 已廢棄:自動(dòng)付費(fèi)包周期

taints

Array of Taint objects

支持給創(chuàng)建出來(lái)的節(jié)點(diǎn)加Taints來(lái)設(shè)置反親和性,taints配置不超過(guò)20條。每條Taints包含以下3個(gè)參數(shù):

  • Key:必須以字母或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符;另外可以使用DNS子域作為前綴。
  • Value:必須以字符或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符。
  • Effect:只可選NoSchedule,PreferNoSchedule或NoExecute。 字段使用場(chǎng)景:在節(jié)點(diǎn)創(chuàng)建場(chǎng)景下,支持指定初始值,查詢(xún)時(shí)不返回該字段;在節(jié)點(diǎn)池場(chǎng)景下,其中節(jié)點(diǎn)模板中支持指定初始值,查詢(xún)時(shí)支持返回該字段;在其余場(chǎng)景下,查詢(xún)時(shí)都不會(huì)返回該字段。

示例:

"taints": [{
  "key": "status",
  "value": "unavailable",
  "effect": "NoSchedule"
}, {
  "key": "looks",
  "value": "bad",
  "effect": "NoSchedule"
}]

k8sTags

Map<String,String>

格式為key/value鍵值對(duì)。鍵值對(duì)個(gè)數(shù)不超過(guò)20條。

  • Key:必須以字母或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符;另外可以使用DNS子域作為前綴,例如example.com/my-key,DNS子域最長(zhǎng)253個(gè)字符。
  • Value:可以為空或者非空字符串,非空字符串必須以字符或數(shù)字開(kāi)頭,可以包含字母、數(shù)字、連字符、下劃線(xiàn)和點(diǎn),最長(zhǎng)63個(gè)字符。 字段使用場(chǎng)景:在節(jié)點(diǎn)創(chuàng)建場(chǎng)景下,支持指定初始值,查詢(xún)時(shí)不返回該字段;在節(jié)點(diǎn)池場(chǎng)景下,其中節(jié)點(diǎn)模板中支持指定初始值,查詢(xún)時(shí)支持返回該字段;在其余場(chǎng)景下,查詢(xún)時(shí)都不會(huì)返回該字段。

示例:

"k8sTags": {
  "key": "value"
}

ecsGroupId

String

云服務(wù)器組ID,若指定,將節(jié)點(diǎn)創(chuàng)建在該云服務(wù)器組下

dedicatedHostId

String

指定DeH主機(jī)的ID,將節(jié)點(diǎn)調(diào)度到自己的DeH上。

說(shuō)明:

創(chuàng)建節(jié)點(diǎn)池添加節(jié)點(diǎn)時(shí)不支持該參數(shù)。

userTags

Array of UserTag objects

云服務(wù)器標(biāo)簽,鍵必須唯一,CCE支持的最大用戶(hù)自定義標(biāo)簽數(shù)量依region而定,自定義標(biāo)簽數(shù)上限為8個(gè)。 字段使用場(chǎng)景:在節(jié)點(diǎn)創(chuàng)建場(chǎng)景下,支持指定初始值,查詢(xún)時(shí)不返回該字段;在節(jié)點(diǎn)池場(chǎng)景下,其中節(jié)點(diǎn)模板中支持指定初始值,查詢(xún)時(shí)支持返回該字段;在其余場(chǎng)景下,查詢(xún)時(shí)都不會(huì)返回該字段。

說(shuō)明:

標(biāo)簽鍵只能包含大寫(xiě)字母.小寫(xiě)字母、數(shù)字和特殊字符(-_)以及Unicode字符,長(zhǎng)度不超過(guò)36個(gè)字符。

runtime

Runtime object

容器運(yùn)行時(shí), 默認(rèn)場(chǎng)景:

  • 1.25以下集群:默認(rèn)為"docker"
  • 1.25及以上集群,隨操作系統(tǒng)變化,默認(rèn)的容器運(yùn)行時(shí)不同:操作系統(tǒng)為歐拉2.5、歐拉2.8的節(jié)點(diǎn)默認(rèn)為"docker",其余操作系統(tǒng)的節(jié)點(diǎn)默認(rèn)為"containerd"

initializedConditions

Array of strings

自定義初始化標(biāo)記。

CCE節(jié)點(diǎn)在初始化完成之前,會(huì)打上初始化未完成污點(diǎn)(node.cloudprovider.kubernetes.io/uninitialized)防止pod調(diào)度到節(jié)點(diǎn)上。

cce支持自定義初始化標(biāo)記,在接收到initializedConditions參數(shù)后,會(huì)將參數(shù)值轉(zhuǎn)換成節(jié)點(diǎn)標(biāo)簽,隨節(jié)點(diǎn)下發(fā),例如:cloudprovider.openvessel.io/inject-initialized-conditions=CCEInitial_CustomedInitial。

當(dāng)節(jié)點(diǎn)上設(shè)置了此標(biāo)簽,會(huì)輪詢(xún)節(jié)點(diǎn)的status.Conditions,查看conditions的type是否存在標(biāo)記名,如CCEInitial、CustomedInitial標(biāo)記,如果存在所有傳入的標(biāo)記,且狀態(tài)為T(mén)rue,認(rèn)為節(jié)點(diǎn)初始化完成,則移除初始化污點(diǎn)。

  • 必須以字母、數(shù)字組成,長(zhǎng)度范圍1-20位。
  • 標(biāo)記數(shù)量不超過(guò)2個(gè)

extendParam

NodeExtendParam object

創(chuàng)建節(jié)點(diǎn)時(shí)的擴(kuò)展參數(shù)。

表14 Login

參數(shù)

參數(shù)類(lèi)型

描述

sshKey

String

選擇密鑰對(duì)方式登錄時(shí)的密鑰對(duì)名稱(chēng)。

userPassword

UserPassword object

選擇密碼方式登錄時(shí)的帳號(hào)密碼信息,之后可通過(guò)此帳號(hào)密碼登錄節(jié)點(diǎn)。

表15 UserPassword

參數(shù)

參數(shù)類(lèi)型

描述

username

String

登錄帳號(hào),默認(rèn)為“root”

password

String

登錄密碼,若創(chuàng)建節(jié)點(diǎn)通過(guò)用戶(hù)名密碼方式,即使用該字段,則響應(yīng)體中該字段作屏蔽展示。 密碼復(fù)雜度要求:

  • 長(zhǎng)度為8-26位。
  • 密碼至少必須包含大寫(xiě)字母、小寫(xiě)字母、數(shù)字和特殊字符(!@$%^-_=+[{}]:,./?~#*)中的三種。
  • 密碼不能包含用戶(hù)名或用戶(hù)名的逆序。 創(chuàng)建節(jié)點(diǎn)時(shí)password字段需要加鹽加密,具體方法請(qǐng)參見(jiàn)創(chuàng)建節(jié)點(diǎn)時(shí)password字段加鹽加密
表16 Volume

參數(shù)

參數(shù)類(lèi)型

描述

size

Integer

磁盤(pán)大小,單位為GB

  • 系統(tǒng)盤(pán)取值范圍:40~1024
  • 數(shù)據(jù)盤(pán)取值范圍:100~32768

volumetype

String

磁盤(pán)類(lèi)型,取值請(qǐng)參見(jiàn)創(chuàng)建云服務(wù)器 中“root_volume字段數(shù)據(jù)結(jié)構(gòu)說(shuō)明”。

  • SAS:高IO,是指由SAS存儲(chǔ)提供資源的磁盤(pán)類(lèi)型。
  • SSD:超高IO,是指由SSD存儲(chǔ)提供資源的磁盤(pán)類(lèi)型。
  • SATA:普通IO,是指由SATA存儲(chǔ)提供資源的磁盤(pán)類(lèi)型。EVS已下線(xiàn)SATA磁盤(pán),僅存量節(jié)點(diǎn)有此類(lèi)型的磁盤(pán)。
  • ESSD:通用型SSD云硬盤(pán),是指由SSD存儲(chǔ)提供資源的磁盤(pán)類(lèi)型。
  • GPSDD:通用型SSD云硬盤(pán),是指由SSD存儲(chǔ)提供資源的磁盤(pán)類(lèi)型。
說(shuō)明:

了解不同磁盤(pán)類(lèi)型的詳細(xì)信息,鏈接請(qǐng)參見(jiàn)創(chuàng)建云服務(wù)器。

extendParam

Map<String,Object>

磁盤(pán)擴(kuò)展參數(shù),取值請(qǐng)參見(jiàn)創(chuàng)建云服務(wù)器中“extendparam”參數(shù)的描述。 鏈接請(qǐng)參見(jiàn)創(chuàng)建云服務(wù)器

cluster_id

String

云服務(wù)器系統(tǒng)盤(pán)對(duì)應(yīng)的存儲(chǔ)池的ID。僅用作專(zhuān)屬云集群, 專(zhuān)屬分布式存儲(chǔ) DSS的存儲(chǔ)池ID,即dssPoolID。

獲取方法請(qǐng)參見(jiàn)獲取單個(gè)專(zhuān)屬分布式存儲(chǔ)池詳情中“表3 響應(yīng)參數(shù)”的ID字段。

cluster_type

String

云服務(wù)器系統(tǒng)盤(pán)對(duì)應(yīng)的磁盤(pán)存儲(chǔ)類(lèi)型。僅用作專(zhuān)屬云集群,固定取值為dss。

hw:passthrough

Boolean

  • 使用SDI規(guī)格創(chuàng)建虛擬機(jī)時(shí)請(qǐng)關(guān)注該參數(shù),如果該參數(shù)值為true,說(shuō)明創(chuàng)建的為SCSI類(lèi)型的卷
  • 節(jié)點(diǎn)池類(lèi)型為ElasticBMS時(shí),此參數(shù)必須填寫(xiě)為true
  • 如存在節(jié)點(diǎn)規(guī)格涉及本地盤(pán)并同時(shí)使用云硬盤(pán)場(chǎng)景時(shí),請(qǐng)?jiān)O(shè)置磁盤(pán)初始化配置管理參數(shù),參見(jiàn)節(jié)點(diǎn)磁盤(pán)掛載

metadata

VolumeMetadata object

云硬盤(pán)加密信息,僅在創(chuàng)建節(jié)點(diǎn)系統(tǒng)盤(pán)或數(shù)據(jù)盤(pán)需加密時(shí)須填寫(xiě)。

表17 VolumeMetadata

參數(shù)

參數(shù)類(lèi)型

描述

__system__encrypted

String

表示云硬盤(pán)加密功能的字段,'0'代表不加密,'1'代表加密。

該字段不存在時(shí),云硬盤(pán)默認(rèn)為不加密。

__system__cmkid

String

用戶(hù)主密鑰ID,是metadata中的表示加密功能的字段,與__system__encrypted配合使用。

表18 Storage

參數(shù)

參數(shù)類(lèi)型

描述

storageSelectors

Array of StorageSelectors objects

磁盤(pán)選擇,根據(jù)matchLabels和storageType對(duì)匹配的磁盤(pán)進(jìn)行管理。磁盤(pán)匹配存在先后順序,靠前的匹配規(guī)則優(yōu)先匹配。

storageGroups

Array of StorageGroups objects

由多個(gè)存儲(chǔ)設(shè)備組成的存儲(chǔ)組,用于各個(gè)存儲(chǔ)空間的劃分。

表19 StorageSelectors

參數(shù)

參數(shù)類(lèi)型

描述

name

String

selector的名字,作為storageGroup中selectorNames的索引,因此各個(gè)selector間的名字不能重復(fù)。

storageType

String

存儲(chǔ)類(lèi)型,當(dāng)前僅支持evs(云硬盤(pán))或local(本地盤(pán));local存儲(chǔ)類(lèi)型不支持磁盤(pán)選擇,所有本地盤(pán)將被組成一個(gè)VG,因此也僅允許只有一個(gè)local類(lèi)型的storageSelector。

matchLabels

matchLabels object

evs盤(pán)的匹配字段,支持DataVolume中的size、volumeType、metadataEncrypted、metadataCmkid、count五個(gè)字段。

表20 matchLabels

參數(shù)

參數(shù)類(lèi)型

描述

size

String

匹配的磁盤(pán)大小,不填則無(wú)磁盤(pán)大小限制。例如:100.

volumeType

String

云硬盤(pán)類(lèi)型,目前支持SSD\GPSSD\SAS\ESSD\SATA等。

metadataEncrypted

String

磁盤(pán)加密標(biāo)識(shí)符,0代表不加密,1代表加密。

metadataCmkid

String

加密磁盤(pán)的用戶(hù)主密鑰ID,長(zhǎng)度為36字節(jié)的字符串。

count

String

磁盤(pán)選擇個(gè)數(shù),不填則選擇所有此類(lèi)磁盤(pán)。

表21 StorageGroups

參數(shù)

參數(shù)類(lèi)型

描述

name

String

storageGroups的名字,作為虛擬存儲(chǔ)組的名字,因此各個(gè)group名字不能重復(fù)。

說(shuō)明:

|

  • 當(dāng)cceManaged=ture時(shí),name必須為:vgpass。
  • 當(dāng)數(shù)據(jù)盤(pán)作為臨時(shí)存儲(chǔ)卷時(shí):name必須為:vg-everest-localvolume-ephemeral。
  • 當(dāng)數(shù)據(jù)盤(pán)作為持久存儲(chǔ)卷時(shí):name必須為:vg-everest-localvolume-persistent。

cceManaged

Boolean

k8s及runtime所屬存儲(chǔ)空間。有且僅有一個(gè)group被設(shè)置為true,不填默認(rèn)false。

selectorNames

Array of strings

對(duì)應(yīng)storageSelectors中的name,一個(gè)group可選擇多個(gè)selector;但一個(gè)selector只能被一個(gè)group選擇。

virtualSpaces

Array of VirtualSpace objects

group中空間配置的詳細(xì)管理。

表22 VirtualSpace

參數(shù)

參數(shù)類(lèi)型

描述

name

String

virtualSpace的名稱(chēng),當(dāng)前僅支持三種類(lèi)型:kubernetes、runtime、user。

  • kubernetes:k8s空間配置,需配置lvmConfig;
  • runtime:運(yùn)行時(shí)空間配置,需配置runtimeConfig;
  • user:用戶(hù)空間配置,需配置lvmConfig

size

String

virtualSpace的大小,僅支持整數(shù)百分比。例如:90%。

說(shuō)明:

一個(gè)group中所有virtualSpace的百分比之和不得超過(guò)100%

lvmConfig

LVMConfig object

lvm配置管理,適用于kubernetes和user空間配置。 需要注意:一個(gè)virtualSpace僅支持一個(gè)config配置。

runtimeConfig

RuntimeConfig object

runtime配置管理,適用于運(yùn)行時(shí)空間配置。 需要注意:一個(gè)virtualSpace僅支持一個(gè)config配置。

表23 LVMConfig

參數(shù)

參數(shù)類(lèi)型

描述

lvType

String

LVM寫(xiě)入模式:linear、striped。linear:線(xiàn)性模式;striped:條帶模式,使用多塊磁盤(pán)組成條帶模式,能夠提升磁盤(pán)性能。

path

String

磁盤(pán)掛載路徑。僅在用戶(hù)配置中生效。支持包含:數(shù)字、大小寫(xiě)字母、點(diǎn)、中劃線(xiàn)、下劃線(xiàn)的絕對(duì)路徑。

表24 RuntimeConfig

參數(shù)

參數(shù)類(lèi)型

描述

lvType

String

LVM寫(xiě)入模式:linear、striped。linear:線(xiàn)性模式;striped:條帶模式,使用多塊磁盤(pán)組成條帶模式,能夠提升磁盤(pán)性能。

表25 NodePublicIP

參數(shù)

參數(shù)類(lèi)型

描述

ids

Array of strings

已有的彈性IP的ID列表。數(shù)量不得大于待創(chuàng)建節(jié)點(diǎn)數(shù)

說(shuō)明:

若已配置ids參數(shù),則無(wú)需配置count和eip參數(shù)

count

Integer

要?jiǎng)討B(tài)創(chuàng)建的彈性IP個(gè)數(shù)。

說(shuō)明:

count參數(shù)與eip參數(shù)必須同時(shí)配置。

eip

NodeEIPSpec object

彈性IP參數(shù)

表26 NodeEIPSpec

參數(shù)

參數(shù)類(lèi)型

描述

iptype

String

彈性IP類(lèi)型,取值請(qǐng)參見(jiàn)申請(qǐng)EIP接口中publicip.type說(shuō)明。 鏈接請(qǐng)參見(jiàn)申請(qǐng)EIP

bandwidth

NodeBandwidth object

彈性IP的帶寬參數(shù)

表27 NodeBandwidth

參數(shù)

參數(shù)類(lèi)型

描述

chargemode

String

帶寬的計(jì)費(fèi)類(lèi)型:

  • 未傳該字段,表示按帶寬計(jì)費(fèi)。 - 字段值為空,表示按帶寬計(jì)費(fèi)。
  • 字段值為“traffic”,表示按流量計(jì)費(fèi)。
  • 字段為其它值,會(huì)導(dǎo)致創(chuàng)建云服務(wù)器失敗。
說(shuō)明:
  • 按帶寬計(jì)費(fèi):按公網(wǎng)傳輸速率(單位為Mbps)計(jì)費(fèi)。當(dāng)您的帶寬利用率高于10%時(shí),建議優(yōu)先選擇按帶寬計(jì)費(fèi)。
  • 按流量計(jì)費(fèi):只允許在創(chuàng)建按需節(jié)點(diǎn)時(shí)指定,按公網(wǎng)傳輸?shù)臄?shù)據(jù)總量(單位為GB)計(jì)費(fèi)。當(dāng)您的帶寬利用率低于10%時(shí),建議優(yōu)先選擇按流量計(jì)費(fèi)。

size

Integer

帶寬大小,取值請(qǐng)參見(jiàn)取值請(qǐng)參見(jiàn)申請(qǐng)EIP接口中bandwidth.size說(shuō)明。 鏈接請(qǐng)參見(jiàn)申請(qǐng)EIP

sharetype

String

帶寬的共享類(lèi)型,共享類(lèi)型枚舉:PER,表示獨(dú)享,目前僅支持獨(dú)享。

表28 NodeNicSpec

參數(shù)

參數(shù)類(lèi)型

描述

primaryNic

NicSpec object

主網(wǎng)卡的描述信息。

extNics

Array of NicSpec objects

擴(kuò)展網(wǎng)卡

說(shuō)明:

創(chuàng)建節(jié)點(diǎn)池添加節(jié)點(diǎn)時(shí)不支持該參數(shù)。

表29 NicSpec

參數(shù)

參數(shù)類(lèi)型

描述

subnetId

String

網(wǎng)卡所在子網(wǎng)的網(wǎng)絡(luò)ID。主網(wǎng)卡創(chuàng)建時(shí)若未指定subnetId,將使用集群子網(wǎng)。擴(kuò)展網(wǎng)卡創(chuàng)建時(shí)必須指定subnetId。

fixedIps

Array of strings

主網(wǎng)卡的IP將通過(guò)fixedIps指定,數(shù)量不得大于創(chuàng)建的節(jié)點(diǎn)數(shù)。fixedIps或ipBlock同時(shí)只能指定一個(gè)。擴(kuò)展網(wǎng)卡不支持指定fiexdIps。

ipBlock

String

主網(wǎng)卡的IP段的CIDR格式,創(chuàng)建的節(jié)點(diǎn)IP將屬于該IP段內(nèi)。fixedIps或ipBlock同時(shí)只能指定一個(gè)。

表30 Taint

參數(shù)

參數(shù)類(lèi)型

描述

key

String

value

String

effect

String

作用效果

表31 UserTag

參數(shù)

參數(shù)類(lèi)型

描述

key

String

云服務(wù)器標(biāo)簽的鍵。不得以"CCE-"或"__type_baremetal"開(kāi)頭

value

String

云服務(wù)器標(biāo)簽的值

表32 Runtime

參數(shù)

參數(shù)類(lèi)型

描述

name

String

容器運(yùn)行時(shí),默認(rèn)場(chǎng)景:

  • v1.25以下集群:默認(rèn)為"docker"
  • v1.25及以上集群,隨操作系統(tǒng)變化,默認(rèn)的容器運(yùn)行時(shí)不同:操作系統(tǒng)為EulerOS 2.5、EulerOS 2.8的節(jié)點(diǎn)默認(rèn)為"docker",其余操作系統(tǒng)的節(jié)點(diǎn)默認(rèn)為"containerd"
表33 NodeExtendParam

參數(shù)

參數(shù)類(lèi)型

ecs:performancetype

String

orderID

String

productID

String

maxPods

Integer

periodType

String

periodNum

Integer

isAutoRenew

String

isAutoPay

String

DockerLVMConfigOverride

String

dockerBaseSize

Integer

publicKey

String

alpha.cce/preInstall

String

alpha.cce/postInstall

String

alpha.cce/NodeImageID

String

nicMultiqueue

String

nicThreshold

String

chargingMode

Integer

agency_name

String

kube-reserved-mem

Integer

system-reserved-mem

Integer

表34 NodePoolNodeAutoscaling

參數(shù)

參數(shù)類(lèi)型

描述

enable

Boolean

是否開(kāi)啟自動(dòng)擴(kuò)縮容

minNodeCount

Integer

若開(kāi)啟自動(dòng)擴(kuò)縮容,最小能縮容的節(jié)點(diǎn)個(gè)數(shù)。不可大于集群規(guī)格所允許的節(jié)點(diǎn)上限

maxNodeCount

Integer

若開(kāi)啟自動(dòng)擴(kuò)縮容,最大能擴(kuò)容的節(jié)點(diǎn)個(gè)數(shù),應(yīng)大于等于 minNodeCount,且不超過(guò)集群規(guī)格對(duì)應(yīng)的節(jié)點(diǎn)數(shù)量上限。

scaleDownCooldownTime

Integer

節(jié)點(diǎn)保留時(shí)間,單位為分鐘,擴(kuò)容出來(lái)的節(jié)點(diǎn)在這個(gè)時(shí)間內(nèi)不會(huì)被縮掉

priority

Integer

節(jié)點(diǎn)池權(quán)重,更高的權(quán)重在擴(kuò)容時(shí)擁有更高的優(yōu)先級(jí)

表35 NodeManagement

參數(shù)

參數(shù)類(lèi)型

描述

serverGroupReference

String

云服務(wù)器組ID,若指定,節(jié)點(diǎn)池中所有節(jié)點(diǎn)將創(chuàng)建在該云服務(wù)器組下,節(jié)點(diǎn)池的云服務(wù)器組只能在創(chuàng)建時(shí)指定,無(wú)法修改。指定云服務(wù)器組時(shí)節(jié)點(diǎn)池中的節(jié)點(diǎn)數(shù)量不允許超出云服務(wù)器組的配額限制。

表36 SecurityID

參數(shù)

參數(shù)類(lèi)型

描述

id

String

安全組ID。

表37 NodePoolStatus

參數(shù)

參數(shù)類(lèi)型

描述

currentNode

Integer

當(dāng)前節(jié)點(diǎn)池中所有節(jié)點(diǎn)數(shù)量(不含刪除中的節(jié)點(diǎn))。

creatingNode

Integer

當(dāng)前節(jié)點(diǎn)池中處于創(chuàng)建流程中的節(jié)點(diǎn)數(shù)量。

deletingNode

Integer

當(dāng)前節(jié)點(diǎn)池中刪除中的節(jié)點(diǎn)數(shù)量。

phase

String

節(jié)點(diǎn)池狀態(tài)。

  • 空值:可用(節(jié)點(diǎn)池當(dāng)前節(jié)點(diǎn)數(shù)已達(dá)到預(yù)期,且無(wú)伸縮中的節(jié)點(diǎn))
  • Synchronizing:伸縮中(節(jié)點(diǎn)池當(dāng)前節(jié)點(diǎn)數(shù)未達(dá)到預(yù)期,且無(wú)伸縮中的節(jié)點(diǎn))
  • Synchronized:伸縮等待中(節(jié)點(diǎn)池當(dāng)前節(jié)點(diǎn)數(shù)未達(dá)到預(yù)期,或者存在伸縮中的節(jié)點(diǎn))
  • SoldOut:節(jié)點(diǎn)池當(dāng)前不可擴(kuò)容(兼容字段,標(biāo)記節(jié)點(diǎn)池資源售罄、資源配額不足等不可擴(kuò)容狀態(tài))
說(shuō)明:

上述節(jié)點(diǎn)池狀態(tài)已廢棄,僅兼容保留,不建議使用,替代感知方式如下:

  • 節(jié)點(diǎn)池?cái)U(kuò)縮狀態(tài):可通過(guò)currentNode/creatingNode/deletingNode節(jié)點(diǎn)狀態(tài)統(tǒng)計(jì)信息,精確感知當(dāng)前節(jié)點(diǎn)池?cái)U(kuò)縮狀態(tài)。
  • 節(jié)點(diǎn)池可擴(kuò)容狀態(tài):可通過(guò)conditions感知節(jié)點(diǎn)池詳細(xì)狀態(tài),其中"Scalable"可替代SoldOut語(yǔ)義。
  • Deleting:刪除中
  • Error:錯(cuò)誤

jobId

String

對(duì)節(jié)點(diǎn)池執(zhí)行操作時(shí)的 JobID。

conditions

Array of NodePoolCondition objects

節(jié)點(diǎn)池當(dāng)前詳細(xì)狀態(tài)列表,詳情參見(jiàn)Condition類(lèi)型定義。

表38 NodePoolCondition

參數(shù)

參數(shù)類(lèi)型

描述

type

String

Condition類(lèi)型,當(dāng)前支持類(lèi)型如下

  • "Scalable":節(jié)點(diǎn)池實(shí)際的可擴(kuò)容狀態(tài),如果狀態(tài)為"False"時(shí)則不會(huì)再次觸發(fā)節(jié)點(diǎn)池?cái)U(kuò)容行為。
  • "QuotaInsufficient":節(jié)點(diǎn)池?cái)U(kuò)容依賴(lài)的配額不足,影響節(jié)點(diǎn)池可擴(kuò)容狀態(tài)。
  • "ResourceInsufficient":節(jié)點(diǎn)池?cái)U(kuò)容依賴(lài)的資源不足,影響節(jié)點(diǎn)池可擴(kuò)容狀態(tài)。
  • "UnexpectedError":節(jié)點(diǎn)池非預(yù)期擴(kuò)容失敗,影響節(jié)點(diǎn)池可擴(kuò)容狀態(tài)。
  • "LockedByOrder":包周期節(jié)點(diǎn)池被訂單鎖定,此時(shí)Reason為待支付訂單ID。
  • "Error":節(jié)點(diǎn)池錯(cuò)誤,通常由于刪除失敗觸發(fā)。

status

String

Condition當(dāng)前狀態(tài),取值如下

  • "True"
  • "False"

lastProbeTime

String

上次狀態(tài)檢查時(shí)間。

lastTransitTime

String

上次狀態(tài)變更時(shí)間。

reason

String

上次狀態(tài)變更原因。

message

String

Condition詳細(xì)描述。

請(qǐng)求示例

修改節(jié)點(diǎn)池中的節(jié)點(diǎn)數(shù)為1。

{
  "metadata" : {
    "name" : "lc-it-nodepool-3"
  },
  "spec" : {
    "nodeTemplate" : {
      "k8sTags" : { },
      "taints" : [ {
        "key" : "status",
        "value" : "unavailable",
        "effect" : "NoSchedule"
      } ],
      "userTags" : [ ]
    },
    "autoscaling" : {
      "enable" : false,
      "minNodeCount" : 0,
      "maxNodeCount" : 0,
      "scaleDownCooldownTime" : 0,
      "priority" : 0
    },
    "initialNodeCount" : 1
  }
}

響應(yīng)示例

狀態(tài)碼: 200

表示更新指定節(jié)點(diǎn)池成功。

{
  "kind" : "NodePool",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "lc-it-nodepool-3",
    "uid" : "1deef848-690d-11ea-a11b-0255ac1001b7"
  },
  "spec" : {
    "initialNodeCount" : 1,
    "type" : "vm",
    "nodeTemplate" : {
      "flavor" : "Sit3.xlarge.2",
      "az" : "******",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      },
      "rootVolume" : {
        "volumetype" : "SAS",
        "size" : 40
      },
      "dataVolumes" : [ {
        "volumetype" : "SAS",
        "size" : 100,
        "extendParam" : {
          "useType" : "docker"
        }
      } ],
      "publicIP" : {
        "eip" : {
          "bandwidth" : { }
        }
      },
      "nodeNicSpec" : {
        "primaryNic" : {
          "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        }
      },
      "billingMode" : 0,
      "extendParam" : {
        "maxPods" : 110
      },
      "k8sTags" : {
        "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-3"
      }
    },
    "autoscaling" : { },
    "nodeManagement" : { }
  },
  "status" : {
    "phase" : ""
  }
}

SDK代碼示例

SDK代碼示例如下。

  • Java
  • Python
  • Go
  • 更多

修改節(jié)點(diǎn)池中的節(jié)點(diǎn)數(shù)為1。

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;
import java.util.Map;
import java.util.HashMap;

public class UpdateNodePoolSolution {

    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();
        UpdateNodePoolRequest request = new UpdateNodePoolRequest();
        request.withClusterId("<cluster_id>");
        request.withNodepoolId("<nodepool_id>");
        NodePoolUpdate body = new NodePoolUpdate();
        NodePoolNodeAutoscaling autoscalingSpec = new NodePoolNodeAutoscaling();
        autoscalingSpec.withEnable(false)
            .withMinNodeCount(0)
            .withMaxNodeCount(0)
            .withScaleDownCooldownTime(0)
            .withPriority(0);
        List<Taint> listNodeTemplateTaints = new ArrayList<>();
        listNodeTemplateTaints.add(
            new Taint()
                .withKey("status")
                .withValue("unavailable")
                .withEffect(Taint.EffectEnum.fromValue("NoSchedule"))
        );
        NodeSpecUpdate nodeTemplateSpec = new NodeSpecUpdate();
        nodeTemplateSpec.withTaints(listNodeTemplateTaints);
        NodePoolSpecUpdate specbody = new NodePoolSpecUpdate();
        specbody.withNodeTemplate(nodeTemplateSpec)
            .withInitialNodeCount(1)
            .withAutoscaling(autoscalingSpec);
        NodePoolMetadataUpdate metadatabody = new NodePoolMetadataUpdate();
        metadatabody.withName("lc-it-nodepool-3");
        body.withSpec(specbody);
        body.withMetadata(metadatabody);
        request.withBody(body);
        try {
            UpdateNodePoolResponse response = client.updateNodePool(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());
        }
    }
}

修改節(jié)點(diǎn)池中的節(jié)點(diǎn)數(shù)為1。

# 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 = UpdateNodePoolRequest()
        request.cluster_id = "<cluster_id>"
        request.nodepool_id = "<nodepool_id>"
        autoscalingSpec = NodePoolNodeAutoscaling(
            enable=False,
            min_node_count=0,
            max_node_count=0,
            scale_down_cooldown_time=0,
            priority=0
        )
        listTaintsNodeTemplate = [
            Taint(
                key="status",
                value="unavailable",
                effect="NoSchedule"
            )
        ]
        nodeTemplateSpec = NodeSpecUpdate(
            taints=listTaintsNodeTemplate
        )
        specbody = NodePoolSpecUpdate(
            node_template=nodeTemplateSpec,
            initial_node_count=1,
            autoscaling=autoscalingSpec
        )
        metadatabody = NodePoolMetadataUpdate(
            name="lc-it-nodepool-3"
        )
        request.body = NodePoolUpdate(
            spec=specbody,
            metadata=metadatabody
        )
        response = client.update_node_pool(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

修改節(jié)點(diǎn)池中的節(jié)點(diǎn)數(shù)為1。

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.UpdateNodePoolRequest{}
	request.ClusterId = "<cluster_id>"
	request.NodepoolId = "<nodepool_id>"
	enableAutoscaling:= false
	minNodeCountAutoscaling:= int32(0)
	maxNodeCountAutoscaling:= int32(0)
	scaleDownCooldownTimeAutoscaling:= int32(0)
	priorityAutoscaling:= int32(0)
	autoscalingSpec := &model.NodePoolNodeAutoscaling{
		Enable: &enableAutoscaling,
		MinNodeCount: &minNodeCountAutoscaling,
		MaxNodeCount: &maxNodeCountAutoscaling,
		ScaleDownCooldownTime: &scaleDownCooldownTimeAutoscaling,
		Priority: &priorityAutoscaling,
	}
	valueTaints:= "unavailable"
	var listTaintsNodeTemplate = []model.Taint{
        {
            Key: "status",
            Value: &valueTaints,
            Effect: model.GetTaintEffectEnum().NO_SCHEDULE,
        },
    }
	nodeTemplateSpec := &model.NodeSpecUpdate{
		Taints: listTaintsNodeTemplate,
	}
	specbody := &model.NodePoolSpecUpdate{
		NodeTemplate: nodeTemplateSpec,
		InitialNodeCount: int32(1),
		Autoscaling: autoscalingSpec,
	}
	metadatabody := &model.NodePoolMetadataUpdate{
		Name: "lc-it-nodepool-3",
	}
	request.Body = &model.NodePoolUpdate{
		Spec: specbody,
		Metadata: metadatabody,
	}
	response, err := client.UpdateNodePool(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

狀態(tài)碼

狀態(tài)碼

描述

200

表示更新指定節(jié)點(diǎn)池成功。

錯(cuò)誤碼

請(qǐng)參見(jiàn)錯(cuò)誤碼。