Crear una reserva para un solo proyecto


En este documento, se explica cómo crear una reserva de un solo proyecto, que solo pueden consumir las instancias de máquina virtual (VM) del mismo proyecto. Si deseas obtener información sobre las reservas, consulta Reservas para recursos zonales de Compute Engine.

Para conocer otros métodos de creación de reservas, consulta las siguientes páginas:

  • Si tienes compromisos de 1 o 3 años en el proyecto actual, tus recursos reservados reciben de forma automática los descuentos por compromiso de uso aplicables. También puedes crear y adjuntar una reserva a un compromiso cuando compras el compromiso. Para obtener más información, consulta Adjunta reservas a compromisos.

  • Para crear una reserva que pueden usar varios proyectos, consulta Crea una reserva compartida.

Antes de comenzar

  • Revisa los requisitos y las y las restricciones para las reservas.
  • 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber 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.

    Terraform

    Para usar las muestras de Terraform de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    1. Instala Google Cloud CLI.
    2. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

      gcloud init
    3. Crea credenciales de autenticación locales para tu Cuenta de Google:

      gcloud auth application-default login

    Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    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

Roles obligatorios

Para obtener los permisos que necesitas para crear reservas para un solo proyecto, pídele a tu administrador que te otorgue el rol de IAM de administrador de Compute (roles/compute.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para crear reservas de un solo proyecto. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear reservas de un solo proyecto:

  • compute.reservations.create en el proyecto
  • Para especificar una plantilla de instancias: usa compute.instanceTemplates.useReadOnly en la plantilla de instancias

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Crea una reserva de un solo proyecto

En esta sección, se explica cómo crear reservas para un solo proyecto.

Para consumir una reserva, una VM debe tener propiedades que coincidan de forma exacta con esa reserva. Para especificar las propiedades de las VMs que deseas reservar, elige una de las siguientes secciones de este documento:

De forma predeterminada, las VMs con propiedades que coincidan con una reserva pueden consumirla de forma automática. Si quieres controlar el consumo de reservas, haz una o más de las siguientes acciones:

Además, puedes especificar una política de posición de compactación cuando creas una reserva de un solo proyecto. Una política de posición de compactación especifica que las VMs deben ubicarse lo más cerca posible entre sí para reducir la latencia de red.

Especifica una plantilla de instancias

Para crear una reserva de un solo proyecto mediante la especificación de una plantilla de instancias, usa la consola de Google Cloud, gcloud CLI o REST.

Console

Para crear una reserva de un solo proyecto si especificas una plantilla de instancias, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Reservas.

    Ir a Reservas

  2. Haz clic en Crear reserva.

    Se abrirá la página Crear una reserva.

  3. En el campo Nombre, ingresa el nombre de tu reserva.

  4. Elige la región y la zona en las que deseas reservar los recursos.

  5. En la sección Compartir tipo, haz clic en Local (configuración predeterminada).

  6. En la sección Usar con instancia de VM, selecciona una de las siguientes opciones:

    • Para permitir que las VMs coincidentes consuman de forma automática esta reserva, haz clic en Usar reserva de forma automática (predeterminado).

    • Para consumir los recursos de esta reserva solo cuando creas VMs coincidentes que se dirigen de forma específica a esta reserva por nombre, haz clic en Seleccionar reserva específica.

  7. En el campo Cantidad de instancias de VM, escribe la cantidad de VMs que deseas reservar.

  8. En la sección Configuración de la máquina, haz lo siguiente:

    1. Para especificar las propiedades de tus VMs de una plantilla de instancias existente, elige Usar plantilla de instancias.

    2. En el campo Plantilla de instancias, elige la plantilla que prefieras. Si eliges una plantilla de instancias regional, solo puedes reservar recursos dentro de la región de la plantilla de instancias.

  9. En la sección Eliminación automática, puedes habilitar la opción de eliminación automática para permitir que Compute Engine borre la reserva en una fecha y hora específicas de forma automática. La eliminación automática de reservas puede ser útil para evitar cargos innecesarios cuando dejas de consumir la reserva.

  10. Para crear la reserva, haz clic en Crear.

    Se abrirá la página Reservas. La creación de la reserva de un solo proyecto puede tomar hasta un minuto en completarse.

gcloud

Si quieres crear una reserva de un solo proyecto mediante la especificación de una plantilla de instancias, usa el comando gcloud compute reservations create.

Para crear una reserva de un solo proyecto con la especificación de una plantilla de instancias sin marcas opcionales, ejecuta el siguiente comando:

gcloud compute reservations create RESERVATION_NAME \
    --project=PROJECT_ID \
    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Reemplaza lo siguiente:

  • RESERVATION_NAME: Es el nombre de la reserva que se creará.

  • PROJECT_ID: Es el ID del proyecto en el que deseas reservar los recursos y donde existe la plantilla de instancias.

  • LOCATION: la ubicación de la plantilla de instancias. Especifica uno de los siguientes valores:

    • Para una plantilla de instancias global: global.

    • Para una plantilla de instancias regional: regions/REGION. Reemplaza REGION por la región en la que se encuentra la plantilla de instancias. Si especificas una plantilla de instancias regional, solo puedes reservar VMs dentro de la región de la plantilla de instancias.

  • INSTANCE_TEMPLATE_NAME: Es nombre de una plantilla de instancias existente. Si especificas una plantilla de instancias que incluye una política de posición compacta, debes especificar la marca --require-specific-reservation. Esto indica que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla.

  • NUMBER_OF_VMS: La cantidad de VMs que se reservarán.

  • ZONE: Es la zona en la que se reservarán los recursos.

Por ejemplo, a fin de crear una reserva para diez VMs en la zona us-central1-a mediante la especificación de una plantilla de instancias global, ejecuta el siguiente comando:

gcloud compute reservations create my-reservation \
    --project=example-project \
    --source-instance-template=projects/example-project/global/example-instance-template \
    --vm-count=10 \
    --zone=us-central1-a

De manera opcional, puedes realizar una o más de las siguientes acciones:

  • Para especificar que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla, incluye la marca --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Para permitir que Compute Engine borre automáticamente la reserva, selecciona uno de los siguientes métodos:

    • Para borrar la reserva en una fecha y hora específicas, usa el comando gcloud beta compute reservations create e incluye la marca --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Reemplaza DELETE_AT_TIME por una fecha y hora con formato de marca de tiempo RFC 3339, que debe ser de la siguiente manera:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos del mes separado por guiones (-).

      • HH:MM:SS: una hora con formato de hora de 2 dígitos con un formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos (:).

      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Como alternativa, para no usar compensación, especifica Z.

    • Para borrar la reserva después de una duración específica, usa el comando gcloud beta compute reservations create e incluye la marca --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Reemplaza DELETE_AFTER_DURATION por una duración en días, horas, minutos o segundos. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para 1 día, 2 horas, 3 minutos y 4 segundos.

REST

Para crear una reserva de un solo proyecto si especificas una plantilla de instancias, realiza una solicitud POST al método reservations.insert.

Para crear una reserva de un solo proyecto si especificas una plantilla de instancias sin marcas opcionales, realiza la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que deseas reservar los recursos y donde existe la plantilla de instancias.

  • ZONE: Es la zona en la que se reservarán los recursos.

  • RESERVATION_NAME: Es el nombre de la reserva que se creará.

  • NUMBER_OF_VMS: La cantidad de VMs que se reservarán.

  • LOCATION: la ubicación de la plantilla de instancias. Especifica uno de los siguientes valores:

    • Para una plantilla de instancias global: global.

    • Para una plantilla de instancias regional: regions/REGION. Reemplaza REGION por la región en la que se encuentra la plantilla de instancias. Si especificas una plantilla de instancias regional, solo puedes reservar VMs dentro de la región de la plantilla de instancias.

  • INSTANCE_TEMPLATE_NAME: Es nombre de una plantilla de instancias existente. Si especificas una plantilla de instancias que incluye una política de posición de compactación, debes especificar el campo specificReservationRequired en el cuerpo de la solicitud y configurarlo como true. Esto indica que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla.

Por ejemplo, a fin de crear una reserva para diez VMs en la zona us-central1-a mediante la especificación de una plantilla de instancias global, realiza la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "specificReservation": {
    "count": "10",
    "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template"
  }
}

