Establecer una forma de distribución objetivo para las máquinas virtuales en un MIG regional


Si usas un grupo de instancias administrado (MIG) regional , puedes configurar la forma de distribución de destino de ese MIG en una de las siguientes opciones:

  • INCLUSO (predeterminado): el grupo crea y elimina máquinas virtuales para lograr y mantener la misma cantidad de máquinas virtuales en las zonas seleccionadas. En una distribución EVEN , el número de VM no difiere en más de 1 entre dos zonas cualesquiera. Recomendado para cargas de trabajo de servicio de alta disponibilidad.
  • EQUILIBRADO : el grupo prioriza la creación de máquinas virtuales en zonas donde hay recursos disponibles, mientras distribuye las máquinas virtuales de la manera más uniforme posible entre las zonas seleccionadas para minimizar el impacto de las fallas zonales. Recomendado para cargas de trabajo por lotes o de entrega de alta disponibilidad.
  • CUALQUIER : el grupo elige zonas para crear instancias de VM para cumplir con la cantidad solicitada de VM dentro de las limitaciones de recursos actuales y maximizar la utilización de las reservas zonales no utilizadas. Recomendado para cargas de trabajo por lotes que no requieren alta disponibilidad.
  • CUALQUIER ZONA ÚNICA : el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función del soporte de hardware, la disponibilidad actual de recursos y cuotas y las reservas coincidentes. Recomendado en combinación con una política de ubicación de instancias compacta para cargas de trabajo que requieren una comunicación extensa entre las máquinas virtuales.

Para usar máquinas virtuales reservadas en un grupo de instancias administrado regional, cree reservas idénticas con el mismo nombre en cada zona aplicable. Luego, oriente esas reservas por nombre en la plantilla de instancias del grupo.

Para ayudarle a elegir una forma, consulte la tabla comparativa , los casos de uso y cómo funcionan las formas de distribución .

Establezca una forma de distribución objetivo al crear su MIG regional o actualice la forma objetivo de un MIG regional existente.

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      Para obtener más información, consulta Set up authentication for a local development environment.

      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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Limitaciones

  • Solo puede seleccionar zonas para su MIG cuando crea el MIG.
  • Si especifica recursos en la plantilla de instancia de su MIG o en la configuración con estado que no están disponibles en todas las zonas seleccionadas, se aplican las siguientes limitaciones:

    • Debe establecer la forma de distribución de destino en BALANCED , ANY o ANY_SINGLE_ZONE .
    • Debe asegurarse de que todos los recursos requeridos por MIG (por ejemplo, discos, tipos de máquinas o GPU existentes) estén disponibles en al menos una de las zonas seleccionadas.
    • Si desea actualizar la configuración de MIG (por ejemplo, plantilla de instancia) a una configuración de la que no se pueden crear instancias en todas las zonas seleccionadas, debe eliminar las instancias administradas de todas las zonas no compatibles antes de establecer la nueva configuración.
  • Para establecer la forma de distribución de destino en BALANCED o ANY_SINGLE_ZONE , debe desactivar la redistribución proactiva de instancias .

  • Si desea escalar automáticamente un MIG regional, debe establecer la forma de distribución objetivo del grupo en BALANCED o EVEN .
  • Si establece la forma de distribución de destino en BALANCED , ANY o ANY_SINGLE_ZONE , se aplican las siguientes limitaciones:

    • No se admiten actualizaciones Canary con dos versiones .
    • En caso de disponibilidad limitada de los recursos solicitados en toda la región, el grupo podría programar la creación de una instancia de VM en una zona donde los recursos ya no estén disponibles. Puede intentar disminuir y aumentar el tamaño del grupo para obtener los recursos solicitados en otras zonas.
    • Las actualizaciones continuas que utilizan el método de reemplazo SUBSTITUTE intentarán crear las nuevas instancias actualizadas en la misma zona que las máquinas obsoletas, incluso si la zona no tiene recursos para adaptarse a los requisitos de la nueva versión. Para mediar en este comportamiento, puede eliminar las máquinas virtuales obsoletas de la zona restringida y luego aumentar el tamaño del grupo según la cantidad de máquinas virtuales eliminadas. El grupo crea instancias a partir de la plantilla más reciente en zonas donde hay capacidad disponible.
    • Si desea actualizar la plantilla de instancias del grupo a una plantilla que especifique recursos que no están disponibles en todas las zonas seleccionadas, debe eliminar las instancias administradas de las zonas no compatibles antes de configurar la nueva plantilla.
  • Si establece la forma de distribución de destino en ANY_SINGLE_ZONE y el grupo tiene máquinas virtuales existentes en una sola zona, puede crear máquinas virtuales adicionales solo en esa zona. Si desea utilizar una zona diferente, primero debe escalar el grupo a cero máquinas virtuales.

  • Si necesita aprovisionar un grupo de máquinas virtuales de único inquilino , debe establecer la forma de distribución de destino del MIG en EVEN . Cree sus grupos de nodos en las mismas zonas que las zonas del MIG y establezca las afinidades de los nodos del MIG en la plantilla de instancia del MIG.

