Acerca de la flexibilidad de instancias en los MIGs

La flexibilidad de instancias en los grupos de instancias administrados (MIG) te permite especificar varios tipos de máquinas para las instancias de máquina virtual (VM) del grupo, en lugar de limitarte a un solo tipo de máquina. Si un tipo de máquina no está disponible, el MIG puede seleccionar automáticamente otro tipo compatible de tu lista según la disponibilidad actual de recursos. Esta flexibilidad ayuda a mejorar la disponibilidad de recursos, en especial para las aplicaciones que pueden operar en diferentes tipos de máquinas y que requieren capacidad a gran escala o hardware con alta demanda.

En este documento, se describe cómo funciona la flexibilidad de instancias en un MIG y sus limitaciones. Para saber cómo configurar un MIG para que use la flexibilidad de instancias, consulta Agrega flexibilidad de instancias.

Flexibilidad de las instancias

Un MIG crea todas sus VMs según la plantilla de instancias que selecciones. La plantilla de instancias especifica el tipo de máquina que se usará para cada VM. Con la flexibilidad de instancias, puedes enumerar todos los tipos de máquinas compatibles con tu aplicación.

En la siguiente imagen, se compara un MIG que usa un solo tipo de máquina con un MIG que usa la flexibilidad de instancias. Como se muestra en la imagen, un MIG con un solo tipo de máquina crea VMs idénticas basadas en una plantilla de instancias, mientras que un MIG con flexibilidad de instancias puede crear VMs con diferentes tipos y tamaños de máquinas.

Comparación de un MIG que usa un solo tipo de máquina con un MIG que usa la flexibilidad de instancias

Cómo funciona la flexibilidad de instancias

De forma predeterminada, un MIG crea todas las VMs con un solo tipo de máquina de la plantilla de instancias. Puedes establecer varios tipos de máquinas en un MIG configurando una selección de instancias (instanceSelections) en la política de flexibilidad de instancias (instanceFlexibilityPolicy).

También puedes especificar tipos de máquinas que se ejecutan en diferentes plataformas de CPU y aquellas con diferentes arquitecturas (arquitectura x86 y Arm). Para usar tipos de máquinas con diferentes requisitos de plataforma de CPU mínima o discos, usa la política de flexibilidad de instancias para anular las propiedades correspondientes de la plantilla de instancias. Para obtener más información, consulta Cómo funcionan los reemplazos de minCpuPlatform y disks.

Ejemplo de anulaciones del tipo de máquina

Si tu carga de trabajo puede operar en varios tipos de máquinas diferentes, puedes configurar una lista de todos los tipos de máquinas compatibles con tu aplicación en un solo instanceSelection de la siguiente manera:

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "instance-selection-1": {
        "machineTypes": ["c2-standard-8","c2d-standard-8","c3-standard-8", "c3d-standard-8"]
      }
    }
  }
  

Los tipos de máquinas dentro de una selección de instancias tienen la misma preferencia. Si deseas que un MIG elija los tipos de máquinas en un orden específico, puedes configurar varias selecciones de instancias, cada una con una lista de tipos de máquinas y un rango para definir la preferencia. Un valor de clasificación más bajo significa una mayor preferencia. El MIG intenta crear sus VMs con tipos de máquinas que tienen una preferencia más alta. Si estos tipos de máquinas preferidos no están disponibles, el MIG usa un tipo de máquina con una preferencia más baja.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "rank": 1,
        "machineTypes": ["c3-standard-8","c2-standard-8"]
      },
      "least-preferred": {
        "rank": 2,
        "machineTypes": ["n2-standard-16","n1-standard-16"]
      }
    }
  }
  

Tu aplicación debe estar lista para ejecutarse en cualquiera de los tipos de máquinas que se indican, ya que la disponibilidad de hardware cambia con el tiempo y no se garantiza hardware específico, a menos que uses reservas.

Las selecciones de instancias también pueden anular las propiedades de la instancia, como minCpuPlatform y disks. Para obtener más información, consulta la siguiente sección sobre cómo funcionan los reemplazos de selección de instancias.

Cómo funcionan las anulaciones de minCpuPlatform y disks

En una selección de instancias, puedes especificar propiedades adicionales de la instancia, como la plataforma de CPU mínima (minCpuPlatform) y los discos (disks), para anular las definidas en la plantilla de instancias. Cuando un MIG selecciona un tipo de máquina de una selección de instancias, el MIG crea una VM con las propiedades de la instancia especificadas en esa selección de instancias. Si no especificas ninguna de estas propiedades para una selección de instancias, el MIG usará las propiedades correspondientes de la plantilla para esa selección.

