Comparte grupos de nodos de usuario único


Los grupos de nodos de usuario único compartidos son similares a los grupos de nodos de usuario único locales. Por ejemplo, los grupos de nodos compartidos cuestan lo mismo, consumen la misma cuota y residen en un proyecto superior en la jerarquía de recursos.

La diferencia entre los grupos de nodos compartidos y los grupos de nodos locales es que otros proyectos de tu organización pueden aprovisionar instancias de máquinas virtuales (VM) en los grupos de nodos compartidos.

Compartir un grupo de nodos en varios proyectos o una organización puede ayudarte a realizar las siguientes acciones:

  • Consolidar grupos de nodos que administras en un solo proyecto y, luego, compártelos con otros proyectos o toda la organización

  • Borrar nodos después de consolidar las VM de varios proyectos en grupos de nodos con poco uso para disminuir los costos

  • Administrar nodos de usuario único con un solo equipo

  • Compartir nodos de usuario único con proyectos más pequeños y conservar los límites de seguridad y control de acceso entre esos proyectos

  • Realiza una migración en vivo entre grupos de nodos dentro del mismo proyecto

  • Mejorar el uso de los grupos de nodos y reduce la cantidad de nodos de mantenimiento reservados cuando se usa la política de mantenimiento de migración dentro del grupo de nodos.

En el siguiente diagrama, se muestra un grupo de nodos que se comparte con otros proyectos para que otros departamentos que administren VMs en esos proyectos puedan aprovisionar VMs en un grupo de nodos compartido.

Diagrama de un grupo de nodos que se comparte entre proyectos. Los departamentos que administran VM en diferentes proyectos pueden aprovisionar VM en un grupo de nodos compartido.

Beneficios de uso de los grupos de nodos compartidos

En la siguiente tabla, se comparan los proyectos que usan grupos de nodos locales con los que usan grupos de nodos compartidos. Observa que el poco uso de CPU virtuales disminuye en los proyectos que usan grupos de nodos compartidos.

Configuración del proyecto Grupos de nodos locales Grupos de nodos compartidos
Projects 10 10
CPU virtual/proyecto 24 24
Grupos de nodos 10 1
Nodos / grupo de nodos 1 3
CPU virtual / nodo 80 80
Uso / grupo de nodos 24 80
Subutilización / grupo de nodos 56 0
Subutilización total 10 × 56 = 560 CPU virtuales 1 x 0 = 0 CPU virtuales

Configuración para compartir grupos de nodos

Compute Engine usa la siguiente configuración para compartir grupos de nodos y aprovisionar VM en los grupos de nodos compartidos:

  • Una configuración de uso compartido que configuras cuando creas o actualizas el grupo de nodos de usuario único. Para especificar si quieres compartir el grupo de nodos con otros proyectos o con toda la organización, usa la configuración de gcloud CLI (--share-setting, --share-with) o la configuración de REST (shareSetting) , shareWith).

  • Una etiqueta de afinidad de nodo compute.googleapis.com/project predeterminada que usas cuando aprovisionas una VM en un grupo de nodos compartido a través de etiquetas de afinidad de nodo. Para obtener información de las otras etiquetas de afinidad de nodos predeterminadas, consulta Etiquetas de afinidad predeterminadas.

Consideraciones de la política de mantenimiento

Cuando un grupo de nodos usa la política de mantenimiento de migración dentro del grupo de nodos, Compute Engine reserva al menos 1 nodo para eventos de migración en vivo, por lo que el grupo de nodos debe tener al menos 2 nodos. No puedes programar VMs en el nodo reservado, por lo que los grupos de nodos con esta política de mantenimiento suelen tener un uso general más bajo. Esto hace que las cargas de trabajo que requieren la política de mantenimiento de migración dentro del grupo de nodos sean buenas candidatas para el uso compartido de grupos de nodos, ya que a menudo ven el mayor beneficio de una utilización mejorada.

Permisos y funciones de IAM

