Creación de un nodo
Función
Esta API se utiliza para crear un nodo en un clúster especificado.
-
Si no hay clúster, cree uno.
-
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.
Restricciones
Solo se pueden crear los nodos de KVM. Los nodos que no son de KVM no se pueden utilizar después de haber sido creados.
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes
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ámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
nodepoolScaleUp |
No |
String |
Si la solicitud es entregada por el pool de nodos. Si el valor no es NodepoolScaleUp, el número de pods en el pool de nodo correspondiente se actualiza automáticamente. |
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 |
---|---|---|---|
kind |
Sí |
String |
Tipo de la API. El valor se fija en Node y no se puede cambiar. |
apiVersion |
Sí |
String |
Versión de la API. El valor se fija en v3 y no se puede cambiar. |
metadata |
No |
Objeto de NodeMetadata |
Metadatos de nodo, que es una colección de atributos. |
spec |
Sí |
Objeto de NodeSpec |
Descripción detallada del nodo. CCE crea o actualiza objetos definiendo o actualizando spec. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
No |
String |
Nombre del nodo
NOTA:
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 (-). |
uid |
No |
String |
ID de nodo, que es único y se genera automáticamente después de crear el recurso. Un ID definido por el usuario no tendrá efecto. |
labels |
No |
Map<String,String> |
Etiqueta de nodo de CCE (no la etiqueta nativa de Kubernetes). Las etiquetas se utilizan para seleccionar objetos que cumplen los criterios determinados. Una etiqueta es un par de clave y valor. Por ejemplo: "labels": { "key" : "value" } |
annotations |
No |
Map<String,String> |
Anotaciones de nodo de CCE, en pares de clave y valor (no las anotaciones nativas de Kubernetes). Por ejemplo: "annotations": { "key1" : "value1", "key2" : "value2" }
NOTA:
Las annotations no se utilizan para identificar o seleccionar objetos. Los metadatos de annotations pueden ser pequeños o grandes, estructurados o no estructurados, y pueden incluir caracteres que no están permitidos en las etiquetas. |
creationTimestamp |
No |
String |
Hora en la que se creó el objeto. El valor se genera automáticamente después de crear el objeto. Un valor definido por el usuario no tendrá efecto. |
updateTimestamp |
No |
String |
Hora en la que se actualizó el objeto. El valor se genera automáticamente después de crear el objeto. Un valor definido por el usuario no tendrá efecto. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
flavor |
Sí |
String |
Especificaciones del nodo. Para obtener detalles sobre las especificaciones de nodo admitidas por CCE, consulte la Descripción de la variante del nodo. |
az |
Sí |
String |
Nombre de la AZ donde se encuentra el nodo que se va a crear. Para obtener más información acerca de las AZ admitidas por CCE, consulte la sección Regiones y puntos de conexión. |
os |
No |
String |
SO del nodo. Para obtener más información acerca de los SO compatibles, consulte la Descripción del nodo de SO.
NOTA:
NOTA:
|
login |
Sí |
Objeto de Login |
Modo de inicio de sesión de nodo. Se debe usar el par de claves o la contraseña para iniciar sesión. |
rootVolume |
Sí |
Objeto de Volume |
Información sobre los discos en el nodo |
dataVolumes |
Sí |
Matriz de objetos de Volume |
Parámetros del disco de datos del nodo. Actualmente, puede agregar el segundo disco de datos para su nodo en la consola de CCE. Para los nodos de DeC, la descripción del parámetro es la misma que para rootVolume. |
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. |
publicIP |
No |
Objeto de NodePublicIP |
La EIP de un nodo.
NOTA:
Este parámetro no se admite cuando se agrega un nodo a un pool de nodos. |
nodeNicSpec |
No |
Objeto de NodeNicSpec |
La NIC del nodo |
count |
No |
Integer |
Número de nodos que se van a crear en un lote. El valor debe ser un entero positivo mayor o igual que 1 y menor o igual que el límite definido. Este parámetro se puede dejar en blanco cuando se utiliza para un pool de nodos. |
billingMode |
No |
Integer |
Modo de facturación de nodos.
|
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" }] |
k8sTags |
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" } |
ecsGroupId |
No |
String |
ID de grupo de servidores en la nube. Si se especifica este campo, el nodo se crea en el grupo especificado de servidores en la nube. |
dedicatedHostId |
No |
String |
ID del DeH al que está programado el nodo.
NOTA:
Este parámetro no se admite cuando se agrega un nodo durante la creación del pool de nodos. |
userTags |
No |
Matriz de objetos de UserTag |
Etiqueta de servidor en la nube. La clave de una etiqueta debe ser única. El número máximo de etiquetas personalizadas admitidas por CCE depende de la región y no puede exceder de 8. |
runtime |
No |
Objeto de Runtime |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
extendParam |
No |
Objeto de NodeExtendParam |
Parámetros extendidos para crear un nodo. |
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 |
---|---|---|---|
size |
Sí |
Integer |
Tamaño de disco, en GB.
|
volumetype |
Sí |
String |
Tipo de disco. Para obtener más información sobre los posibles valores, consulte la descripción del parámetro root_volume en la API utilizada para crear un ECS en la referencia de la API de ECS.
|
extendParam |
No |
Map<String,Object> |
Parámetros de los discos extendidos, definidos en extendparam en la API utilizada para crear un ECS. Para obtener más información, consulte la Creación de un ECS. |
cluster_id |
No |
String |
ID del pool de almacenamientos utilizado por el disco del sistema de ECS. Este campo solo se utiliza para clústeres de DeC, que funciona como dssPoolID, es decir, el ID del pool de almacenamiento de DSS. Para obtener el valor, consulte el campo ID de la API utilizada para obtener detalles de un pool de almacenamiento de DSS. |
cluster_type |
No |
String |
Clase de almacenamiento del disco del sistema del servidor en la nube. El valor es siempre dss. Este campo solo se utiliza para clústeres de DeC. |
hw:passthrough |
No |
Boolean |
|
metadata |
No |
Objeto de VolumeMetadata |
Información de encriptación de disco de EVS. Este campo es obligatorio solo cuando necesita cifrar el disco del sistema o los discos de datos del nodo que se va a crear. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
__system__encrypted |
No |
String |
Si el disco de EVS está cifrado. El valor 0 indica que el disco de EVS no está cifrado, y el valor 1 indica que el disco de EVS está cifrado. Si no se especifica este parámetro, los discos de EVS no se cifrarán de forma predeterminada. |
__system__cmkid |
No |
String |
ID de CMK, que indica la encriptación de metadata. Este campo se utiliza con __system__encrypted. |
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 los 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 |
---|---|---|---|
ids |
No |
Matriz de strings |
ID de las EIP existentes. La cantidad no puede ser mayor que el número de nodos que se van a crear.
NOTA:
Si se ha establecido ids, no es necesario establecer count y eip. |
count |
No |
Integer |
Número de las EIP que se crearán dinámicamente.
NOTA:
count y eip deben configurarse al mismo tiempo. |
eip |
No |
Objeto de NodeEIPSpec |
Configuración de la EIP. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
iptype |
No |
String |
Tipo de la EIP, especificado en publicip.type en la API para asignar una EIP. Para obtener más información, consulte Asignar una EIP. |
bandwidth |
No |
Objeto de NodeBandwidth |
Parámetros de ancho de banda de la EIP |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
chargemode |
No |
String |
Modo de facturación de ancho de banda.
NOTA:
|
size |
No |
Integer |
Tamaño de ancho de banda, especificado en bandwidth.size en la API para asignar una EIP. Para obtener más información, consulte Asignar una EIP. |
sharetype |
No |
String |
Tipo de uso compartido de ancho de banda. Opciones de valor: PER (ancho de banda exclusivo) y WHOLE (ancho de banda compartido) |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
primaryNic |
No |
Objeto de NicSpec |
Descripción de la NIC principal. |
extNics |
No |
Matriz de objetos de NicSpec |
NIC de extensión
NOTA:
Este parámetro no se admite cuando se agrega un nodo a un pool de nodos. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
subnetId |
No |
String |
ID de la subred a la que pertenece la NIC. Si no se especifica subnetId al crear la NIC principal, se utiliza la subred del clúster. Al crear una NIC secundaria, debe especificar subnetId. |
fixedIps |
No |
Matriz de strings |
fixedIps especifica la dirección IP de la NIC principal. El número de direcciones IP no puede ser mayor que el número de los nodos creados. fixedIps y ipBlock no se pueden especificar al mismo tiempo. |
ipBlock |
No |
String |
Formato CIDR del rango de IP de la NIC principal. La dirección IP del nodo creado cae en este intervalo. fixedIps y ipBlock no se pueden especificar al mismo tiempo. |
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 |
---|---|---|---|
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 |
---|---|---|---|
name |
No |
String |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
ecs:performancetype |
No |
String |
Tipos de la variante de ECS. Este campo se devuelve en la respuesta. |
orderID |
No |
String |
ID del pedido. Este campo se devuelve en la respuesta cuando el nodo se factura anualmente/mensualmente con el pago automático habilitado. |
productID |
No |
String |
ID del producto. Este campo se devuelve en la respuesta cuando el nodo se factura anualmente/mensualmente con el pago automático habilitado. |
maxPods |
No |
Integer |
El número máximo de los 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. El número de pods que se pueden crear en un nodo viene determinado por varios parámetros. Para obtener más información, consulte la sección Número máximo de pods que se pueden crear en un nodo. |
periodType |
No |
String |
NOTA:
Este campo es válido y obligatorio solo cuando billingMode se establece en 1 (facturación anual/mensual) o 2 (facturación anual/mensual con renovación automática activada) (desechado). |
periodNum |
No |
Integer |
Duración de la suscripción. El valor puede ser:
NOTA:
Este campo es válido y obligatorio cuando billingMode está establecido en 1 o 2 (descartado). |
isAutoRenew |
No |
String |
Si la renovación automática está habilitada.
NOTA:
Este campo es válido cuando billingMode se establece en 1 o 2 (descartado). Si no se especifica, la renovación automática no está habilitada. |
isAutoPay |
No |
String |
Si deducir las tarifas automáticamente.
NOTA:
Este campo es válido cuando billingMode se establece en 1 o 2 (descartado). Si no se especifica cuando billingMode se establece en 1, no se activa la deducción automática de la tarifa. (Descartado: si no se especifica cuando billingMode se establece en 2 se activa la deducción automática de la tarifa.) |
DockerLVMConfigOverride |
No |
String |
Configuraciones de disco de datos de Docker. Ejemplo de configuración predeterminada: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" Se incluyen los siguientes campos:
|
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. |
publicKey |
No |
String |
La clave pública de un nodo. |
alpha.cce/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) |
alpha.cce/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) |
alpha.cce/NodeImageID |
No |
String |
Este parámetro es necesario cuando se utiliza una imagen personalizada para crear un nodo de BMS. |
nicMultiqueue |
No |
String |
"[{\"queue\":4}]" Se incluyen los siguientes campos:
|
nicThreshold |
No |
String |
"0.3:0.6"
|
enterprise_project_id |
No |
String |
ID del proyecto de empresa al que pertenece el nodo |
chargingMode |
No |
Integer |
Modo de facturación de un nodo. Este parámetro ha sido obsoleta. Utilice el parámetro billingMode de NodeSpec. |
Parámetros de respuesta
Código de estado: 201
Parámetro |
Tipo |
Descripción |
---|---|---|
kind |
String |
Tipo de la API. El valor se fija en Node y no se puede cambiar. |
apiVersion |
String |
Versión de la API. El valor se fija en v3 y no se puede cambiar. |
metadata |
Objeto de NodeMetadata |
Metadatos de nodo, que es una colección de atributos. |
spec |
Objeto de NodeSpec |
Descripción detallada del nodo. CCE crea o actualiza objetos definiendo o actualizando spec. |
status |
Objeto de NodeStatus |
Estado del nodo, que se registra dinámicamente. Un valor definido por el usuario no funcionará cuando se crea o modifica un nodo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre del nodo
NOTA:
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 (-). |
uid |
String |
ID de nodo, que es único y se genera automáticamente después de crear el recurso. Un ID definido por el usuario no tendrá efecto. |
labels |
Map<String,String> |
Etiqueta de nodo de CCE (no la etiqueta nativa de Kubernetes). Las etiquetas se utilizan para seleccionar objetos que cumplen los criterios determinados. Una etiqueta es un par de clave y valor. Por ejemplo: "labels": { "key" : "value" } |
annotations |
Map<String,String> |
Anotaciones de nodo de CCE, en pares de clave y valor (no las anotaciones nativas de Kubernetes). Por ejemplo: "annotations": { "key1" : "value1", "key2" : "value2" }
NOTA:
Las annotations no se utilizan para identificar o seleccionar objetos. Los metadatos de annotations pueden ser pequeños o grandes, estructurados o no estructurados, y pueden incluir caracteres que no están permitidos en las etiquetas. |
creationTimestamp |
String |
Hora en la que se creó el objeto. El valor se genera automáticamente después de crear el objeto. Un valor definido por el usuario no tendrá efecto. |
updateTimestamp |
String |
Hora en la que se actualizó el objeto. El valor se genera automáticamente después de crear el objeto. Un valor definido por el usuario no tendrá efecto. |
Parámetro |
Tipo |
Descripción |
---|---|---|
flavor |
String |
Especificaciones del nodo. Para obtener detalles sobre las especificaciones de nodo admitidas por CCE, consulte la Descripción de la variante del nodo. |
az |
String |
Nombre de la AZ donde se encuentra el nodo que se va a crear. Para obtener más información acerca de las AZ admitidas por CCE, consulte la sección Regiones y puntos de conexión. |
os |
String |
SO del nodo. Para obtener más información acerca de los SO compatibles, consulte la Descripción del nodo de SO.
NOTA:
NOTA:
|
login |
Objeto de Login |
Modo de inicio de sesión de nodo. Se debe usar el par de claves o la contraseña para iniciar sesión. |
rootVolume |
Objeto de Volume |
Información sobre los discos en el nodo |
dataVolumes |
Matriz de objetos de Volume |
Parámetros del disco de datos del nodo. Actualmente, puede agregar el segundo disco de datos para su nodo en la consola de CCE. Para los nodos de DeC, la descripción del parámetro es la misma que para rootVolume. |
storage |
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. |
publicIP |
Objeto de NodePublicIP |
La EIP de un nodo.
NOTA:
Este parámetro no se admite cuando se agrega un nodo a un pool de nodos. |
nodeNicSpec |
Objeto de NodeNicSpec |
La NIC del nodo |
count |
Integer |
Número de nodos que se van a crear en un lote. El valor debe ser un entero positivo mayor o igual que 1 y menor o igual que el límite definido. Este parámetro se puede dejar en blanco cuando se utiliza para un pool de nodos. |
billingMode |
Integer |
Modo de facturación de nodos.
|
taints |
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" }] |
k8sTags |
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" } |
ecsGroupId |
String |
ID de grupo de servidores en la nube. Si se especifica este campo, el nodo se crea en el grupo especificado de servidores en la nube. |
dedicatedHostId |
String |
ID del DeH al que está programado el nodo.
NOTA:
Este parámetro no se admite cuando se agrega un nodo durante la creación del pool de nodos. |
userTags |
Matriz de objetos de UserTag |
Etiqueta de servidor en la nube. La clave de una etiqueta debe ser única. El número máximo de etiquetas personalizadas admitidas por CCE depende de la región y no puede exceder de 8. |
runtime |
Objeto de Runtime |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
extendParam |
Objeto de NodeExtendParam |
Parámetros extendidos para crear un nodo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
sshKey |
String |
Nombre del par de claves utilizado para el inicio de sesión. |
userPassword |
Objeto de UserPassword |
Contraseña utilizada para el inicio de sesión del nodo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
username |
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:
|
Parámetro |
Tipo |
Descripción |
---|---|---|
size |
Integer |
Tamaño de disco, en GB.
|
volumetype |
String |
Tipo de disco. Para obtener más información sobre los posibles valores, consulte la descripción del parámetro root_volume en la API utilizada para crear un ECS en la referencia de la API de ECS.
|
extendParam |
Map<String,Object> |
Parámetros de los discos extendidos, definidos en extendparam en la API utilizada para crear un ECS. Para obtener más información, consulte la Creación de un ECS. |
cluster_id |
String |
ID del pool de almacenamientos utilizado por el disco del sistema de ECS. Este campo solo se utiliza para clústeres de DeC, que funciona como dssPoolID, es decir, el ID del pool de almacenamiento de DSS. Para obtener el valor, consulte el campo ID de la API utilizada para obtener detalles de un pool de almacenamiento de DSS. |
cluster_type |
String |
Clase de almacenamiento del disco del sistema del servidor en la nube. El valor es siempre dss. Este campo solo se utiliza para clústeres de DeC. |
hw:passthrough |
Boolean |
|
metadata |
Objeto de VolumeMetadata |
Información de encriptación de disco de EVS. Este campo es obligatorio solo cuando necesita cifrar el disco del sistema o los discos de datos del nodo que se va a crear. |
Parámetro |
Tipo |
Descripción |
---|---|---|
__system__encrypted |
String |
Si el disco de EVS está cifrado. El valor 0 indica que el disco de EVS no está cifrado, y el valor 1 indica que el disco de EVS está cifrado. Si no se especifica este parámetro, los discos de EVS no se cifrarán de forma predeterminada. |
__system__cmkid |
String |
ID de CMK, que indica la encriptación de metadata. Este campo se utiliza con __system__encrypted. |
Parámetro |
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. |
Parámetro |
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 |
Objeto de matchLabels |
Campo coincidente de un volumen de EVS. Los campos size, volumeType, metadataEncrypted, metadataCmkid y count son compatibles. |
Parámetro |
Tipo |
Descripción |
---|---|---|
size |
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 |
String |
Tipo del disco de EVS. Actualmente, SSD, GPSSD y SAS son compatibles. |
metadataEncrypted |
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 |
String |
ID de clave principal de cliente de un disco cifrado. El valor es una string de 36 bytes. |
count |
String |
Número de los discos que se van a seleccionar. Si este parámetro se deja en blanco, se seleccionan todos los discos de este tipo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre de un grupo de almacenamiento virtual. Cada nombre de grupo debe ser único. |
cceManaged |
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. |
Parámetro |
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 |
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 |
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 |
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 |
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 |
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. |
Parámetro |
Tipo |
Descripción |
---|---|---|
ids |
Matriz de strings |
ID de las EIP existentes. La cantidad no puede ser mayor que el número de nodos que se van a crear.
NOTA:
Si se ha establecido ids, no es necesario establecer count y eip. |
count |
Integer |
Número de las EIP que se crearán dinámicamente.
NOTA:
count y eip deben configurarse al mismo tiempo. |
eip |
Objeto de NodeEIPSpec |
Configuración de la EIP. |
Parámetro |
Tipo |
Descripción |
---|---|---|
iptype |
String |
Tipo de la EIP, especificado en publicip.type en la API para asignar una EIP. Para obtener más información, consulte Asignar una EIP. |
bandwidth |
Objeto de NodeBandwidth |
Parámetros de ancho de banda de la EIP |
Parámetro |
Tipo |
Descripción |
---|---|---|
chargemode |
String |
Modo de facturación de ancho de banda.
NOTA:
|
size |
Integer |
Tamaño de ancho de banda, especificado en bandwidth.size en la API para asignar una EIP. Para obtener más información, consulte Asignar una EIP. |
sharetype |
String |
Tipo de uso compartido de ancho de banda. Opciones de valor: PER (ancho de banda exclusivo) y WHOLE (ancho de banda compartido) |
Parámetro |
Tipo |
Descripción |
---|---|---|
primaryNic |
Objeto de NicSpec |
Descripción de la NIC principal. |
extNics |
Matriz de objetos de NicSpec |
NIC de extensión
NOTA:
Este parámetro no se admite cuando se agrega un nodo a un pool de nodos. |
Parámetro |
Tipo |
Descripción |
---|---|---|
subnetId |
String |
ID de la subred a la que pertenece la NIC. Si no se especifica subnetId al crear la NIC principal, se utiliza la subred del clúster. Al crear una NIC secundaria, debe especificar subnetId. |
fixedIps |
Matriz de strings |
fixedIps especifica la dirección IP de la NIC principal. El número de direcciones IP no puede ser mayor que el número de los nodos creados. fixedIps y ipBlock no se pueden especificar al mismo tiempo. |
ipBlock |
String |
Formato CIDR del rango de IP de la NIC principal. La dirección IP del nodo creado cae en este intervalo. fixedIps y ipBlock no se pueden especificar al mismo tiempo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
key |
String |
La clave. |
value |
String |
El valor. |
effect |
String |
El efecto. |
Parámetro |
Tipo |
Descripción |
---|---|---|
key |
String |
Clave de la etiqueta del servidor en la nube. El valor no puede comenzar con CCE- ni __type_baremetal. |
value |
String |
Valor de la etiqueta del servidor en la nube. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Tiempo de ejecución del contenedor. El valor predeterminado es docker. |
Parámetro |
Tipo |
Descripción |
---|---|---|
ecs:performancetype |
String |
Tipos de la variante de ECS. Este campo se devuelve en la respuesta. |
orderID |
String |
ID del pedido. Este campo se devuelve en la respuesta cuando el nodo se factura anualmente/mensualmente con el pago automático habilitado. |
productID |
String |
ID del producto. Este campo se devuelve en la respuesta cuando el nodo se factura anualmente/mensualmente con el pago automático habilitado. |
maxPods |
Integer |
El número máximo de los 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. El número de pods que se pueden crear en un nodo viene determinado por varios parámetros. Para obtener más información, consulte la sección Número máximo de pods que se pueden crear en un nodo. |
periodType |
String |
NOTA:
Este campo es válido y obligatorio solo cuando billingMode se establece en 1 (facturación anual/mensual) o 2 (facturación anual/mensual con renovación automática activada) (desechado). |
periodNum |
Integer |
Duración de la suscripción. El valor puede ser:
NOTA:
Este campo es válido y obligatorio cuando billingMode está establecido en 1 o 2 (descartado). |
isAutoRenew |
String |
Si la renovación automática está habilitada.
NOTA:
Este campo es válido cuando billingMode se establece en 1 o 2 (descartado). Si no se especifica, la renovación automática no está habilitada. |
isAutoPay |
String |
Si deducir las tarifas automáticamente.
NOTA:
Este campo es válido cuando billingMode se establece en 1 o 2 (descartado). Si no se especifica cuando billingMode se establece en 1, no se activa la deducción automática de la tarifa. (Descartado: si no se especifica cuando billingMode se establece en 2 se activa la deducción automática de la tarifa.) |
DockerLVMConfigOverride |
String |
Configuraciones de disco de datos de Docker. Ejemplo de configuración predeterminada: "DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear" Se incluyen los siguientes campos:
|
dockerBaseSize |
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. |
publicKey |
String |
La clave pública de un nodo. |
alpha.cce/preInstall |
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) |
alpha.cce/postInstall |
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) |
alpha.cce/NodeImageID |
String |
Este parámetro es necesario cuando se utiliza una imagen personalizada para crear un nodo de BMS. |
nicMultiqueue |
String |
"[{\"queue\":4}]" Se incluyen los siguientes campos:
|
nicThreshold |
String |
"0.3:0.6"
|
enterprise_project_id |
String |
ID del proyecto de empresa al que pertenece el nodo |
chargingMode |
Integer |
Modo de facturación de un nodo. Este parámetro ha sido obsoleta. Utilice el parámetro billingMode de NodeSpec. |
Parámetro |
Tipo |
Descripción |
---|---|---|
phase |
String |
Estado del nodo |
jobID |
String |
ID de un trabajo de creación o de eliminación |
serverId |
String |
ID del nodo de ECS o de BMS subyacentes |
privateIP |
String |
Dirección IP en el segmento de la red privada de la NIC principal en el nodo |
privateIPv6IP |
String |
Dirección IPv6 en el segmento de la red privada de la NIC principal en el nodo |
publicIP |
String |
La EIP del nodo. Si los datos de ECS no están sincronizados en tiempo real, puede hacer clic en Sync Node Data en la consola para actualizar manualmente los datos. |
deleteStatus |
Objeto de DeleteStatus |
Estado de los recursos durante la eliminación. |
Parámetro |
Tipo |
Descripción |
---|---|---|
previous_total |
Integer |
Número total de los registros de recursos de clúster existentes cuando se elimina el clúster. |
current_total |
Integer |
Último número de los registros de recursos, que se genera en función de los registros de recursos de clúster actuales. |
updated |
Integer |
Número total de los registros de recursos actualizados cuando se elimina el clúster. |
added |
Integer |
Número total de los registros de recursos actualizados cuando se elimina el clúster. |
deleted |
Integer |
Número total de los registros de recursos eliminados cuando se elimina el clúster. |
Ejemplo de las solicitudes
-
Creación de un nodo de facturación anual/mensual
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-67235" }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "dataVolumes" : [ { "size" : 100, "volumetype" : "SAS" } ], "billingMode" : 1, "extendParam" : { "maxPods" : 110, "periodType" : "month", "periodNum" : 1, "isAutoPay" : "false", "isAutoRenew" : "false" }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "rootVolume" : { "size" : 50, "volumetype" : "SAS" }, "runtime" : { "name" : "docker" }, "login" : { "sshKey" : "KeyPair-001" }, "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "size" : "100", "volumeType" : "SAS", "count" : "1" } } ], "storageGroups" : [ { "name" : "vgpaas", "selectorNames" : [ "cceUse" ], "cceManaged" : true, "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "count" : 1 } }
-
Creación de un nodo de pago por uso
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-83790" }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "dataVolumes" : [ { "size" : 100, "volumetype" : "SAS" } ], "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "rootVolume" : { "size" : 50, "volumetype" : "SAS" }, "runtime" : { "name" : "docker" }, "login" : { "sshKey" : "KeyPair-001" }, "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "size" : "100", "volumeType" : "SAS", "count" : "1" } } ], "storageGroups" : [ { "name" : "vgpaas", "selectorNames" : [ "cceUse" ], "cceManaged" : true, "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "count" : 1 } }
Ejemplo de las respuestas
Código de estado: 201
El trabajo para crear un nodo en un clúster especificado se entrega correctamente.
{ "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "test-83790", "uid" : "5ecfddfe-87db-11ec-b5e5-0255ac101514", "annotations" : { "jobid" : "5ec1518c-87db-11ec-b5e5-0255ac101514", "resourceJobId" : "5ed0d692-87db-11ec-b5e5-0255ac101514" } }, "spec" : { "flavor" : "c7.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 50 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100 } ], "storage" : { "storageSelectors" : [ { "name" : "cceUse", "storageType" : "evs", "matchLabels" : { "count" : "1", "size" : "100", "volumeType" : "SAS" } } ], "storageGroups" : [ { "name" : "vgpaas", "cceManaged" : true, "selectorNames" : [ "cceUse" ], "virtualSpaces" : [ { "name" : "runtime", "size" : "90%" }, { "name" : "kubernetes", "size" : "10%" } ] } ] }, "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "ca964acf-8468-4735-8229-97940ef6c881" } }, "count" : 1, "billingMode" : 0, "runtime" : { "name" : "docker" }, "extendParam" : { "chargingMode" : 0, "ecs:performancetype" : "computingv3", "enterprise_project_id" : "0", "init-node-password" : "******", "maxPods" : 110, "publicKey" : "" } }, "status" : { "jobID" : "5ec1518c-87db-11ec-b5e5-0255ac101514" } }
Códigos de estado
Código de estado |
Descripción |
---|---|
201 |
El trabajo para crear un nodo en un clúster especificado se entrega correctamente. |
Códigos de error
Consulte Códigos de error.