De manera opcional, puedes hacer una o más de las siguientes acciones:

  • Para especificar que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla, incluye el campo specificReservationRequired en el cuerpo de la solicitud y configúralo como true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Para permitir que Compute Engine borre de forma automática la reserva, elige uno de los siguientes métodos:

    • Para borrar la reserva en una fecha y hora específicas, haz una solicitud POST al método beta.reservations.insert. En el cuerpo de la solicitud, incluye el campo deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Reemplaza DELETE_AT_TIME por una fecha y hora con formato de marca de tiempo RFC 3339, que debe ser de la siguiente manera:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos del mes separado por guiones (-).

      • HH:MM:SS: una hora con formato de hora de 2 dígitos con un formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos (:).

      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Como alternativa, para no usar compensación, especifica Z.

    • Para borrar la reserva después de una duración específica, haz una solicitud POST al método beta.reservations.insert. En el cuerpo de la solicitud, incluye el campo deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Reemplaza DELETE_AFTER_DURATION por una duración en segundos. Por ejemplo, especifica 86400 para 86,400 segundos (1 día).

Especifica las propiedades directamente

Para crear una reserva compartida mediante la especificación directa de las propiedades, usa la consola de Google Cloud, gcloud CLI, Terraform o REST.

Consola

Para crear una reserva de un solo proyecto, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Reservas.

    Ir a Reservas

  2. Haz clic en Crear reserva.

    Se abrirá la página Crear una reserva.

  3. En el campo Nombre, ingresa el nombre de tu reserva.

  4. Elige la región y la zona en las que deseas reservar los recursos.

  5. En la sección Compartir tipo, haz clic en Local (configuración predeterminada).

  6. En la sección Usar con instancia de VM, selecciona una de las siguientes opciones:

    • Para permitir que las VMs coincidentes consuman de forma automática esta reserva, haz clic en Usar reserva de forma automática (predeterminado).

    • Para consumir los recursos de esta reserva solo cuando creas VMs coincidentes que se dirigen de forma específica a esta reserva por nombre, haz clic en Seleccionar reserva específica.

  7. En el campo Cantidad de instancias de VM, ingresa la cantidad de VMs que deseas reservar.

  8. En la sección Configuración de máquina, selecciona Especificar tipo de máquina y, luego, especifica lo siguiente:

    1. En los campos Familia de máquinas, Serie y Tipo de máquina, elige una familia de máquinas, series y tipos de máquinas.

    2. Para especificar una plataforma de CPU mínima o GPU, haz lo siguiente (opcional):

      1. Para expandir la sección Plataforma de CPU y GPU, haz clic en la flecha de expansión .

      2. Opcional: Para especificar una plataforma de CPU mínima, selecciona una opción en la lista Formulario de CPU.

      3. Opcional: Para agregar GPUs, haz clic en Agregar GPU. Luego, en los campos Tipo de GPU y Cantidad de GPU, elige el tipo y la cantidad de GPU para cada VM.

    3. Opcional: Para agregar SSD locales, haz lo siguiente:

      1. En el campo Cantidad de discos, elige la cantidad de SSD locales para cada VM.

      2. En el campo Tipo de interfaz, selecciona la interfaz para las SSD locales.

    4. Opcional: A fin de especificar una política de posición de compactación para una reserva que cumpla con los requisitos , haz clic en la listaSelecciona o crea una política de posición de grupo y luego, realiza una de las siguientes acciones:

      • Para crear una política de posición de compactación para especificar en esta reserva, sigue estos pasos:

        1. Haz clic en Crear política de posición de grupo.

          Aparecerá el panel Crear una política de posición de grupo.

        2. En el campo Nombre de la política, ingresa un nombre para tu política.

        3. Haz clic en Crear.

          La creación de la política de posición compacta puede tomar unos segundos en completarse.

      • De lo contrario, selecciona una política de posición de compacta existente.

  9. En la sección Eliminación automática, puedes habilitar la opción de eliminación automática para permitir que Compute Engine borre la reserva en una fecha y hora específicas de forma automática. La eliminación automática de reservas puede ser útil para evitar cargos innecesarios cuando dejas de consumir la reserva.

  10. Para crear la reserva, haz clic en Crear.

    La creación de la reserva de un solo proyecto puede tomar un tiempo en completarse. Esta acción te redirecciona a la página Reservas.