Anular estas propiedades a nivel de la selección de instancias proporciona más control y flexibilidad, en especial cuando se usa hardware diferente en un MIG.

  • Anula la plataforma de CPU mínima cuando se combinan tipos de máquinas que se ejecutan en diferentes plataformas de CPU. Puedes especificar una plataforma de CPU mínima para las instancias creadas a partir de los tipos de máquinas dentro de una selección. Este reemplazo te permite combinar diferentes tipos de máquinas, pero aplicar de forma selectiva plataformas de CPU mínimas. Como alternativa, puedes configurar la selección de instancias para que se seleccione automáticamente una plataforma de CPU. Para ello, establece el campo minCpuPlatform en AUTOMATIC. Esta selección automática anula el parámetro de configuración de la plataforma de CPU mínima de la plantilla de instancia y permite que el MIG use cualquier plataforma de CPU compatible para los tipos de máquinas seleccionados.

    Por ejemplo, puedes combinar tipos de máquinas de las series N1 y N2 en una selección, y asegurarte de que las máquinas N1 se ejecuten en Intel Skylake para lograr mejoras en el rendimiento.

  • Anula los discos cuando mezcles tipos de máquinas que tengan arquitecturas diferentes. Puedes especificar una configuración de disco personalizada para anular el disco de arranque o los discos adicionales especificados en las propiedades de la instancia, o bien para conectar un almacenamiento específico. Esta anulación te permite combinar tipos de máquinas que tienen arquitecturas diferentes o que no comparten tecnologías de disco, y especificar las imágenes de arranque o los discos adecuados que se requieren para cada tipo de máquina.

    Por ejemplo, puedes combinar tipos de máquinas C4 (arquitectura x86) y C4A (arquitectura Arm). Como las máquinas x86 y Arm requieren diferentes imágenes de arranque, puedes usar selecciones de instancias separadas para anular el disco de arranque de cada arquitectura.

    Cuando especificas los discos para una selección de instancias, el MIG combina los discos de la plantilla de instancias y de la selección de instancias por sus claves deviceName. En el siguiente diagrama, se muestra un ejemplo.

    Se combinan los discos de la plantilla de instancias y la selección de instancias

Para conocer las limitaciones cuando se usan anulaciones de selección de instancias, consulta la sección Limitaciones en este documento.

Ejemplo de anulaciones de disco y plataforma de CPU mínima

Considera una plantilla de instancia con la siguiente configuración:

  {
    ...
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot",
          "boot": true,
          "diskEncryptionKey": {},
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
            "diskSizeGb": "10",
            "diskType": "pd-balanced"
          }
        }
      ],
      "machineType": "n2-standard-2",
      ...
    }
  

En el siguiente ejemplo de una política de flexibilidad de instancias, se anula la configuración de la plantilla especificando una plataforma de CPU y una configuración de disco mínimas.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "first-preference": {
        "rank": 1,
        "machineTypes": ["n4-standard-4 "],
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "diskEncryptionKey": {},
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "hyperdisk-balanced"
            }
          }
        ]
      },
      "second-preference": {
        "rank": 2,
        "machineTypes": ["n2-standard-4"],
        "minCpuPlatform": "Intel Ice Lake",
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "pd-ssd"
            }
          }
        ]
      },
      "third-preference": {
        "rank": 3,
        "machineTypes": ["n1-standard-4"],
        "minCpuPlatform": "Intel Skylake",
      }
    }
  }
  

Cómo selecciona los tipos de máquinas un MIG

Cuando configuras varios tipos de máquinas, el MIG selecciona un tipo de máquina según la disponibilidad de recursos actual y prioriza las reservas no utilizadas. Si configuraste clasificaciones, el MIG primero considera tu orden de preferencia. Dentro de una selección de instancias clasificadas, el MIG verifica la disponibilidad de recursos y, luego, las reservaciones.

Las zonas de la región del MIG también pueden afectar la selección del tipo de máquina, ya que la disponibilidad de recursos varía entre las zonas. Para obtener más información, consulta la siguiente sección sobre cómo un MIG selecciona zonas.

Cómo selecciona zonas un MIG

Puedes configurar la flexibilidad de instancias en un MIG regional que tenga una forma de distribución objetivo BALANCED, ANY o ANY_SINGLE_ZONE. La flexibilidad de instancias no admite la forma de distribución objetivo EVEN.