Ten en cuenta la siguiente información de funciones y permisos de IAM cuando compartas un grupo de nodos:

  • Si un grupo de nodos se comparte con un proyecto, cualquier usuario que pueda crear VMs en los proyectos enumerados o en la organización puede aprovisionar VMs desde esos proyectos en el grupo de nodos compartidos sin ningún cambio en los roles o los permisos de IAM.

  • El rol de IAM compute.soleTenantViewer te permite enumerar y ver grupos de nodos (gcloud CLI/REST). No puedes modificar grupos de nodos con este rol. Cualquier usuario con este rol o con permisos para enumerar grupos de nodos, sin importar los permisos de IAM en la VM, puede ver el ID del proyecto, el nombre, el tipo de máquina y la información de los SSD y GPU locales para todas las VMs del grupo de nodos.

Limitaciones

  • Limitaciones del régimen de cumplimiento

    • Sin importar los permisos de IAM en la VM, cualquier usuario con permisos para enumerar grupos de nodos puede ver el ID del proyecto, el nombre y el tipo de máquina de todas las VMs del grupo de nodos. Por lo tanto, debido al riesgo de divulgación de la información entre proyectos, los proyectos que tienen VMs aprovisionadas en grupos de nodos compartidos deben estar bajo el mismo régimen de cumplimiento.
  • Limitaciones de la consola de Google Cloud:

    • Si no tienes permiso para ver VMs en el grupo de nodos compartidos, esas VMs no aparecerán en la lista de VMs en la página Nodos de usuario único de la consola de Google Cloud.
    • Después de modificar la configuración de uso compartido de la página Grupos de nodos de usuario único, la configuración Compartido con no se actualiza en la IU. Para ver el parámetro de configuración actualizado Compartido con, ve a la página Nodos de usuario único.
    • Después de compartir un grupo de nodos con todos los proyectos dentro de una organización o con proyectos seleccionados dentro de una organización, solo puedes ver el grupo de nodos compartido de su propio proyecto; no puedes ver el grupo de nodos compartido de los proyectos con los que se compartió. Para aprovisionar una VM en el grupo de nodos compartido, desde el proyecto con el que se comparte el grupo de nodos, ve a la página Instancias de VM y, luego, modifica las etiquetas de afinidad de nodo de usuario único.
  • Limitaciones de uso compartido:

    • Debes actualizar la configuración de uso compartido del proyecto que posee el grupo de nodos.
    • Puedes especificar un máximo de 100 proyectos cuando usas la configuración de uso compartido projects.
    • No puedes compartir grupos de nodos entre organizaciones. Por ejemplo, si migras un proyecto que contiene un grupo de nodos compartido de una organización a otra, también debes migrar todos los proyectos que tengan VMs en ejecución en ese nodo compartido.
    • No puedes realizar una migración en vivo entre proyectos mientras usas grupos de nodos de usuario único. Para obtener más información, consulta Migra VM en vivo de forma manual.

Precios

Las VM en los grupos de nodos compartidos no generan cargos adicionales ni cargos adicionales por compartir grupos de nodos. Para obtener más información de los precios de los nodos de usuario único, consulta Precios de nodos de usuario único.

Antes de comenzar

  • Antes de crear un grupo de nodos de usuario único, crea una plantilla de nodo de usuario único.
  • Antes de aprovisionar las VM en un nodo de usuario único, verifica tu cuota. Según la cantidad y el tamaño de los nodos que reservas, es posible que debas solicitar una cuota adicional.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Crea un grupo de nodos nuevo y compártelo

Para crear un grupo de nodos nuevo y compartirlo con otros proyectos o con toda la organización, usa la consola de Google Cloud, gcloud CLI o REST.