Crear un grupo con una forma de distribución objetivo

Para crear su grupo, seleccione sus zonas y establezca su forma de distribución objetivo, use la consola de Google Cloud , la CLI de gcloud , Terraform o REST .

Consola

  1. En la consola de Google Cloud, vaya a la página de grupos de instancias .

    Ir a la página de grupos de instancias

  2. Haga clic en Crear grupo de instancias para crear un nuevo grupo de instancias.
  3. Seleccione una de las opciones de Nuevo grupo de instancias administrado : sin estado (predeterminado) o con estado .
  4. Asigne un nombre y, opcionalmente, una descripción a su grupo de instancias.
  5. Elija una plantilla de instancias para el grupo de instancias o cree una nueva.
  6. Especifique la cantidad de máquinas virtuales para este grupo. Para cargas de trabajo de alta disponibilidad, recuerde aprovisionar suficientes máquinas virtuales para admitir su aplicación si ocurre una falla de zona.
  7. En Ubicación , seleccione Múltiples zonas .
  8. Elija una región y seleccione las zonas que desea utilizar.

    • Si desea que su MIG pueda utilizar todas las zonas de la región, seleccione todas las zonas disponibles.
    • Tenga en cuenta que no puede actualizar un MIG regional para usar diferentes zonas después de su creación.
  9. Elija una forma de distribución objetivo.

    1. Si desea seleccionar Cualquiera o Cualquier zona única , en la sección Escalado automático , haga clic en Modo de escalado automático y elija Eliminar configuración de escalado automático.
    2. Si desea seleccionar Cualquier zona única o Equilibrado , en la sección Redistribución de instancias , no seleccione Permitir redistribución de instancias .
  10. Continúe con el resto del proceso de creación de MIG.

nube de gcloud

Usa el comando gcloud compute instance-groups managed create e incluye la marca --target-distribution-shape .

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template TEMPLATE \
    --size SIZE \
    --region REGION \
    --zones ZONES \
    --target-distribution-shape SHAPE

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del grupo de instancias.
  • TEMPLATE : el nombre de la plantilla de instancia que se utilizará para el grupo.
  • SIZE : el tamaño objetivo del grupo de instancias.
  • REGION : la región donde quieres tu grupo.
  • ZONES (opcional): una lista de zonas en la región donde desea implementar instancias de VM. De forma predeterminada, Compute Engine selecciona tres zonas por ti.

    • Si desea que su MIG pueda utilizar todas las zonas de la región, especifique todas las zonas disponibles. Puede obtener una lista de zonas en la región con el siguiente comando:

      gcloud compute zones list --filter=region:REGION --format='list(NAME)'
    • Tenga en cuenta que no puede actualizar un MIG regional para usar diferentes zonas después de su creación.

  • SHAPE : la forma de distribución objetivo. Este puede ser uno de los siguientes valores:

    • even (predeterminado): el grupo crea y elimina máquinas virtuales para lograr y mantener la misma cantidad de máquinas virtuales en las zonas seleccionadas. En una distribución EVEN , el número de VM no difiere en más de 1 entre dos zonas cualesquiera. Recomendado para cargas de trabajo de servicio de alta disponibilidad.
    • balanced : el grupo prioriza la creación de máquinas virtuales en zonas donde hay recursos disponibles, mientras distribuye las máquinas virtuales de la manera más uniforme posible entre las zonas seleccionadas para minimizar el impacto de las fallas zonales. Recomendado para cargas de trabajo por lotes o de entrega de alta disponibilidad.
    • any : el grupo elige zonas para crear instancias de VM para cumplir con la cantidad solicitada de VM dentro de las limitaciones de recursos actuales y maximizar la utilización de las reservas zonales no utilizadas. Recomendado para cargas de trabajo por lotes que no requieren alta disponibilidad.
    • any-single-zone : el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función del soporte de hardware, la disponibilidad actual de recursos y cuotas y las reservas coincidentes. Recomendado en combinación con una política de ubicación de instancias compacta para cargas de trabajo que requieren una comunicación extensa entre las máquinas virtuales.

Por ejemplo, para crear un MIG regional con una forma de distribución objetivo equilibrada, establezca el indicador --target-distribution-shape en balanced .

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c \
    --target-distribution-shape balanced \
    --instance-redistribution-type none

Terraformar