Con la flexibilidad de instancias, cuando un MIG regional crea una VM, el MIG selecciona una zona según la forma de distribución objetivo seleccionada de la siguiente manera:

  • BALANCED: El MIG selecciona una zona con recursos disponibles que puede equilibrar la distribución de VM en las zonas de la manera más uniforme posible. Dentro de una zona seleccionada, el MIG prioriza los tipos de máquinas según las clasificaciones, si están configuradas, y las reservas disponibles.

  • ANY: El MIG selecciona una zona con recursos y reservas disponibles. Si se configuran los rangos, el MIG prioriza la zona en la que está disponible un tipo de máquina según los rangos.

  • ANY_SINGLE_ZONE: El MIG selecciona una zona que tiene la mayor cantidad de tipos de máquinas según los rangos, si están configurados, y en la que el MIG puede crear la mayor cantidad de VMs a partir de las reservas no utilizadas.

Para obtener más información sobre cómo funciona una forma de distribución objetivo, consulta Forma de distribución objetivo del MIG regional.

Flexibilidad de instancias y reservas

Puedes usar la flexibilidad de instancias con reservas. Según la propiedad de afinidad de reserva que establezcas en la plantilla de instancias, un MIG usa las reservas de la siguiente manera:

  • ANY_RESERVATION (recomendado para la flexibilidad de instancias): Cuando se usa cualquier reserva, el MIG selecciona primero el tipo de máquina con la reserva sin usar. Si deseas cambiar el orden en el que el MIG selecciona los tipos de máquinas, puedes configurar varias selecciones de instancias y especificar tu preferencia con rangos. Luego, el MIG primero sigue los rangos y, luego, considera las reservas disponibles para los tipos de máquinas dentro de un rango.

  • SPECIFIC: Cuando se usa una reserva específica, el MIG selecciona el tipo de máquina que coincide con las propiedades de la reserva. Si las selecciones de instancias no incluyen el tipo de máquina que coincide con las propiedades de la reserva específica, fallará la creación de la instancia.

Para obtener más información sobre las reservas, consulta Acerca de las reservas.

Flexibilidad de las instancias y VMs Spot

Si tu MIG con flexibilidad de instancias usa VMs Spot, el MIG selecciona automáticamente un tipo de máquina con la tasa de interrupción observada más baja para garantizar la menor interrupción posible de tu carga de trabajo. Si deseas anular este comportamiento, puedes configurar varias selecciones de instancias y especificar tu preferencia con clasificaciones. Luego, el MIG primero sigue el orden de preferencia y, luego, considera la confiabilidad de las VMs Spot dentro de una selección de instancias.

Para obtener más información sobre las VMs Spot, consulta VMs Spot en un grupo de instancias administrado.

Flexibilidad de instancias y reparaciones de VM

De forma predeterminada, si una VM de un MIG falla, este la repara recreándola con la misma configuración, incluido el tipo de máquina. Si configuras la flexibilidad de la instancia y habilitas las actualizaciones en la reparación, puedes aumentar las probabilidades de obtener recursos si se agotan. Cuando un MIG intenta volver a crear una VM, si el tipo de máquina original de la VM no está disponible, recibirás un error de falta de stock. Con las actualizaciones en la reparación habilitadas, el MIG usa las selecciones de instancias especificadas y la disponibilidad actual para elegir otro tipo de máquina para la creación de la VM. Habilitar las actualizaciones durante la reparación también ayuda a garantizar que la VM recreada use la configuración de flexibilidad de instancias más reciente.

Para obtener más información sobre las reparaciones, consulta Información sobre la reparación de VMs para alta disponibilidad.

Flexibilidad y ajuste de escala automático de instancias

Cuando configuras el ajuste de escala automático en un MIG que tiene varios tipos de máquinas, sucede lo siguiente:

  • Cuando un escalador automático ajusta la escala de un MIG, este crea VMs seleccionando tipos de máquinas de la misma manera que en un MIG sin ajuste de escala automático. Para obtener más información, consulta Cómo selecciona los tipos de máquinas un MIG en este documento.

  • Cuando un escalador automático reduce la escala de un MIG, este selecciona las VMs que se borrarán de la siguiente manera:

    1. Primero, el MIG prioriza el borrado de las VMs que mejor preservan la forma de distribución objetivo.
    2. Si configuraste rangos, entre las VMs priorizadas, la MIG prioriza el borrado de las VMs que usan tipos de máquinas con rangos más bajos.
    3. Por último, el MIG verifica la recomendación del escalador automático para seleccionar las VMs que se borrarán.

