Appelez l'opération DescribeClusterAttachScripts pour ajouter manuellement une instance existante à un cluster Container Service for Kubernetes (ACK) spécifié. Cette opération renvoie un script exécutable unique. Exécutez ce script sur l'instance existante pour l'ajouter en tant que nœud au cluster ACK spécifié.
Débogage
Syntaxe de la requête
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"
}
Paramètres de la requête
| Paramètre | Type | Obligatoire | Exemple | Description |
| ClusterId | String | Oui | ca375a93a30474552ad2a0ebe183e**** |
ID du cluster ACK. |
| Paramètre | Type | Obligatoire | Exemple | Description |
| nodepool_id | String | Non | np1c9229d9be2d432c93f77a88fca0**** | ID du groupe de nœuds auquel vous souhaitez ajouter le nœud existant. Ce paramètre permet d'ajouter un nœud existant à un groupe de nœuds spécifique. Remarque Si vous ne spécifiez pas d'ID de groupe de nœuds, le nœud est ajouté au groupe de nœuds par défaut. |
| format_disk | Boolean | Non | false | Indique s'il faut monter des disques de données sur l'instance existante lors de son ajout au cluster. Ajoutez des disques de données pour stocker les données et les images des conteneurs. Valeurs possibles :
Valeur par défaut : Procédure de montage d'un disque de données :
|
| keep_instance_name | Boolean | Non | true | Indique s'il faut conserver le nom de l'instance existante lors de son ajout au cluster. Si vous ne conservez pas le nom, l'instance reçoit le nom au format
Valeur par défaut : |
| rds_instances | Array of String | Non | rm-xxx | Noms des instances ApsaraDB RDS. |
| arch | String | Non | amd64 | Architecture CPU du nœud. Valeurs possibles : Valeur par défaut : Remarque Ce paramètre est obligatoire pour ajouter le nœud existant à un cluster Kubernetes géré en périphérie (edge). |
| options | String | Non | {\"enableIptables\": true,\"manageRuntime\": true,\"quiet\": true,\"allowedClusterAddons\": [\"kube-proxy\",\"flannel\",\"coredns\"]} | Configurations de nœud pour l'instance existante à ajouter en tant que nœud. Remarque Ce paramètre est obligatoire pour ajouter le nœud existant à un cluster Kubernetes géré en périphérie (edge). |
Syntaxe de la réponse
HTTP/1.1 200
Content-Type:application/json
Paramètres de la réponse
| Paramètre | Type | Exemple | Description |
| 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\"]}"" |
Script renvoyé pour ajouter une instance existante au cluster ACK. |
Exemples
Exemples de requêtes
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\\\"]}"
}
Description de l'exemple de requête
When you call this operation to add an existing instance to a managed edge Kubernetes cluster, the options and arch parameters are required. The following content describes the options parameter:
{
"options":"{
"allowedClusterAddons": The name of the component.
"enableIptables": Specifies whether to enable iptables. Default value: true.
"flannelIface": the name of the network interface controller (NIC) used by Flannel. By default, this parameter is set to the name of the NIC that is specified in the default route entry of the node.
"gpuVersion": Specifies whether the node is a GPU-accelerated node. By default, this parameter is empty. Valid values: Nvidia_Tesla_T4, Nvidia_Tesla_P4, and Nvidia_Tesla_P100.
"manageRuntime": Specifies whether to use edgeadm to install and check the runtime. Default value: false.
"nodeNameOverride": Specifies how the node is named. A pair of quotation marks ("") indicates the host name is used as the node name. This is the default value. An asterisk (*) indicates that a random string that contains six characters is used as the node name.The string "*.XXX" indicates that a random string followed by a suffix is used as the node name. The random string contains six characters.
"quiet": Specifies whether to enable the silent installation mode.
}
}
Exemples de réponses réussies
Format JSON
HTTP/1.1 200 OK
Description de l'exemple de réponse
If the cluster is not a managed edge Kubernetes cluster, the following output is returned:
"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"
If the cluster is a managed edge Kubernetes cluster, the following output is returned:
"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\"]}""
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez le Centre d'erreurs de l'API.