Si aún no ha creado una plantilla de instancia, que especifica el tipo de máquina, la imagen del disco de arranque, la red y otras propiedades de VM que desea para cada VM en su MIG, cree una plantilla de instancia .

Para crear un MIG regional, utilice el recurso google_compute_region_instance_group_manager .

El siguiente ejemplo crea un MIG regional con una forma de distribución objetivo BALANCED .

resource "google_compute_region_instance_group_manager" "default" {
  name                             = "example-rmig"
  region                           = "us-east1"
  distribution_policy_zones        = ["us-east1-b", "us-east1-c"]
  distribution_policy_target_shape = "BALANCED"
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  target_size        = 30
  base_instance_name = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

Para aprender a aplicar o eliminar una configuración de Terraform, consulte Comandos básicos de Terraform .

DESCANSAR

Llame al método regionInstanceGroupManagers.insert . En el cuerpo de la solicitud, incluya la propiedad distributionPolicy y establezca su campo targetShape .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
    "name": INSTANCE_GROUP_NAME,
    "instanceTemplate": "global/instanceTemplates/TEMPLATE",
    "targetSize": SIZE,
    "distributionPolicy": {
        "zones": [
            {"zone": "zones/ZONE1"},
            {"zone": "zones/ZONE2"},
            {"zone": "zones/ZONE3"},
        ],
        "targetShape": "SHAPE"
    }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto para esta solicitud.
  • REGION : la región del grupo de instancias.
  • INSTANCE_GROUP_NAME : el nombre del grupo de instancias.
  • TEMPLATE : el nombre de la plantilla de instancia que se usará para el grupo de instancias.
  • SIZE : el tamaño objetivo del grupo de instancias.
  • ZONE : el nombre de una zona en la región donde desea implementar instancias de VM.
    • Si desea que su MIG pueda utilizar todas las zonas de la región, especifique todas las zonas disponibles. Puede obtener una lista de zonas en la región llamando al método regions.get .
    • Tenga en cuenta que no puede actualizar un MIG regional para usar diferentes zonas después de su creación.
  • SHAPE : la forma de distribución objetivo. Este puede ser uno de los siguientes valores:
    • EVEN (predeterminado): el grupo crea y elimina máquinas virtuales para lograr y mantener la misma cantidad de máquinas virtuales en las zonas seleccionadas. En una distribución EVEN , el número de VM no difiere en más de 1 entre dos zonas cualesquiera. Recomendado para cargas de trabajo de servicio de alta disponibilidad.
    • BALANCED : el grupo prioriza la creación de máquinas virtuales en zonas donde hay recursos disponibles, mientras distribuye las máquinas virtuales de la manera más uniforme posible entre las zonas seleccionadas para minimizar el impacto de las fallas zonales. Recomendado para cargas de trabajo por lotes o de entrega de alta disponibilidad.
    • ANY : el grupo elige zonas para crear instancias de VM para cumplir con la cantidad solicitada de VM dentro de las limitaciones de recursos actuales y maximizar la utilización de las reservas zonales no utilizadas. Recomendado para cargas de trabajo por lotes que no requieren alta disponibilidad.
    • ANY_SINGLE_ZONE : el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función del soporte de hardware, la disponibilidad actual de recursos y cuotas y las reservas coincidentes. Recomendado en combinación con una política de ubicación de instancias compacta para cargas de trabajo que requieren una comunicación extensa entre las máquinas virtuales.

Cambiar la forma de distribución objetivo de un grupo existente

Puede cambiar la forma de distribución objetivo en un MIG regional existente pero con las siguientes limitaciones:

  • Si desea cambiar la forma de distribución de destino a BALANCED o ANY_SINGLE_ZONE , primero debe desactivar la redistribución proactiva .
  • Si desea cambiar la forma de distribución de destino a EVEN y si la distribución actual de instancias es desigual, primero debe deshabilitar la redistribución proactiva.
  • Si cambia la forma a EVEN y desea volver a habilitar la redistribución proactiva, primero debe reequilibrar manualmente el grupo .
  • Si desea cambiar la forma de distribución de destino a EVEN pero su plantilla de instancia especifica recursos que no son compatibles con todas las zonas seleccionadas, primero debe actualizar la plantilla de instancia del grupo a una que sea compatible con todas las zonas seleccionadas.

Consola

  1. En la consola de Google Cloud, vaya a la página de grupos de instancias .

    Ir a la página de grupos de instancias

  2. En la columna Nombre de la lista, haga clic en el nombre del grupo de instancias donde desea cambiar la forma de distribución de destino.
  3. Haga clic en Editar para modificar este grupo de instancias administrado.
  4. En Forma de distribución objetivo , especifique la forma que desee.
  5. Haga clic en Guardar para aplicar la nueva plantilla.

nube de gcloud

Usa el comando gcloud compute instance-groups managed update e incluye la marca --target-distribution-shape .

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --target-distribution-shape SHAPE

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del grupo de instancias.
  • SHAPE : la forma de distribución objetivo. Este puede ser uno de los siguientes valores:
    • even (predeterminado): el grupo crea y elimina máquinas virtuales para lograr y mantener la misma cantidad de máquinas virtuales en las zonas seleccionadas. En una distribución EVEN , el número de VM no difiere en más de 1 entre dos zonas cualesquiera. Recomendado para cargas de trabajo de servicio de alta disponibilidad.
    • balanced : el grupo prioriza la creación de máquinas virtuales en zonas donde hay recursos disponibles, mientras distribuye las máquinas virtuales de la manera más uniforme posible entre las zonas seleccionadas para minimizar el impacto de las fallas zonales. Recomendado para cargas de trabajo por lotes o de entrega de alta disponibilidad.
    • any : el grupo elige zonas para crear instancias de VM para cumplir con la cantidad solicitada de VM dentro de las limitaciones de recursos actuales y maximizar la utilización de las reservas zonales no utilizadas. Recomendado para cargas de trabajo por lotes que no requieren alta disponibilidad.
    • any-single-zone : el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función del soporte de hardware, la disponibilidad actual de recursos y cuotas y las reservas coincidentes. Recomendado en combinación con una política de ubicación de instancias compacta para cargas de trabajo que requieren una comunicación extensa entre las máquinas virtuales.

DESCANSAR

Llame al método regionInstanceGroupManagers.patch . En el cuerpo de la solicitud, incluya la propiedad distributionPolicy y establezca su campo targetShape .

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
    "distributionPolicy": {
        "targetShape": "SHAPE"
    }
}

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto para esta solicitud.
  • REGION : la región del grupo de instancias.
  • INSTANCE_GROUP_NAME : el nombre del grupo de instancias.
  • SHAPE : la forma de distribución objetivo. Este puede ser uno de los siguientes valores:
    • EVEN (predeterminado): el grupo crea y elimina máquinas virtuales para lograr y mantener la misma cantidad de máquinas virtuales en las zonas seleccionadas. En una distribución EVEN , el número de VM no difiere en más de 1 entre dos zonas cualesquiera. Recomendado para cargas de trabajo de servicio de alta disponibilidad.
    • BALANCED : el grupo prioriza la creación de máquinas virtuales en zonas donde hay recursos disponibles, mientras distribuye las máquinas virtuales de la manera más uniforme posible entre las zonas seleccionadas para minimizar el impacto de las fallas zonales. Recomendado para cargas de trabajo por lotes o de entrega de alta disponibilidad.
    • ANY : el grupo elige zonas para crear instancias de VM para cumplir con la cantidad solicitada de VM dentro de las limitaciones de recursos actuales y maximizar la utilización de las reservas zonales no utilizadas. Recomendado para cargas de trabajo por lotes que no requieren alta disponibilidad.
    • ANY_SINGLE_ZONE : el grupo crea todas las instancias de VM dentro de una sola zona. La zona se elige en función del soporte de hardware, la disponibilidad actual de recursos y cuotas y las reservas coincidentes. Recomendado en combinación con una política de ubicación de instancias compacta para cargas de trabajo que requieren una comunicación extensa entre las máquinas virtuales.

