Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-13 GMT+08:00

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

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

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

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

Tabla 2 Parámetros de cabecera de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Tipo de cuerpo del mensaje (formato).

X-Auth-Token

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.

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

apiVersion

String

Versión de la API. El valor se fija en v3.

kind

String

Tipo de la API. El valor se fija en List.

nodeList

Matriz de objetos de AddNode

Lista de los nodos que se aceptarán.

Tabla 4 AddNode

Parámetro

Obligatorio

Tipo

Descripción

serverID

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

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.

Tabla 5 ReinstallNodeSpec

Parámetro

Obligatorio

Tipo

Descripción

os

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

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.

Tabla 6 Login

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.

Tabla 7 UserPassword

Parámetro

Obligatorio

Tipo

Descripción

username

No

String

La cuenta para iniciar sesión en. El valor predeterminado es root.

password

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:

  • Contiene de 8 a 26 caracteres.

  • Debe contener al menos tres de los siguientes tipos de caracteres: letras mayúsculas y minúsculas, dígitos y caracteres especiales (!@$%^-_=+[{}]:,./?~#*)

  • No puede contener el nombre de usuario ni el nombre de usuario escrito al revés. El campo password debe estar salteado durante la creación del nodo. Para obtener más información, consulte la sección Adición de una sal en el campo de contraseña al crear un nodo.

Tabla 8 ReinstallServerConfig

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.

Tabla 9 UserTag

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.

Tabla 10 ReinstallVolumeSpec

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.

Tabla 11 ReinstallVolumeConfig

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:

  • userLV: tamaño del espacio de usuario, por ejemplo, vgpaas/20%VG.

  • userPath: ruta de montaje del espacio de usuario, por ejemplo, /home/wqt-test.

  • diskType: tipo de disco. Actualmente, solo se admiten evs, hdd y ssd.

  • lvType: tipo de volumen lógico. El valor puede ser linear o striped.

  • dockerThinpool: tamaño del espacio de Docker, por ejemplo, vgpaas/60%VG.

  • kubernetesLV: tamaño del espacio de kubelet, por ejemplo vgpaas/20%VG.

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.

Tabla 12 Storage

Parámetro

Obligatorio

Tipo

Descripción

storageSelectors

Matriz de objetos de StorageSelectors

Selección de disco. Los discos coincidentes se gestionan de acuerdo con matchLabels y storageType.

storageGroups

Matriz de objetos de StorageGroups

Un grupo de almacenamiento consta de varios dispositivos de almacenamiento. Se utiliza para dividir el espacio de almacenamiento.

Tabla 13 StorageSelectors

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre del selector, utilizado como el índice de selectorNames en storageGroup. Por lo tanto, el nombre de cada selector debe ser único.

storageType

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.

Tabla 14 matchLabels

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.

Tabla 15 StorageGroups

Parámetro

Obligatorio

Tipo

Descripción

name

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

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

Matriz de objetos de VirtualSpace

Gestión detallada de la configuración del espacio en un grupo.

Tabla 16 VirtualSpace

Parámetro

Obligatorio

Tipo

Descripción

name

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

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.

Tabla 17 LVMConfig

Parámetro

Obligatorio

Tipo

Descripción

lvType

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.

Tabla 18 RuntimeConfig

Parámetro

Obligatorio

Tipo

Descripción

lvType

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.

Tabla 19 ReinstallRuntimeConfig

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.

Tabla 20 Runtime

Parámetro

Obligatorio

Tipo

Descripción

name

No

String

Tiempo de ejecución del contenedor. El valor predeterminado es docker.

Tabla 21 ReinstallK8sOptionsConfig

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.

  • Key: Introduzca de 1 a 63 caracteres, comenzando con una letra o un dígito. Solo se permiten letras, dígitos, guiones (-), guiones bajos (_) y puntos (.). Un subdominio de DNS puede tener un prefijo a una clave y contener un máximo de 253 caracteres. Ejemplo de subdominio de DNS: example.com/my-key

  • Value: El valor puede dejarse en blanco o contener de 1 a 63 caracteres que comienzan con una letra o un dígito. Solo letras, dígitos, guiones (-), guiones bajos (_) y puntos (.) están permitidos en la string de caracteres.

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:

  • Key: Una clave debe contener de 1 a 63 caracteres que comiencen con una letra o un dígito. Solo se permiten letras, dígitos, guiones (-), guiones bajos (_) y puntos (.). Un nombre de subdominio de DNS se puede utilizar como prefijo de una clave.

  • Value: Un valor debe comenzar con una letra o un dígito y puede contener un máximo de 63 caracteres, incluidos letras, dígitos, guiones (-), guiones bajos (_) y puntos (.).

  • Effect: Las opciones disponibles son NoSchedule, PreferNoSchedule y NoExecute.

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

  • Número de colas de ENI. Ejemplo de configuración:

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

Se incluyen los siguientes campos:

  • queue: número de las colas de ENI.

  • Este campo solo se puede configurar para los nodos de BMS en un clúster de CCE Turbo.

  • Las proporciones soportadas son {"1":128, "2":92, "4":92, "8":32, "16":16, "28":9}. Es decir, si hay una cola, se puede enlazar un máximo de 128 ENI. Si hay dos colas, se puede enlazar un máximo de 92 ENI para las dos.

  • Un mayor número de las colas de ENI indica un mayor rendimiento, pero se pueden vincular menos ENI. La configuración de la cola no se puede cambiar después de crear el pool de nodos.

nicThreshold

No

String

  • Umbrales de preencuadernación de ENI. Ejemplo de configuración:

"0.3:0.6"
  • Umbral bajo (L): determina el número mínimo de ENI preenlazados (Min). Fórmula: Min = Número total de ENI del nodo x L

  • Umbral alto (H): determina el número máximo de ENI preenlazados (Max). Fórmula: Máx = Número total de ENI del nodo x H

  • Número de los ENI unidos a un nodo de BMS (B) y número de los ENI utilizados por los pods (U): U + Min < B < U + Max

  • Si el número de ENI preenlazados en un nodo de BMS es menor que el mínimo permitido, el sistema enlazará más ENI para hacer que los números sean iguales.

  • Si el número de ENI preenlazados en un nodo de BMS es mayor que el máximo permitido, el sistema desvincula periódicamente ENI (aproximadamente cada 2 minutos) para hacer que los números sean iguales.

  • Ambos umbrales son valores de una posición decimal que varían de 0.0 a 1.0. El umbral bajo debe ser menor o igual que el alto.

  • Este campo solo se puede configurar para los nodos de BMS en un clúster de CCE Turbo.

  • Los ENI preenlazados pueden acelerar la creación de cargas de trabajo, pero ocupan las direcciones IP.

Tabla 22 Taint

Parámetro

Obligatorio

Tipo

Descripción

key

String

La clave.

value

No

String

El valor.

effect

String

El efecto.

Tabla 23 NodeLifecycleConfig

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)

Tabla 24 ReinstallExtendParam

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

Tabla 25 Parámetros del cuerpo de respuesta

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.