文档首页 > > API参考> API> 集群管理>

更新指定的节点

更新指定的节点

分享
更新时间:2021/04/30 GMT+08:00

功能介绍

该API用于更新指定的节点。

  • 当前仅支持更新metadata下的name字段,即节点的名字。

  • 集群管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。

调试

您可以在API Explorer中调试该接口。

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见如何获取接口URI中参数

cluster_id

String

集群 ID,获取方式请参见如何获取接口URI中参数

node_id

String

节点ID,获取方式请参见如何获取接口URI中参数

表2 Query参数

参数

是否必选

参数类型

描述

errorStatus

String

集群状态兼容Error参数,用于API平滑切换。 兼容场景下,errorStatus为空则屏蔽Error状态为Deleting状态。

最小长度:0

最大长度:10

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式)

缺省值:application/json

X-Auth-Token

String

"调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。"

最大长度:16384

表4 请求Body参数

参数

是否必选

参数类型

描述

metadata

CCEClusterNodeInformationMetadata object

metadata是节点对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。

表5 CCEClusterNodeInformationMetadata

参数

是否必选

参数类型

描述

name

String

节点名称

说明:

修改节点名称后,弹性云服务器名称(虚拟机名称)会同步修改。

命名规则:以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围1-56位,且不能以中划线(-)结尾。

响应参数

状态码: 200

表6 响应Body参数

参数

参数类型

描述

kind

String

API类型,固定值“Node”,该值不可修改。

缺省值:Node

apiVersion

String

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

缺省值:v3

metadata

NodeMetadata object

metadata是节点对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。

spec

V3NodeSpec object

spec是集合类的元素类型,用户对需要管理的节点对象进行详细描述的主体部分都在spec中给出。系统通过spec的描述来创建或更新对象。

status

V3NodeStatus object

节点状态,动态记录,创建或修改时指定无意义.

表7 NodeMetadata

参数

参数类型

描述

name

String

节点名称

说明:

命名规则:以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围1-56位,且不能以中划线(-)结尾。

最小长度:1

最大长度:56

uid

String

节点ID,资源唯一标识,创建成功后自动生成,填写无效

labels

Map<String,String>

CCE自有节点标签,非Kubernetes原生labels。

标签可用于选择对象并查找满足某些条件的对象集合,格式为key/value键值对。

示例:

"labels": {
  "key" : "value"
}

annotations

Map<String,String>

CCE自有节点注解,非Kubernetes原生annotations,格式为key/value键值对。

示例:

"annotations": {
  "key1" : "value1",
  "key2" : "value2"
}
说明:

Annotations不用于标识和选择对象。Annotations中的元数据可以是small 或large,structured 或unstructured,并且可以包括标签不允许使用的字符。

creationTimestamp

String

创建时间,创建成功后自动生成,填写无效

updateTimestamp

String

更新时间,创建成功后自动生成,填写无效

表8 V3NodeSpec

参数

参数类型

描述

flavor

String

节点的规格

最小长度:1

最大长度:50

az

String

节点所在的可用区名. 底层实际存在,位于该用户物理可用区组之内的可用区

最大长度:200

os

String

节点的操作系统类型。

  • 对于虚拟机节点,可以配置为“EulerOS”、“CentOS”、“Debian”、“Ubuntu”。默认为"EulerOS"。

说明:

系统会根据集群版本自动选择支持的系统版本。当前集群版本不支持该系统类型,则会报错。

  • 对于自动付费包周期的裸金属节点,只支持EulerOS 2.3、EulerOS 2.5、EulerOS 2.8。

  • 若在创建节点时指定了extendParam中的alpha.cce/NodeImageID参数,可以不填写此参数。

login

Login object

节点的登录方式

rootVolume

V3Volume object

节点的磁盘信息

dataVolumes

Array of V3Volume objects

节点的数据盘参数(目前已支持通过控制台为CCE节点添加第二块数据盘)。

针对专属云节点,参数解释与rootVolume一致

publicIP

V3NodePublicIP object

节点的弹性公网IP

nodeNicSpec

NodeNicSpec object

节点的网卡信息

count

Integer

批量创建时节点的个数,必须为大于等于1,小于等于最大限额的正整数。作用于节点池时该项允许为0

billingMode

Integer

节点的计费模式:取值为 0(按需付费)、2(自动付费包周期)

自动付费包周期支持普通用户token。

说明:

创建按需节点不影响集群状态;创建包周期节点时,集群状态会转换为“扩容中”。

taints

Array of Taint objects