Consola

  1. Crea un grupo de nodo de usuario único. Para obtener más información, consulta Crea un grupo de nodos de usuario único.

  2. Para establecer la configuración de uso compartido, especifica una de las siguientes opciones en Establece la configuración de uso compartido:

    • Para compartir el grupo de nodos con todos los proyectos de tu organización, elige Compartir este grupo de nodos con todos los proyectos dentro de la organización.
    • Para compartir el grupo de nodos con proyectos específicos dentro de la organización, elige Compartir este grupo de nodos con proyectos seleccionados dentro de la organización.

    Si no deseas compartir el grupo de nodos, elige No compartir este grupo de nodos con otros proyectos.

gcloud

Para crear un grupo de nodos compartido, usa el siguiente comando gcloud compute sole-tenancy node-groups create.

gcloud compute sole-tenancy node-groups create NODE_GROUP \
    --zone=ZONE \
    --node-template=NODE_TEMPLATE \
    --target-size=SIZE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Reemplaza lo siguiente:

  • NODE_GROUP: Es el nombre del grupo de nodos

  • ZONE: Es la zona en la que se creará el grupo de nodos

  • NODE_TEMPLATE: Es el nombre de la plantilla de nodo que se creó antes

  • SIZE: Es la cantidad de nodos en el grupo de nodos

  • SHARE_SETTING: Es la configuración de uso compartido del grupo de nodos Configúralo como projects para compartirlo con proyectos específicos o en organization para compartirlo con toda la organización

  • PROJECTS: Una lista de los IDs o números de proyectos con los que se compartirá el grupo de nodos Solo es necesaria si configuras SHARE_SETTING en projects.

REST

Para crear un grupo de nodos compartido, usa el siguiente método nodeGroups.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

{
  ...
  "name": NODE_GROUP,
  "nodeTemplate": NODE_TEMPLATE,
  "size": SIZE,
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
  ...
}

Reemplaza lo siguiente:

  • PROJECT: Es el nombre del proyecto en el que se creará el grupo de nodos.

  • ZONE: Es la zona en la que se creará el grupo de nodos

  • NODE_GROUP: Es el nombre del grupo de nodos

  • NODE_TEMPLATE: Es el nombre de la plantilla de nodo que se creó antes

  • SIZE: Es la cantidad de nodos en el grupo de nodos

  • SHARE_TYPE: Es la configuración de uso compartido del grupo de nodos Configúralo como SPECIFIC_PROJECTS para compartirlo con proyectos específicos o en ORGANIZATION para compartirlo con toda la organización

  • PROJECTS: Una lista de los IDs o números de proyectos con los que se compartirá el grupo de nodos Solo es necesaria si configuras SHARE_TYPE en SPECIFIC_PROJECTS.

Aprovisiona una VM de usuario único en un grupo de nodos compartido

Para aprovisionar una VM de usuario único en un grupo de nodos compartido, usa la consola de Google Cloud, gcloud CLI o REST.

Consola

  1. En la consola de Google Cloud, cambia a un proyecto con el que hayas compartido un grupo de nodos.

  2. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  3. Haga clic en Crear instancia.

  4. En Zona, elige la zona del grupo de nodos compartido.

  5. En Configuración de la máquina > Serie, elige el mismo tipo de máquina que especifica la plantilla del grupo de nodos de usuario único compartido.

  6. Abre Opciones avanzadas > Usuario único > Explorar.

  7. Elige Seleccionar proyecto y especifica el proyecto que contiene el grupo de nodos compartido.

  8. Elige el grupo de nodos de usuario único o un nodo de usuario único específico en ese grupo para aprovisionar la VM.

gcloud

Aprovisiona una VM en un grupo de nodos compartido con el nombre del grupo de nodos

Para aprovisionar una VM de usuario único en un grupo de nodos compartido a través del nombre del grupo de nodos, usa el siguiente comando gcloud compute instances create.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-group=NODE_GROUP \
    --node-project=NODE_PROJECT

Reemplaza lo siguiente:

  • VM_NAME: El nombre de la VM de usuario único nueva que se creará en un grupo de nodos compartido

  • MACHINE_TYPE: Es el tipo de máquina para la nueva VM de usuario único

  • NODE_GROUP: Es el nombre del grupo de nodos compartido en el que se creará la VM de usuario único

  • NODE_PROJECT: Es el proyecto que contiene el grupo de nodos en el que se aprovisionará la VM

