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

Migración de un nodo

Función

Esta API se utiliza para migrar un nodo de un clúster especificado a otro clúster.

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

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}

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.

target_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

No

String

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

kind

No

String

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

spec

Objeto de MigrateNodesSpec

Datos de configuración.

status

No

Objeto de TaskStatus

Estado del trabajo.

Tabla 4 MigrateNodesSpec

Parámetro

Obligatorio

Tipo

Descripción

os

String

Tipo del sistema operativo, que debe ser exacto al número de versión. Cuando se especifica alpha.cce/NodeImageID, el valor de os debe ser el mismo que el SO de la imagen personalizada.

extendParam

No

Objeto de MigrateNodeExtendParam

Parámetros extendidos para la migración de nodos.

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.

nodes

Matriz de objetos de NodeItem

Lista de nodos a operar.

Tabla 5 MigrateNodeExtendParam

Parámetro

Obligatorio

Tipo

Descripción

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.

DockerLVMConfigOverride

No

String

Configuraciones de disco de datos de Docker. El tipo de disco de los nodos que se van a migrar debe ser el mismo que el especificado durante la creación del nodo (es decir, el valor de diskType en DockerLVMConfigOverride debe ser el mismo que el especificado durante la creación del nodo). Asegúrese de que los tipos de disco de los nodos seleccionados para una sola invocación a la API son los mismos. Ejemplo de configuración predeterminada:

"DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

Se incluyen los siguientes campos:

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

  • userPath (opcional): 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.

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

ID de la imagen de usuario para ejecutar el SO de destino. Cuando se especifica alpha.cce/NodeImageID, el valor de os debe ser el mismo que el SO de la imagen personalizada.

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 NodeItem

Parámetro

Obligatorio

Tipo

Descripción

uid

String

ID del nodo.

Tabla 9 TaskStatus

Parámetro

Obligatorio

Tipo

Descripción

jobID

No

String

ID del trabajo, que es utilizado por el llamante para consultar el progreso del trabajo.

Parámetros de respuesta

Código de estado: 200

Tabla 10 Parámetros del cuerpo de respuesta

Parámetro

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 MigrateNodesTask.

spec

Objeto de MigrateNodesSpec

Datos de configuración.

status

Objeto de TaskStatus

Estado del trabajo.

Tabla 11 MigrateNodesSpec

Parámetro

Tipo

Descripción

os

String

Tipo del sistema operativo, que debe ser exacto al número de versión. Cuando se especifica alpha.cce/NodeImageID, el valor de os debe ser el mismo que el SO de la imagen personalizada.

extendParam

Objeto de MigrateNodeExtendParam

Parámetros extendidos para la migración de nodos.

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.

nodes

Matriz de objetos de NodeItem

Lista de nodos a operar.

Tabla 12 MigrateNodeExtendParam

Parámetro

Tipo

Descripción

maxPods

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.

DockerLVMConfigOverride

String

Configuraciones de disco de datos de Docker. El tipo de disco de los nodos que se van a migrar debe ser el mismo que el especificado durante la creación del nodo (es decir, el valor de diskType en DockerLVMConfigOverride debe ser el mismo que el especificado durante la creación del nodo). Asegúrese de que los tipos de disco de los nodos seleccionados para una sola invocación a la API son los mismos. Ejemplo de configuración predeterminada:

"DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

Se incluyen los siguientes campos:

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

  • userPath (opcional): 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.

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

ID de la imagen de usuario para ejecutar el SO de destino. Cuando se especifica alpha.cce/NodeImageID, el valor de os debe ser el mismo que el SO de la imagen personalizada.

Tabla 13 Login

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.

Tabla 14 UserPassword

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:

  • 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 15 NodeItem

Parámetro

Tipo

Descripción

uid

String

ID del nodo.

Tabla 16 TaskStatus

Parámetro

Tipo

Descripción

jobID

String

ID del trabajo, que es utilizado por el llamante para consultar el progreso del trabajo.

Ejemplo de las solicitudes

  • Migración de un nodo

    PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}
    
    {
      "spec" : {
        "os" : "EulerOS 2.5",
        "login" : {
          "sshKey" : "KeyPair-001"
        },
        "nodes" : [ {
          "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, {
          "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
        } ]
      }
    }
  • Migración de un nodo mediante un ID de imagen especificado del usuario

    PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/operation/migrateto/{target_cluster_id}
    
    {
      "spec" : {
        "os" : "EulerOS 2.5",
        "extendParam" : {
          "alpha.cce/NodeImageID" : "cc697ad7-9563-11e8-8ea7-0255ac106311"
        },
        "login" : {
          "sshKey" : "KeyPair-001"
        },
        "nodes" : [ {
          "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, {
          "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
        } ]
      }
    }

Ejemplo de las respuestas

Código de estado: 200

El trabajo para migrar un nodo de un clúster especificado a otro clúster se entrega correctamente.

{
  "spec" : {
    "os" : "EulerOS 2.5",
    "login" : {
      "sshKey" : "KeyPair-001"
    },
    "nodes" : [ {
      "uid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }, {
      "uid" : "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    } ]
  },
  "status" : {
    "jobID" : "2ec9b78d-9368-46f3-8f29-d1a95622a568"
  }
}

Códigos de estado

Código de estado

Descripción

200

El trabajo para migrar un nodo de un clúster especificado a otro clúster se entrega correctamente.

Códigos de error

Consulte Códigos de error.