支持给创建出来的节点加Taints来设置反亲和性,每条Taints包含以下3个参数:

  • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀。

  • Value:必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。

  • Effect:只可选NoSchedule,PreferNoSchedule或NoExecute。

示例:

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

k8sTags

Map<String,String>

格式为key/value键值对。键值对个数不超过20条。

  • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀,例如example.com/my-key, DNS子域最长253个字符。

  • Value:可以为空或者非空字符串,非空字符串必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。

示例:

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

ecsGroupId

String

云服务器组ID,若指定,将节点创建在该云服务器组下

dedicatedHostId

String

指定DeH主机的ID,将节点调度到自己的DeH上。\n>创建节点池添加节点时不支持该参数。

offloadNode

Boolean

是否CCE Turbo集群节点

说明:

创建节点池添加节点时不支持该参数。

userTags

Array of UserTag objects

云服务器标签,键必须唯一,CCE支持的最大用户自定义标签数量依region而定,自定义标签数上限最少为5个。

runtime

Runtime object

extendParam

Map<String,Object>

创建节点时的扩展参数,可选参数如下:

  • chargingMode: 节点的计费模式。按需计费,取值为“0”,若不填,则默认为“0”。

  • ecs:performancetype:云服务器规格的分类。裸金属节点无该字段。

  • orderID: 订单ID,节点付费类型为自动付费包周期类型时,响应中会返回此字段。

  • productID: 产品ID。

  • maxPods: 节点最大允许创建的实例数(Pod),该数量包含系统默认实例,取值范围为16~256。 该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。

  • periodType: 订购周期类型,取值范围:

    • month:月

    • year:年

    说明:

    billingMode为2(自动付费包周期)时生效,且为必选。

  • periodNum: 订购周期数,取值范围:

    • periodType=month(周期类型为月)时,取值为[1-9]。

    • periodType=year(周期类型为年)时,取值为1。

    说明:

    billingMode为2时生效,且为必选。

  • isAutoRenew: 是否自动续订

    • “true”:自动续订

    • “false”:不自动续订

    说明:

    billingMode为2时生效,且为必选。

  • isAutoPay: 是否自动扣款

    • “true”:自动扣款

    • “false”:不自动扣款

    说明:

    billingMode为2时生效,不填写此参数时默认会自动扣款。

  • DockerLVMConfigOverride: Docker数据盘配置项。默认配置示例如下:

    "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

    包含如下字段:

    • userLV:用户空间的大小,示例格式:vgpaas/20%VG

    • userPath:用户空间挂载路径,示例格式:/home/wqt-test

    • diskType:磁盘类型,目前只有evs、hdd和ssd三种格式

    • lvType:逻辑卷的类型,目前支持linear和striped两种,示例格式:striped

    • dockerThinpool:Docker盘的空间大小,示例格式:vgpaas/60%VG

    • kubernetesLV:Kubelet空间大小,示例格式:vgpaas/20%VG

  • dockerBaseSize: Device mapper模式下,节点上Docker单容器的可用磁盘空间大小,OverlayFS模式(CCE Turbo集群中CentOS 7.6和Ubuntu 18.04节点,以及混合集群中Ubuntu 18.04节点)下不支持此字段。Device mapper模式下建议dockerBaseSize配置不超过80G,设置过大时可能会导致docker初始化时间过长而启动失败,若对容器磁盘大小有特殊要求,可考虑使用挂载外部或本地存储方式代替。

  • init-node-password: 节点初始密码

  • offloadNode: 是否为CCE Turbo集群节点

  • publicKey: 节点的公钥。

  • alpha.cce/preInstall: 安装前执行脚本

    说明:

    输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。

  • alpha.cce/postInstall: 安装后执行脚本

    说明:

    输入的值需要经过Base64编码,方法为echo -n "待编码内容" | base64。

  • alpha.cce/NodeImageID: 如果创建裸金属节点,需要使用自定义镜像时用此参数。

  • nicMultiqueue:

    • 弹性网卡队列数配置,默认配置示例如下:

    "[{\"queue\":4}]"

    包含如下字段:

    • queue: 弹性网卡队列数。

    • 仅在turbo集群的BMS节点时,该字段才可配置。

    • 当前支持可配置队列数以及弹性网卡数:{"1":128, "2":92, "4":92, "8":32, "16":16, "28":9}, 既1弹性网卡队列可绑定128张弹性网卡,2队列弹性网卡可绑定92张,以此类推。

    • 弹性网卡队列数越多,性能越强,但可绑定弹性网卡数越少,请根据您的需求进行配置(创建后不可修改)。

  • nicThreshold:

    • 弹性网卡预绑定比例配置,默认配置示例如下:

    "0.3:0.6"
    • 第一位小数:预绑定低水位,弹性网卡预绑定的最低比例(最小预绑定弹性网卡数 = ⌊节点的总弹性网卡数 * 预绑定低水位⌋)

    • 第二位小数:预绑定高水位,弹性网卡预绑定的最高比例(最大预绑定弹性网卡数 = ⌊节点的总弹性网卡数 * 预绑定高水位⌋)

    • BMS节点上绑定的弹性网卡数:Pod正在使用的弹性网卡数 + 最小预绑定弹性网卡数 < BMS节点上绑定的弹性网卡数 < Pod正在使用的弹性网卡数 + 最大预绑定弹性网卡数

    • BMS节点上当预绑定弹性网卡数 < 最小预绑定弹性网卡数时:会绑定弹性网卡,使得预绑定弹性网卡数 = 最小预绑定弹性网卡数

    • BMS节点上当预绑定弹性网卡数 > 最大预绑定弹性网卡数时:会定时解绑弹性网卡(约2分钟一次),直到预绑定弹性网卡数 = 最大预绑定弹性网卡数

    • 取值范围:[0.0, 1.0]; 一位小数; 低水位 <= 高水位

    • 仅在turbo集群的BMS节点时,该字段才可配置。

    • 弹性网卡预绑定能加快工作负载的创建,但会占用IP,请根据您的需求进行配置。