Aprovisiona una VM en un grupo de nodos compartido a través de un archivo de afinidad de nodo

Para aprovisionar una VM de usuario único en un grupo de nodos compartido a través de un archivo de afinidad de nodo, usa el siguiente comando gcloud compute instances create.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --node-affinity-file=NODE_AFFINITY_FILE

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la VM de usuario único que se creará en un grupo de nodos compartido a través de una etiqueta de afinidad

  • MACHINE_TYPE: Es el tipo de máquina de la VM de usuario único que se creará en un grupo de nodos compartido

  • NODE_AFFINITY_FILE: Es el nombre del archivo .json que contiene la información de afinidad del nodo En el archivo de afinidad de nodos, establece la clave de etiqueta de afinidad en "compute.googleapis.com/project", el operador igual a "IN" y el valor igual al proyecto que contiene el grupo de nodos. Para obtener más información acerca de cómo configurar la afinidad de nodos, consulta Configura las etiquetas de afinidad de nodos.

REST

Para aprovisionar una VM de usuario único en un grupo de nodos compartido a través de un archivo de afinidad de nodo, usa el siguiente método nodeGroups.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

{
  ...
  "name": VM_NAME,
  "machineType": MACHINE_TYPE,
  "scheduling": {
    ...
    "nodeAffinities": [
      {
        "key": KEY,
        "operator": OPERATOR,
        "values": [
          VALUE
        ]
      }
    ],
    ...
  },
  ...
}

Reemplaza lo siguiente:

  • PROJECT: Es el nombre del proyecto al que pertenece el grupo de nodos

  • ZONE: Es la zona del grupo de nodos

  • VM_NAME: Es el nombre de la VM de usuario único que se creará en un grupo de nodos compartido a través de una etiqueta de afinidad

  • MACHINE_TYPE: Es el tipo de máquina de la VM de usuario único que se creará en un grupo de nodos compartido

  • KEY: Es la etiqueta de afinidad Se establece en "compute.googleapis.com/project".

  • OPERATOR: El operador de la etiqueta de afinidad Se establece en "IN".

  • VALUE: el proyecto que contiene el grupo de nodos en el que se aprovisionará la VM. Especifica un proyecto a través del nombre o el ID del proyecto.

Para obtener más información acerca de cómo configurar la afinidad de nodos, consulta Configura las etiquetas de afinidad de nodos.

Visualiza la configuración de uso compartido de un grupo de nodos

Para ver la configuración de uso compartido de un grupo de nodos, usa la consola de Google Cloud, gcloud CLI o REST.

Consola

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Para ver las propiedades del grupo de nodos, en la columna Nombre, haz clic en el nombre del grupo de nodos.

gcloud

Para ver la configuración de uso compartido de un grupo de nodos, usa el siguiente comando gcloud compute sole-tenancy node-groups describe.

gcloud compute sole-tenancy node-groups describe NODE_GROUP

Reemplaza NODE_GROUP por el nombre del grupo de nodos del que deseas ver la configuración de uso compartido.

REST

Para ver la configuración de uso compartido de un grupo de nodos, usa el siguiente método nodeGroups.get.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups

Reemplaza lo siguiente:

  • PROJECT: Es el nombre del proyecto con el grupo de nodos para ver la configuración de uso compartido de

  • ZONE: Es la zona que contiene el grupo de nodos para ver la configuración de uso compartido de

Comparte un grupo de nodos existente

Para compartir un grupo de nodos existente con otros proyectos o toda la organización, usa la consola de Google Cloud, gcloud CLI o REST.

Consola

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. En la columna Nombre, haz clic en el nombre del grupo de nodos.

  3. Para compartir el grupo de nodos con todos los proyectos dentro de la organización o con proyectos seleccionados dentro de la organización, en Descripción general >Compartido con, haz clic en Editar .