gcloud

Para crear una reserva de un solo proyecto, usa el comando gcloud compute reservations create.

Para crear una reserva de un solo proyecto sin marcas opcionales, ejecuta el siguiente comando:

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Reemplaza lo siguiente:

  • RESERVATION_NAME: Es el nombre de la reserva que se creará.

  • MACHINE_TYPE: Un tipo de máquina que se usará para cada VM. Especifica uno de los siguientes valores:

    • Para un tipo predefinido de máquina: MACHINE_FAMILY-standard-CPUS.

    • Para un tipo personalizado de máquina: MACHINE_FAMILY-custom-CPUS-MEMORY. Antes de especificar un tipo personalizado de máquina, revisa las limitaciones para VMs con tipos personalizados de máquinas.

    Reemplaza lo siguiente:

    • MACHINE_FAMILY: la familia de máquinas.

    • CPUS: Es la cantidad de CPU virtuales.

    • MEMORY: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB.

    Por ejemplo, para especificar un tipo personalizado de máquina N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, especifica n2-custom-4-5120.

  • PROJECT_ID: el ID del proyecto en el que deseas reservar los recursos.

  • NUMBER_OF_VMS: La cantidad de VMs que se reservarán.

  • ZONE: Es la zona en la que se reservarán los recursos.

Por ejemplo, a fin de crear una reserva en la zona us-central1-a para diez VMs, cada una con un tipo predefinido de máquina N2 con 4 CPU virtuales, ejecuta el siguiente comando:

