Aceptación de un nodo
Función
Esta API se utiliza para aceptar un nodo en un clúster especificado.
El URL para la gestión de clústeres tiene el formato https://Endpoint/uri. En el URL, uri indica la ruta del recurso, es decir, la ruta para el acceso a la API.
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
ID del proyecto. Para obtener más información sobre cómo obtener el valor, consulta Cómo obtener parámetros en el URI de API. |
cluster_id |
Sí |
String |
ID del clúster. Para obtener más información sobre cómo obtener el valor, consulta Cómo obtener parámetros en el URI de API. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Content-Type |
Sí |
String |
Tipo de cuerpo del mensaje (formato). |
X-Auth-Token |
Sí |
String |
Las solicitudes para invocar a una API pueden autenticarse usando un token o AK/SK. Si se utiliza la autenticación basada en token, este parámetro es obligatorio y se debe establecer en un token de usuario. Para obtener más información, consulte Obtención de un token de usuario. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
apiVersion |
Sí |
String |
Versión de la API. El valor se fija en v3. |
kind |
Sí |
String |
Tipo de la API. El valor se fija en List. |
nodeList |
Sí |
Matriz de objetos de AddNode |
Lista de los nodos que se aceptarán. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
serverID |
Sí |
String |
ID del servidor. Para obtener más información sobre cómo obtener el ID del servidor, consulte la documentación de ECS o de BMS. |
spec |
Sí |
Objeto de ReinstallNodeSpec |
Parámetros de configuración de reinstalación de nodo. Actualmente, los nodos aceptados no se pueden agregar a los pools de nodos. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
os |
Sí |
String |
El sistema operativo. Si especifica una imagen personalizada, se utiliza la versión de SO real de la imagen de IMS. Seleccione una versión del SO compatible con el clúster actual, por ejemplo, EulerOS 2.5, CentOS 7.6 o EulerOS 2.8. |
login |
Sí |
Login object |
Modo de inicio de sesión de nodo. Se debe usar el par de claves o la contraseña para iniciar sesión. |
name |
No |
String |
Nombre del nodo
NOTA:
Si se especifica este campo durante la reinstalación, se cambiará el nombre del nodo y el nombre del servidor cambiará en consecuencia. De forma predeterminada, el nombre de servidor actual se utiliza como el nombre de nodo. Escriba de 1 a 56 caracteres que comiencen con una letra y no que terminen con un guion (-). Solo se permiten letras minúsculas, dígitos y guiones (-). |
serverConfig |
No |
Objeto de ReinstallServerConfig |
Configuración del servidor. |
volumeConfig |
No |
Objeto de ReinstallVolumeConfig |
Configuración de gestión de volúmenes. |
runtimeConfig |
No |
Objeto de ReinstallRuntimeConfig |
Configuración del tiempo de ejecución del contenedor. |
k8sOptions |
No |
Objeto de ReinstallK8sOptionsConfig |
Configuración de nodos de Kubernetes. |
lifecycle |
No |
Objeto de NodeLifecycleConfig |
Configuración personalizada del ciclo de vida de un nodo. |
extendParam |
No |
Objeto de ReinstallExtendParam |
Parámetro de reinstalación extendido, que se descarta. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
sshKey |
No |
String |
Nombre del par de claves utilizado para el inicio de sesión. |
userPassword |
No |
Objeto de UserPassword |
Contraseña utilizada para el inicio de sesión del nodo. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
username |
No |
String |
La cuenta para iniciar sesión en. El valor predeterminado es root. |
password |
Sí |
String |
Si se utiliza un nombre de usuario y una contraseña para crear un nodo, este campo está protegido en el cuerpo de la respuesta. Una contraseña debe cumplir con los siguientes requisitos de complejidad:
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
userTags |
No |
Matriz de objetos de UserTag |
Etiquetas de servidor en la nube. La clave de una etiqueta debe ser única. El número máximo de las etiquetas definidas por el usuario que son admitidas por CCE depende de la región. En la región que admite el menor número de etiquetas, aún puede crear hasta 5 etiquetas para un servidor en la nube. |
rootVolume |
No |
Objeto de ReinstallVolumeSpec |
Configuraciones de disco del sistema utilizadas en la reinstalación. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
key |
No |
String |
Clave de la etiqueta del servidor en la nube. El valor no puede comenzar con CCE- ni __type_baremetal. |
value |
No |
String |
Valor de la etiqueta del servidor en la nube. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
imageID |
No |
String |
ID de la imagen personalizada. |
cmkID |
No |
String |
ID de la clave principal de usuario. Si este parámetro se deja en blanco de forma predeterminada, el disco de EVS no se cifra. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
lvmConfig |
No |
String |
Configuraciones de disco de datos de Docker. Ejemplo de configuración predeterminada: "lvmConfig":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" Se incluyen los siguientes campos:
|
storage |
No |
Objeto de Storage |
Parámetro de gestión de inicialización de disco. Este parámetro es complejo de configurar. Para obtener más información, consulte la Conexión de discos a un nodo. Si no se especifica este parámetro, los discos se administran según el parámetro DockerLVMConfigOverride en extendParam. Este parámetro es compatible con clústeres de v1.15.11 y posteriores. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
storageSelectors |
Sí |
Matriz de objetos de StorageSelectors |
Selección de disco. Los discos coincidentes se gestionan de acuerdo con matchLabels y storageType. |
storageGroups |
Sí |
Matriz de objetos de StorageGroups |
Un grupo de almacenamiento consta de varios dispositivos de almacenamiento. Se utiliza para dividir el espacio de almacenamiento. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre del selector, utilizado como el índice de selectorNames en storageGroup. Por lo tanto, el nombre de cada selector debe ser único. |
storageType |
Sí |
String |
Especifica el tipo de almacenamiento. Actualmente, solo se admiten evs (volúmenes de EVS) y local (volúmenes locales). El almacenamiento local no admite la selección de disco. Todos los discos locales formarán un VG. Por lo tanto, solo se permite un storageSelector del tipo local. |
matchLabels |
No |
Objeto de matchLabels |
Campo coincidente de un volumen de EVS. Los campos size, volumeType, metadataEncrypted, metadataCmkid y count son compatibles. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
size |
No |
String |
Tamaño del disco coincidente. Si este parámetro se deja sin especificar, el tamaño del disco no está limitado. Ejemplo: 100 |
volumeType |
No |
String |
Tipo del disco de EVS. Actualmente, SSD, GPSSD y SAS son compatibles. |
metadataEncrypted |
No |
String |
Identificador de la encriptación de disco. 0 indica que el disco no está cifrado y 1 indica que el disco está cifrado. |
metadataCmkid |
No |
String |
ID de clave principal de cliente de un disco cifrado. El valor es una string de 36 bytes. |
count |
No |
String |
Número de discos que se van a seleccionar. Si este parámetro se deja en blanco, se seleccionan todos los discos de este tipo. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de un grupo de almacenamiento virtual. Cada nombre de grupo debe ser único. |
cceManaged |
No |
Boolean |
Espacio de almacenamiento para Kubernetes y componentes de tiempo de ejecución. Solo se puede establecer un grupo en true. Si este parámetro se deja en blanco, se utiliza el valor predeterminado false. |
selectorNames |
Sí |
Matriz de strings |
Este parámetro corresponde a name en storageSelectors. Un grupo puede coincidir con varios selectores, pero un selector solo puede coincidir con un grupo. |
virtualSpaces |
Sí |
Matriz de objetos de VirtualSpace |
Gestión detallada de la configuración del espacio en un grupo. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de espacio virtual. Actualmente, solo se admiten kubernetes, runtime y user. kubernetes y user requieren lvmConfig para ser configurado. runtime requiere que se configure runtimeConfig. |
size |
Sí |
String |
Tamaño de un espacio virtual. Solo se admite un porcentaje entero. Ejemplo: 90%. Tenga en cuenta que el porcentaje total de todos los espacios virtuales de un grupo no puede superar el 100%. |
lvmConfig |
No |
Objeto de LVMConfig |
Configuraciones de LVM, aplicables a espacios kubernetes y user. Tenga en cuenta que un espacio virtual solo admite una configuración. |
runtimeConfig |
No |
Objeto de RuntimeConfig |
Configuraciones en tiempo de ejecución, aplicables al espacio runtime. Tenga en cuenta que un espacio virtual solo admite una configuración. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
lvType |
Sí |
String |
Modo de escritura de LVM. linear indica el modo lineal. striped indica el modo seccionado, en el que se utilizan varios discos para formar una banda para mejorar el rendimiento del disco. |
path |
No |
String |
Ruta de acceso a la que está conectado el disco. Este parámetro solo tiene efecto en la configuración del usuario. El valor es una ruta absoluta. Dígitos, letras, puntos (.), guiones (-) y guiones bajos (_) están permitidos. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
lvType |
Sí |
String |
Modo de escritura de LVM. linear indica el modo lineal. striped indica el modo seccionado, en el que se utilizan varios discos para formar una banda para mejorar el rendimiento del disco. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
dockerBaseSize |
No |
Integer |
Espacio en disco disponible de un único contenedor en un nodo, en GB. Si este parámetro no se establece o se establece en 0, se utiliza el valor predeterminado. Cuando se utiliza el mapeador de dispositivos, el valor predeterminado es 10. Cuando se utiliza OverlayFS, el espacio disponible de un solo contenedor no está limitado por defecto, y la configuración de dockerBaseSize solo tiene efecto en los nodos de EulerOS en los clústeres de la nueva versión. Para obtener más información acerca de cómo configurar el espacio en tiempo de ejecución del contenedor, consulte Asignación de espacio en disco de datos. Con el mapeador de dispositivos, se recomienda establecer dockerBaseSize en un valor inferior o igual a 80 GB. Si el valor es demasiado grande, el recipiente puede fallar en iniciarse debido a una larga inicialización. Si hay requisitos especiales para el espacio en disco del contenedor, puede montar un dispositivo de almacenamiento externo o local. |
runtime |
No |
Objeto de Runtime |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
No |
String |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
labels |
No |
Map<String,String> |
Definida en pares de clave y valor. Se permite un máximo de 20 pares de clave y valor.
Por ejemplo: "k8sTags": { "key": "value" } |
taints |
No |
Matriz de objetos de Taint |
Se pueden agregar etiquetas para evitar la afinidad al crear nodos. Se puede agregar un máximo de 20 manchas. Cada mancha contiene los siguientes parámetros:
Por ejemplo: "taints": [{ "key": "status", "value": "unavailable", "effect": "NoSchedule" }, { "key": "looks", "value": "bad", "effect": "NoSchedule" }] |
maxPods |
No |
Integer |
Número máximo de pods que se pueden crear en un nodo, incluidos los pods del sistema predeterminados. Rango de valores: 16 a 256. Este límite impide que el nodo se sobrecargue de pods. |
nicMultiqueue |
No |
String |
"[{\"queue\":4}]" Se incluyen los siguientes campos:
|
nicThreshold |
No |
String |
"0.3:0.6"
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
key |
Sí |
String |
La clave. |
value |
No |
String |
El valor. |
effect |
Sí |
String |
El efecto. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
preInstall |
No |
String |
Secuencia de comandos de preinstalación.
NOTA:
El valor de entrada debe estar codificado en Base64. (Comando: echo -n "Content to be encoded" | base64) |
postInstall |
No |
String |
Secuencia de comandos posterior a la instalación.
NOTA:
El valor de entrada debe estar codificado en Base64. (Comando: echo -n "Content to be encoded" | base64) |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
alpha.cce/NodeImageID |
No |
String |
(Descartado) ID de la imagen de usuario para ejecutar el SO de destino. Especificar este parámetro equivale a especificar imageID en el archivo ReinstallVolumeSpec. El valor original se sobrescribirá. |
Parámetros de respuesta
Código de estado: 200
Parámetro |
Tipo |
Descripción |
---|---|---|
jobid |
String |
ID de trabajo devuelto después de entregar el trabajo. El ID del trabajo se puede utilizar para consultar el estado de ejecución del trabajo. |
Ejemplo de las solicitudes
Aceptación de un nodo
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/add { "kind" : "List", "apiVersion" : "v3", "nodeList" : [ { "serverID" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "spec" : { "name" : "my-ecs-0001", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" } } } ] }
Ejemplo de las respuestas
Código de estado: 200
El trabajo para aceptar un nodo en un clúster especificado se entrega correctamente.
{ "jobid" : "2ec9b78d-9368-46f3-8f29-d1a95622a568" }
Códigos de estado
Código de estado |
Descripción |
---|---|
200 |
El trabajo para aceptar un nodo en un clúster especificado se entrega correctamente. |
Códigos de error
Consulte Códigos de error.