El ajuste de escala automático funciona de manera eficaz cuando tu MIG tiene tipos de máquinas con un rendimiento similar, por ejemplo, máquinas con la misma cantidad de CPU virtuales. De lo contrario, cuando el MIG escale horizontalmente o verticalmente, es posible que el escalador automático intente agregar o quitar el tipo de máquina con mejor rendimiento con mayor frecuencia. Este comportamiento puede ocurrir independientemente del rango que hayas configurado para ese tipo de máquina.

Para obtener más información sobre el ajuste de escala automático, consulta Ajuste de escala automático en grupos de instancias.

Casos de uso

En las siguientes secciones, se describen algunos casos de uso de la flexibilidad de instancias en los MIG.

Optimización de costos

Un MIG puede aprovisionar automáticamente las instancias más rentables para tu infraestructura cuando configuras los parámetros de configuración de flexibilidad de instancias de tu MIG de la siguiente manera:

  • Tipos de máquinas: Selecciona los tipos de máquinas que ofrecen la relación costo-rendimiento preferida para tu carga de trabajo. No es necesario que especifiques todos los tamaños disponibles de cada tipo de máquina. Especifica solo los tamaños que sean más rentables para tus necesidades.

  • Clasificación: Asigna clasificaciones a las selecciones de instancias según tus preferencias de costos, con el tipo de máquina de menor costo como el más preferido. Esto ayuda a garantizar que obtengas el tipo de máquina de menor costo según la disponibilidad.

  • Ubicación: Cuando crees el MIG, selecciona todas las zonas y la forma de distribución objetivo ANY. Esto aumenta las probabilidades de obtener los tipos de máquinas más económicos en las zonas en las que están disponibles.

Según la configuración de flexibilidad de instancias, el MIG aprovisiona automáticamente la mejor combinación posible de tipos de máquinas disponibles para cumplir con tus criterios de costos y la capacidad total solicitada. Esto garantiza el costo más bajo posible en un momento determinado.

Mejora la obtención

Puedes configurar la flexibilidad de instancias del MIG para mejorar la capacidad de obtención. Para ello, selecciona tantos tipos de máquinas como sea posible que sean compatibles con tu aplicación dentro del mismo rango. Puedes aumentar aún más las probabilidades de obtener los recursos si eliges todas las zonas cuando crees tu MIG y usas la forma de distribución objetivo ANY, que prioriza las zonas en las que hay recursos disponibles. Según los tipos de máquinas seleccionados y la forma ANY, el MIG encuentra capacidad donde está más disponible.

Para maximizar las probabilidades de adquirir VMs Spot y reducir las de interrupción, Google recomienda que incluyas una amplia variedad de tipos de máquinas dentro del mismo rango. Esto amplía la búsqueda de capacidad disponible del MIG, lo que genera los mejores resultados posibles con el modelo de aprovisionamiento de instancias temporales.

Maximiza el rendimiento

Puedes configurar la flexibilidad de instancias del MIG para maximizar el rendimiento. Para ello, selecciona las familias y los tamaños de máquinas que mejor se adapten a tu carga de trabajo. Luego, clasifica los tipos de máquinas según el rendimiento, de mayor a menor, usando el tamaño más adecuado dentro de cada familia. Según la clasificación y los tipos de máquinas, el MIG selecciona las máquinas con el mejor rendimiento de todos los recursos disponibles.

Además, especificar un minCpuPlatform para la selección de instancias puede garantizar que el MIG seleccione una plataforma de CPU de alto rendimiento.

Transición sin inconvenientes a los tipos de máquinas más recientes

Puedes configurar la flexibilidad de instancias del MIG para priorizar la adopción de los tipos de máquinas de última generación y usar los tipos de máquinas de generaciones anteriores como alternativa para la capacidad. Para ello, crea una selección de instancias que contenga los tipos de máquinas de última generación y asígnale una clasificación más baja (mayor preferencia). Si estos tipos de máquinas requieren diferentes configuraciones de disco, usa las anulaciones de disco dentro de esta selección de instancias para definir las propiedades específicas del disco. Crea una segunda selección de instancias que contenga los tipos de máquinas de generaciones anteriores para que sirvan como alternativa. Asigna una clasificación más alta (preferencia más baja) a esta selección de instancias.

Cuando crees el MIG, selecciona todas las zonas de la región y la forma de distribución objetivo CUALQUIERA. Esta configuración garantiza que el MIG primero busque las máquinas de última generación en todas las zonas de la región. El MIG solo aprovisionará las máquinas de generaciones anteriores si no puede encontrar suficiente capacidad de la generación más reciente, lo que garantiza que siempre se cumpla la capacidad total solicitada y se maximice la proporción del hardware más nuevo.

Limitaciones

La flexibilidad de instancias tiene las siguientes limitaciones:

Próximos pasos