gcloud compute reservations create my-reservation \
    --machine-type=n2-standard-4 \
    --project=example-project \
    --vm-count=10 \
    --zone=us-central1-a

De manera opcional, puedes hacer una o más de las siguientes acciones:

  • Para agregar unidades de procesamiento de gráficos (GPU) a cada VM reservada, incluye la marca --accelerator.

    gcloud compute reservations create my-reservation \
        --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
        ...
    

    Reemplaza lo siguiente:

    • NUMBER_OF_ACCELERATORS: Es la cantidad de GPU que se agregará por VM reservada.

    • ACCELERATOR_TYPE: Es el tipo de GPU que se agregará a las VMs reservadas.

    Asegúrate de que el tipo de máquina que especifiques en la reserva admita los tipos de GPU que especifiques y que la GPU esté disponible en la zona en la que deseas reservar los recursos. De lo contrario, la creación de la reserva fallará.

  • Para agregar uno o más SSD locales a cada VM reservada, incluye una o más marcas --local-ssd. Puedes especificar hasta 24 SSD locales. Cada SSD local es de 375 GB.

    Por ejemplo, para especificar dos SSD locales cuando creas una reserva, incluye dos marcas --local-ssd.

    gcloud compute reservations create my-reservation \
        --local-ssd=size=375,interface=INTERFACE_1 \
        --local-ssd=size=375,interface=INTERFACE_2 \
        ...
    

    Reemplaza INTERFACE_1 y INTERFACE_2 por el tipo de interfaz que deseas que use el SSD local. Especifica uno de los siguientes valores:

    • Para las interfaces de disco NVME: nvme.

    • Para interfaces de disco SCSI: scsi.

    Asegúrate de que el tipo de máquina que especifiques para las VMs reservadas admita las interfaces de disco elegidas. De lo contrario, la creación de la reserva fallará. Para obtener más información, consulta cómo elegir una interfaz de disco.

  • Para que las VMs reservadas usen una plataforma de CPU mínima específica en lugar de la plataforma de CPU predeterminada de la zona, incluye la marca --min-cpu-platform.

    gcloud compute reservations create my-reservation \
        --min-cpu-platform="MIN_CPU_PLATFORM" \
        ...
    

    Reemplaza MIN_CPU_PLATFORM por una plataforma de CPU mínima. Para asegurarte de que una plataforma de CPU esté disponible en la zona en la que reservas recursos, consulta las plataformas de CPU disponibles por zona.

  • Para especificar que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla, incluye la marca --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • A fin de especificar una política de posición de compactación para reducir la latencia de red entre las VMs, incluye la marca --resource-policies=policy.

    gcloud compute reservations create example-reservation \
        --resource-policies=policy=COMPACT_PLACEMENT_POLICY_NAME \
        --require-specific-reservation \
        ...
    

    Reemplaza COMPACT_PLACEMENT_POLICY_NAME por el nombre de una política de posición compacta existente. Además, para evitar errores cuando creas una reserva de un solo proyecto que especifique una política de posición compacta, asegúrate de especificar lo siguiente:

    • Un tipo de máquina compatible para las políticas de colocación compacta.

    • Una zona dentro de la región en la que se encuentra la política de posición compacta.

    • La marca --require-specific-reservation Esto indica que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla.

  • Para permitir que Compute Engine borre de forma automática la reserva, elige uno de los siguientes métodos:

    • Para borrar la reserva en una fecha y hora específicas, usa el comando gcloud beta compute reservations create e incluye la marca --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Reemplaza DELETE_AT_TIME por una fecha y hora con formato de marca de tiempo RFC 3339, que debe ser de la siguiente manera:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos del mes separado por guiones (-).

      • HH:MM:SS: una hora con formato de hora de 2 dígitos con un formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos (:).

      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Como alternativa, para no usar compensación, especifica Z.

    • Para borrar la reserva después de una duración específica, usa el comando gcloud beta compute reservations create e incluye la marca --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Reemplaza DELETE_AFTER_DURATION por una duración en días, horas, minutos o segundos. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para 1 día, 2 horas, 3 minutos y 4 segundos.