表9 Login

参数

参数类型

描述

sshKey

String

选择密钥对方式登录时的密钥对名称。密钥对和密码登录方式二者必选其一。

userPassword

UserPassword object

选择密码方式登录时的帐号密码信息,之后可通过此帐号密码登录节点。密钥对和密码登录方式二者必选其一。

表10 UserPassword

参数

参数类型

描述

username

String

登录帐号,默认为“root”

缺省值:root

password

String

登录密码,取值请参见创建云服务器adminPass参数的描述。若创建节点通过用户名密码方式,即使用该字段,则响应体中该字段作屏蔽展示。创建节点时password字段需要加盐加密,具体方法请参见创建节点时password字段加盐加密

表11 V3Volume

参数

参数类型

描述

size

Integer

磁盘大小,单位为GB

  • 系统盘取值范围:40~1024

  • 数据盘取值范围:100~32768

volumetype

String

磁盘类型,取值请参见创建云服务器 中“root_volume字段数据结构说明”。

  • SATA:普通IO,是指由SATA存储提供资源的磁盘类型。

  • SAS:高IO,是指由SAS存储提供资源的磁盘类型。

  • SSD:超高IO,是指由SSD存储提供资源的磁盘类型。

extendParam

Map<String,Object>

磁盘扩展参数,取值请参见创建云服务器中“extendparam”参数的描述。

cluster_id

String

云服务器系统盘对应的存储池的ID。仅用作专属云集群,专属分布式存储DSS的存储池ID,即dssPoolID。

获取方法请参见获取单个专属分布式存储池详情中“表3 响应参数”的ID字段。

cluster_type

String

云服务器系统盘对应的磁盘存储类型。仅用作专属云集群,固定取值为dss。

hw:passthrough

Boolean

  • 使用SDI规格创建虚拟机时请关注该参数,如果该参数值为true,说明创建的为SCSI类型的卷

  • 节点池类型为ElasticBMS时,此参数必须填写为true

metadata

VolumeMetadata object

云硬盘加密信息,仅在创建节点系统盘或数据盘需加密时须填写。

表12 VolumeMetadata

参数

参数类型

描述

__system__encrypted

String

表示云硬盘加密功能的字段,'0'代表不加密,'1'代表加密。

该字段不存在时,云硬盘默认为不加密。

__system__cmkid

String

用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。

表13 V3NodePublicIP

参数

参数类型

描述

ids

Array of strings

已有的弹性IP的ID列表。数量不得大于待创建节点数

说明:

若已配置ids参数,则无需配置count和eip参数

count

Integer

要动态创建的弹性IP个数。

说明:

count参数与eip参数必须同时配置。

eip

V3NodeEIPSpec object

弹性IP参数

表14 V3NodeEIPSpec

参数

参数类型

描述

iptype

String

弹性IP类型,取值请参见“创建云服务器 > eip字段数据结构说明”表中“iptype”参数的描述。

bandwidth