Ver la política de distribución de instancias configurada

Consola

  1. En la consola de Google Cloud, vaya a la página de grupos de instancias .

    Ir a la página de grupos de instancias

    Si tiene grupos de instancias existentes, la página enumera esos grupos.
  2. Haga clic en el nombre del grupo de instancias que desea examinar. Se abre una página con las propiedades del grupo de instancias y una lista de instancias que están incluidas en el grupo.
  3. Haga clic en Detalles .
  4. En la sección Ubicación , busque Forma de distribución objetivo .

nube de gcloud

Ejecuta el comando gcloud compute instance-groups managed describe .

gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --region REGION

El comando devuelve los detalles del grupo, incluido el campo distributionPolicy.targetShape :

...
distributionPolicy:
  targetShape: BALANCED
  zones:
  - zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f
  ...
name: my-group
region: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1
...

DESCANSAR

Construya una solicitud GET para el método regionInstanceGroupManagers.get .

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

Reemplace lo siguiente:

  • PROJECT_ID : el ID del proyecto para esta solicitud
  • REGION : la región para el grupo de instancias
  • INSTANCE_GROUP_NAME : el nombre del grupo de instancias

La forma de distribución de destino se devuelve en el campo distributionPolicy.targetShape . Por ejemplo:

{
  "name": "my-instance-group",
  "distributionPolicy": {
    "targetShape": "BALANCED",
  },
  "targetSize": 50,
  ...
}

¿Qué sigue?