Terraform

Para crear una reserva de un solo proyecto, usa el recurso de Terraform google_compute_reservation.


resource "google_compute_reservation" "default" {
  name = "gce-reservation-local"
  zone = "us-central1-a"

  /**
   * To specify a single-project reservation, omit the share_settings block
   * (default) or set the share_type field to LOCAL.
   */
  share_settings {
    share_type = "LOCAL"
  }

  specific_reservation {
    count = 1
    instance_properties {
      machine_type = "n2-standard-2"
    }
  }

  /**
   * To let VMs with affinity for any reservation consume this reservation, omit
   * the specific_reservation_required field (default) or set it to false.
   */
  specific_reservation_required = false
}

Para obtener más información sobre cómo usar Terraform, consulta Usa Terraform con Google Cloud.

REST

Para crear una reserva de un solo proyecto, realiza una solicitud POST al método reservations.insert.

Para crear una reserva de un solo proyecto sin campos opcionales, realiza la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations

{
  "name": "RESERVATION_NAME",
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que deseas reservar los recursos.

  • ZONE: Es la zona en la que se reservarán los recursos.

  • RESERVATION_NAME: Es el nombre de la reserva que se creará.

  • NUMBER_OF_VMS: La cantidad de VMs que se reservarán.

  • MACHINE_TYPE: Un tipo de máquina que se usará para cada VM. Especifica uno de los siguientes valores:

    • Para un tipo predefinido de máquina: MACHINE_FAMILY-standard-CPUS.

    • Para un tipo personalizado de máquina: MACHINE_FAMILY-custom-CPUS-MEMORY. Antes de especificar un tipo personalizado de máquina, revisa las limitaciones para VMs con tipos personalizados de máquinas.

    Reemplaza lo siguiente:

    • MACHINE_FAMILY: la familia de máquinas.

    • CPUS: Es la cantidad de CPU virtuales.

    • MEMORY: la memoria total para una VM reservada. La memoria debe ser un múltiplo de 256 MB y debe proporcionarse en MB.

    Por ejemplo, para especificar un tipo personalizado de máquina N2 con 4 CPUs virtuales y 5 GB de memoria, que son 5,120 MB, especifica n2-custom-4-5120.

Por ejemplo, a fin de crear una reserva en la zona us-central1-a para diez VMs, cada una con un tipo predefinido de máquina N2 con 4 CPU virtuales, realiza la siguiente solicitud POST:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "specificReservation": {
    "count": "10",
    "instanceProperties": {
      "machineType": "n2-standard-4",
    }
  }
}

