调用DescribeClusterAttachScripts添加已有实例至ACK集群。该API返回唯一的可执行脚本。您获取脚本后,在已有节点上执行该脚本即可完成节点的接入。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求语法

POST /clusters/ClusterId/attachscript HTTP/1.1 
Content-Type:application/json
{
  "nodepool_id" : "String",
  "format_disk" : Boolean,
  "keep_instance_name" : Boolean,
  "rds_instances" : [ "String" ],
  "arch" : "String",
  "options" : "String"
}

请求参数

表 1. 请求Path参数
参数名称 类型 是否必选 示例 说明
ClusterId String ca375a93a30474552ad2a0ebe183e****

集群ID。

表 2. 请求Body参数
参数名称 类型 是否必选 示例 说明
nodepool_id String np1c9229d9be2d432c93f77a88fca0****

节点池ID,添加节点时可以将该节点添加到指定的节点池中。

说明 如果不指定节点池ID,默认将节点添加至默认节点池。
format_disk Boolean false

手动添加已有实例到集群时,是否对该实例进行数据盘挂载,将容器和镜像存储在数据盘上。取值:

  • true:对实例进行数据盘挂载,数据盘内原有数据将丢失,请注意备份数据。
  • false:不对实例进行数据盘挂载。

默认值:false

数据挂载规则:

  • 如果 ECS 已挂载数据盘,且最后一块数据盘的文件系统未初始化,系统会自动将该数据盘格式化为 ext4,用来存放内容/var/lib/docker、/var/lib/kubelet 。
  • 如果 ECS 未挂载数据盘,则不会挂载新的数据盘。
keep_instance_name Boolean true

添加已有实到集群时,是否保留实例名称。如果不保留,则实例名称格式为worker-k8s-for-cs-<clusterid>。取值:

  • true:保留实例名称。
  • false:不保留实例名称,会用系统规则进行替换。

默认值:true

rds_instances Array of String rm-xxx

RDS实例名称。

arch String amd64

节点CPU架构。支持的CPU架构包括amd64armarm64

默认值:amd64

说明 当集群类型为边缘托管版时必填。
options String {\"enableIptables\": true,\"manageRuntime\": true,\"quiet\": true,\"allowedClusterAddons\": [\"kube-proxy\",\"flannel\",\"coredns\"]}

节点的接入配置参数。

说明 当集群类型为边缘托管版时必填。

响应体语法

HTTP/1.1 200
Content-Type:application/json

响应参数

表 3. 响应Body参数
参数名称 类型 示例 说明
String "curl http://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/pkg/run/attach/1.12.6-aliyunedge.1/edgeadm -O edgeadm; chmod u+x edgeadm; ./edgeadm join --openapi-token=XXX --node-spec="{\"flannelIface\":\"eth0\",\"enableIptables\":true,\"assumeYes\":true,\"manageRuntime\":true,\"nodeNameStrategy\":\"hostname\",\"enabledAddons\":[\"kube-proxy\",\"flannel\",\"coredns\"]}""

节点接入脚本。

手动添加已有实例至ACK集群示例

请求示例

POST /clusters/ca375a93a30474552ad2a0ebe183e****/attachscript HTTP/1.1 
Content-Type:application/json
{
  "nodepool_id" : "np1c9229d9be2d432c93f77a88fca0****",
  "format_disk" : false,
  "keep_instance_name" : true,
  "rds_instances" : [ "rm-xxx" ],
  "arch" : "amd64",
  "options" : "{\\\"enableIptables\\\": true,\\\"manageRuntime\\\": true,\\\"quiet\\\": true,\\\"allowedClusterAddons\\\": [\\\"kube-proxy\\\",\\\"flannel\\\",\\\"coredns\\\"]}"
}

请求示例补充说明

添加已有实例到边缘托管版集群时,options参数以及arch参数为必填,下面对options内的参数做说明:
```
{
	"options":"{
		"allowedClusterAddons": 组件名称。
		"enableIptables": 是否开启iptables,默认值true。
		"flannelIface": flannel使用的网卡名。默认使用节点默认路由的网卡名。 
		"gpuVersion": 表示要接入的节点是否为GPU节点,默认为空。当前支持的GPU版本是Nvidia_Tesla_T4、Nvidia_Tesla_P4、Nvidia_Tesla_P100。
		"manageRuntime": 是否由edgeadm安装并检测Runtime,默认false。
		"nodeNameOverride": 设置节点名,提供3种方式:""(默认值,表示使用主机名);"*"(表示随机生成6位的字符串。);"*.XXX"(表示随机生成6位字符串+XXX后缀。)。
		"quiet": 是否使用静默模式安装。
	}
}
```

正常返回示例

JSON格式

HTTP/1.1 200 OK

返回示例补充说明

非边缘托管版:
"curl http://aliacs-k8s-cn-chengdu.oss-cn-chengdu-internal.aliyuncs.com/public/pkg/run/attach/1.16.9-aliyun.1/attach_node.sh | bash -s -- --node-name-mode nodeip --cms-enabled --cms-version 1.3.7 --openapi-token **** --addon-names flannel,csi-plugin,csi-provisioner,logtail-ds,ack-node-problem-detector,nginx-ingress-controller,kube-flannel-ds --cpu-policy none --node-cidr-mask 26 --node-port-range 30000-32767 --runtime docker --runtime-version 19.03.5"

边缘托管版:
"wget http://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/pkg/run/attach/1.12.6-aliyunedge.1/edgeadm -O edgeadm; chmod u+x edgeadm; ./edgeadm join --openapi-token=*** --node-spec="{\"flannelIface\":\"eth0\",\"enableIptables\":true,\"assumeYes\":true,\"manageRuntime\":true,\"nodeNameStrategy\":\"hostname\",\"enabledAddons\":[\"kube-proxy\",\"flannel\",\"coredns\"]}""

错误码

访问错误中心查看更多错误码。