gcloud

Para actualizar la configuración de uso compartido de un grupo de nodos, usa el siguiente comando gcloud compute sole-tenancy node-groups update.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=SHARE_SETTING \
    --share-with=PROJECTS

Reemplaza lo siguiente:

  • NODE_GROUP: Es el nombre del grupo de nodos desde el que se actualizará la configuración de uso compartido

  • SHARE_SETTING: Es la configuración de uso compartido del grupo de nodos Configúralo como projects para compartirlo con proyectos específicos o en organization para compartirlo con toda la organización

  • PROJECTS: Una lista de los IDs o números de proyectos con los que se compartirá el grupo de nodos Solo es necesaria si configuras SHARE_SETTING en projects.

REST

Para actualizar la configuración de uso compartido de un grupo de nodos, usa el siguiente método nodeGroups.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": SHARE_TYPE,
    "projectMap": {
      string: {
        "projectId": PROJECTS
      },
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT: El nombre del proyecto con los grupos de nodos en los que se actualizará la configuración de uso compartido de

  • ZONE: Es la zona que contiene los grupos de nodos desde los que se actualizará la configuración de uso compartido de

  • NODE_GROUP: Es el nombre del grupo de nodos desde el que se actualizará la configuración de uso compartido

  • SHARE_TYPE: Es la configuración de uso compartido del grupo de nodos Configúralo como projects para compartirlo con proyectos específicos o en organization para compartirlo con toda la organización

  • PROJECTS: Una lista de los IDs o números de proyectos con los que se compartirá el grupo de nodos Solo es necesaria si configuras SHARE_SETTING en SPECIFIC_PROJECTS.

Deja de compartir un grupo de nodos

Para dejar de compartir un grupo de nodos con otros proyectos o toda la organización, usa gcloud CLI o REST.

Consola

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Haz clic en el Nombre del grupo de nodos.

  3. En Descripción general > Compartido con, haz clic en Editar .

  4. Para dejar de compartir, elige No compartir este grupo de nodos con otros proyectos.

gcloud

Para dejar de compartir un grupo de nodos con otros proyectos o toda la organización, usa el siguiente comando gcloud compute sole-tenancy node-groups update.

gcloud compute sole-tenancy node-groups update NODE_GROUP \
    --zone=ZONE \
    --share-setting=local

Reemplaza NODE_GROUP por el nombre del grupo de nodos para dejar de compartir.

REST

Para dejar de compartir un grupo de nodos con otros proyectos o toda la organización, usa el siguiente método nodeGroups.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": LOCAL
  }
}

Reemplaza lo siguiente:

  • PROJECT: Es el nombre del proyecto con el grupo de nodos en el que se dejará de compartir

  • ZONE: Es la zona que contiene el grupo de nodos en la que se dejará de compartir

  • NODE_GROUP: Es el nombre del grupo de nodos para dejar de compartir

Borra un grupo de nodos del proyecto propietario

Para borrar un grupo de nodos compartido del proyecto propietario, usa la consola de Google Cloud, gcloud CLI o REST. Antes de borrar un grupo de nodos, detén todas las VMs que se ejecutan en el grupo.

Consola

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. En la columna Nombre, haz clic en el nombre del grupo de nodos.

  3. Haz clic en Borrar.

gcloud

Para borrar un grupo de nodos compartido del proyecto propietario, usa el siguiente gcloud compute sole-tenancy node-groups delete comando .

gcloud compute sole-tenancy node-groups delete NODE_GROUP

Reemplaza NODE_GROUP por el nombre del grupo de nodos que deseas borrar.

REST

Para borrar un grupo de nodos compartido del proyecto propietario, usa el siguiente método nodeGroups.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

Reemplaza lo siguiente:

  • PROJECT: Es el nombre del proyecto con el grupo de nodos que se borrará

  • ZONE: Es la zona que contiene el grupo de nodos que se borrará.

  • NODE_GROUP: es el nombre del grupo de nodos que se borrará