De manera opcional, puedes hacer una o más de las siguientes acciones:

  • Para agregar unidades de procesamiento de gráficos (GPU) a cada VM reservada, incluye el campo guestAccelerators en el cuerpo de la solicitud.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "guestAccelerators": [
            {
              "acceleratorCount": NUMBER_OF_ACCELERATORS,
              "acceleratorType": "ACCELERATOR_TYPE"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Reemplaza lo siguiente:

    • NUMBER_OF_ACCELERATORS: Es la cantidad de GPU que se agregará por VM reservada.

    • ACCELERATOR_TYPE: Es el tipo de GPU que se agregará a las VMs reservadas.

    Asegúrate de que el tipo de máquina que especifiques en la reserva admita los tipos de GPU que especifiques y que la GPU esté disponible en la zona en la que deseas reservar los recursos. De lo contrario, la creación de la reserva fallará.

  • Para agregar uno o más SSD locales a cada VM reservada, incluye el campo localSsds en el cuerpo de la solicitud. Puedes especificar hasta 24 SSD locales. Cada SSD local es de 375 GB.

    Por ejemplo, para especificar dos SSD locales cuando creas una reserva, especifica lo siguiente:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "localSsds": [
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_2"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Reemplaza INTERFACE_1 y INTERFACE_2 por el tipo de interfaz que deseas que use cada SSD local. Especifica uno de los siguientes valores:

    • Para las interfaces de disco NVME: NVME.

    • Para interfaces de disco SCSI: SCSI.

    Asegúrate de que el tipo de máquina que especifiques para las VMs reservadas admita las interfaces de disco elegidas. De lo contrario, la creación de la reserva fallará. Para obtener más información, consulta cómo elegir una interfaz de disco.

  • Para que las VMs reservadas usen una plataforma de CPU mínima específica en lugar de la plataforma de CPU predeterminada de la zona, incluye el campo minCpuPlatform en el cuerpo de la solicitud.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "minCpuPlatform": "MIN_CPU_PLATFORM",
          ...
        },
        ...
      }
    }
    

    Reemplaza MIN_CPU_PLATFORM por una plataforma de CPU mínima. Para asegurarte de que una plataforma de CPU esté disponible en la zona en la que reservas recursos, consulta las plataformas de CPU disponibles por zona.

  • Para especificar una política de posición de compactación, a fin de reducir la latencia de red entre tus VMs reservadas, incluye el campo resourcePolicies en el cuerpo de la solicitud.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "resourcePolicies": {
        "policy" : "projects/example-project/regions/REGION/resourcePolicies/COMPACT_PLACEMENT_POLICY_NAME"
      },
      "specificReservationRequired": true,
      ...
    }
    

    Reemplaza lo siguiente:

    • REGION: la región en la que se encuentra la política de posición compacta. Debes reservar recursos dentro de la misma región de la política de posición. De lo contrario, la creación de la reserva fallará.

    • COMPACT_PLACEMENT_POLICY_NAME: el nombre de una política de posición de compactación existente.

    Además, para evitar errores cuando creas una reserva de un solo proyecto que especifique una política de posición compacta, asegúrate de especificar lo siguiente:

  • Para especificar que solo las VMs que se dirigen a esta reserva de forma específica pueden consumirla, incluye el campo specificReservationRequired en el cuerpo de la solicitud y configúralo como true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Para permitir que Compute Engine borre de forma automática la reserva, elige uno de los siguientes métodos:

    • Para borrar la reserva en una fecha y hora específicas, haz una solicitud POST al método beta.reservations.insert. En el cuerpo de la solicitud, incluye el campo deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Reemplaza DELETE_AT_TIME por una fecha y hora con formato de marca de tiempo RFC 3339, que debe ser de la siguiente manera:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Reemplaza lo siguiente:

      • YYYY-MM-DD: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos del mes separado por guiones (-).

      • HH:MM:SS: una hora con formato de hora de 2 dígitos con un formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntos (:).

      • OFFSET: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), especifica -08:00. Como alternativa, para no usar compensación, especifica Z.

    • Para borrar la reserva después de una duración específica, haz una solicitud POST al método beta.reservations.insert. En el cuerpo de la solicitud, incluye el campo deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Reemplaza DELETE_AFTER_DURATION por una duración en segundos. Por ejemplo, especifica 86400 para 86,400 segundos (1 día).

Soluciona problemas

Obtén más información sobre cómo solucionar problemas de creación de reservas.

¿Qué sigue?