V3NodeBandwidth object

弹性IP的带宽参数

表15 V3NodeBandwidth

参数

参数类型

描述

chargemode

String

带宽的计费类型:

  • 未传该字段,表示按带宽计费。 - 字段值为空,表示按带宽计费。 - 字段值为“traffic”,表示按流量计费。 - 字段为其它值,会导致创建云服务器失败。

说明:
  • 按带宽计费:按公网传输速率(单位为Mbps)计费。当您的带宽利用率高于10%时,建议优先选择按带宽计费。

  • 按流量计费:只允许在创建按需节点时指定,按公网传输的数据总量(单位为GB)计费。当您的带宽利用率低于10%时,建议优先选择按流量计费。

size

String

带宽大小,取值请参见“创建云服务器 > bandwidth字段数据结构说明”表中“size”参数的描述。

sharetype

String

带宽的共享类型,取值请参见“创建云服务器 > bandwidth字段数据结构说明”表中“sharetype”参数的描述。

表16 NodeNicSpec

参数

参数类型

描述

primaryNic

NicSpec object

主网卡的描述信息。

extNics

Array of NicSpec objects

扩展网卡

表17 NicSpec

参数

参数类型

描述

subnetId

String

网卡所在子网的ID。

fixedIps

Array of strings

主网卡的IP将通过fixedIps指定,数量不得大于创建的节点数。fixedIps或ipBlock同时只能指定一个。

ipBlock

String

IP段的CIDR格式,创建的节点IP将属于该IP段内。fixedIps或ipBlock同时只能指定一个。

表18 Taint

参数

参数类型

描述

key

String

value

String

最大长度:63

effect

String

作用效果

枚举值:

  • NoSchedule

  • PreferNoSchedule

  • NoExecute

表19 UserTag

参数

参数类型

描述

key

String

云服务器标签的键。不得以"CCE-"或"__type_baremetal"开头

最小长度:1

最大长度:36

value

String

云服务器标签的值

最小长度:0

最大长度:43

表20 Runtime

参数

参数类型

描述

name

String

容器运行时,默认为“docker”

缺省值:docker

枚举值:

  • docker

  • containerd

表21 V3NodeStatus

参数

参数类型

描述

phase

String

节点状态。

枚举值:

  • Build

  • Installing

  • Installed

  • ShutDown

  • Upgrading

  • Active

  • Abnormal

  • Deleting

  • Error

jobID

String

创建或删除时的任务ID。

serverId

String

底层云服务器或裸金属节点ID。

privateIP

String

节点主网卡私有网段IP地址。

publicIP

String

节点弹性公网IP地址。如果ECS的数据没有实时同步,可在界面上通过“同步节点信息”手动进行更新。

deleteStatus

DeleteStatus object

删除资源时表示资源删除状态

表22 DeleteStatus

参数

参数类型

描述

previous_total

Integer

集群删除时已经存在的集群资源记录总数

current_total

Integer

基于当前集群资源记录信息,生成实际最新资源记录总数

updated

Integer

集群删除时更新的资源记录总数

added

Integer

集群删除时更新的资源记录总数

deleted

Integer

集群删除时删除的资源记录总数

请求示例

{
  "metadata" : {
    "name" : "new-hostname"
  }
}

响应示例

状态码: 200

表示更新指定节点成功。

{
  "kind" : "Node",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "new-hostname",
    "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
    "creationTimestamp" : " 2017-08-20T21:11:09Z",
    "updateTimestamp" : "2017-08-20T21:11:09Z",
    "annotations" : {
      "kubernetes.io/node-pool.id" : "az1.dc1#s1.medium#EulerOS 2.2"
    }
  },
  "spec" : {
    "flavor" : "s1.medium",
    "az" : "az1.dc1",
    "os" : "EulerOS 2.2",
    "login" : {
      "sshKey" : "KeyPair-0405",
      "userPassword" : { }
    },
    "rootVolume" : {
      "volumeType" : "SATA",
      "diskSize" : 40
    },
    "dataVolumes" : [ {
      "volumeType" : "SATA",
      "diskSize" : 100
    } ],
    "publicIP" : {
      "eip" : { }
    },
    "billingMode" : 0
  },
  "status" : {
    "phase" : "Active",
    "serverId" : "456789abc-9368-46f3-8f29-d1a95622a568",
    "publicIP" : "10.34.56.78",
    "privateIP" : "192.168.1.23"
  }
}

状态码

状态码

描述

200

表示更新指定节点成功。

错误码

请参见错误码

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问