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 una clasificación para definir la preferencia. Un valor de clasificación más bajo significa una mayor preferencia. Cuando asignas rangos, el MIG verifica de forma simultánea la disponibilidad en tiempo real de todos los tipos de máquinas y rangos configurados. Luego, el MIG aprovisiona instancias con los tipos de máquinas disponibles con la mayor preferencia (el número de clasificación más bajo).

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

Para las solicitudes a gran escala, es posible que el MIG satisfaga una parte de las instancias solicitadas con un tipo de máquina muy preferido y el resto con tipos alternativos según la disponibilidad en tiempo real. Si el MIG no puede encontrar capacidad de inmediato para las instancias restantes, es posible que entren en un estado pendiente mientras el MIG sigue verificando la disponibilidad en tus selecciones.

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 los definidos 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, configura 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 combines 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. Este reemplazo te permite combinar tipos de máquinas que tienen arquitecturas diferentes o que no comparten tecnologías de disco, y especificar las imágenes o los discos de arranque 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 mínima y una configuración de disco.

  "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 configuras rangos, el MIG verifica la disponibilidad de recursos y las reservas en todos los tipos de máquinas y zonas configurados de forma simultánea. De los tipos de máquinas con capacidad disponible, el MIG selecciona los tipos de máquinas con la preferencia más alta (el número de clasificación más bajo). Dentro de esa selección, el MIG prioriza las reservas sin usar.

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.

Evaluación de la capacidad y registro de errores

Antes de que un MIG intente crear VMs, verifica la capacidad en las selecciones de instancias configuradas. Si un tipo de máquina con mayor preferencia no está disponible durante esta verificación, el MIG selecciona un tipo de máquina disponible con menor preferencia sin intentar crear VMs con el tipo no disponible.

Compute Engine registra errores de ZONE_RESOURCE_POOL_EXHAUSTED (sin stock) solo cuando falla un intento de creación de VM, por ejemplo, cuando un MIG intenta reparar una VM con errores usando su tipo de máquina original no disponible. Durante las verificaciones de capacidad, como el MIG omite los tipos de máquina no disponibles con mayor preferencia sin intentar crear VM, no verás errores de falta de stock para ellos en Cloud Logging.

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 las 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 se configuraron, 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.

Observabilidad y supervisión

Dado que un MIG con flexibilidad de instancias selecciona de forma dinámica los tipos de máquinas y las zonas según la disponibilidad en tiempo real, puedes observar este comportamiento del tiempo de ejecución con un panel de Cloud Monitoring.

Google Cloud proporciona un panel preconfigurado, Supervisión de la distribución de instancias de MIG de GCE, que visualiza la distribución de instancias por tipo de máquina y zona en tiempo real. Esta observabilidad te ayuda a confirmar la alta disponibilidad, hacer un seguimiento de las asignaciones de tipo de máquina de respaldo y diagnosticar la distribución de la capacidad en tu MIG.

Si deseas obtener información para acceder al panel de supervisión, consulta Supervisa la distribución de instancias en los MIG.

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. De los tipos de máquinas con capacidad disponible, el MIG selecciona los tipos de máquinas con la mayor preferencia (el número de clasificación más bajo) y prioriza las reservas disponibles dentro de esa clasificación.

  • 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 quieres anular este comportamiento, completa los siguientes pasos:

  • Consulta la disponibilidad de recursos. Antes de crear un MIG con VMs Spot, puedes consultar la disponibilidad de recursos en la región o zona en la que deseas crear tu MIG. Esta acción te ayuda a reducir las probabilidades de que se produzcan errores de disponibilidad de recursos.

    Para obtener instrucciones, consulta Cómo ver la disponibilidad de las VMs Spot.

  • Configura varias selecciones de instancias. Puedes especificar el tipo de máquina y las zonas en las que se crearán las VMs Spot con rangos. De los tipos de máquinas con capacidad disponible, el MIG selecciona los tipos de máquinas con la preferencia más alta (el número de clasificación más bajo) y considera la confiabilidad de las VMs Spot dentro de esa selección.

    Para obtener instrucciones, consulta Crea un MIG con varios tipos de máquinas y preferencias.

Para obtener más información sobre el uso de VMs Spot en un MIG, 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 reparar una VM con errores, primero intenta volver a crear la VM con su tipo de máquina original. Si ese tipo de máquina no está disponible, Compute Engine registra un error ZONE_RESOURCE_POOL_EXHAUSTED. Si habilitas la actualización en la reparación, el MIG verificará de forma simultánea la disponibilidad en todas las selecciones de instancias configuradas y volverá a crear la VM con un tipo de máquina alternativo disponible. Debido a que el MIG sigue intentando volver a crear la VM con su tipo de máquina original mientras verifica alternativas, es posible que sigas viendo errores de falta de stock registrados para el tipo de máquina original. Habilitar la actualización en 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.

Mejora la obtención

Puedes configurar la flexibilidad de instancias del MIG para mejorar la disponibilidad de recursos:

  • Tipos de máquinas: La configuración básica consiste en configurar varios tipos de máquinas dentro de un solo rango. Este único rango les otorga la misma preferencia, lo que permite que el MIG seleccione cualquiera de ellos según la disponibilidad de recursos. Sin embargo, si tienes preferencias, puedes asignar diferentes rangos para especificar un orden de preferencia para los tipos de máquinas.

  • Ubicación: Puedes aumentar aún más las probabilidades de obtener los recursos eligiendo todas las zonas cuando crees tu MIG y usando la forma de distribución objetivo ANY. La forma ANY permite que el MIG busque capacidad en todas las zonas.

  • VMs Spot y la interrupción: Cuando usas VMs Spot, para maximizar las probabilidades de obtener las VMs y minimizar sus interrupciones, Google recomienda que incluyas la mayor cantidad posible de tipos de máquinas compatibles dentro del mismo rango. Esta configuración permite que el MIG elija tipos de máquinas con las tasas de interrupción más bajas para minimizar las interrupciones en tu carga de trabajo. Si configuras tipos de máquinas con diferentes clasificaciones, el MIG priorizará los tipos de máquinas según la clasificación en lugar de las tasas de interrupción, lo que podría generar la selección de un tipo de máquina con una tasa de interrupción más alta.

Optimización de costos

Un MIG puede aprovisionar automáticamente las instancias más rentables para tu infraestructura cuando configuras los parámetros 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.

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

Dado que las generaciones de máquinas más recientes suelen ofrecer un mayor rendimiento por núcleo, no es necesario que limites la selección de máquinas para usar el mismo tamaño (cantidad de CPU virtuales) en diferentes familias para lograr un rendimiento equivalente. Por ejemplo, cuando seleccionas entre familias de máquinas, puedes combinar diferentes cantidades de CPU, como n1-standard-32 con n2-standard-16.

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 un rango inferior (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 ANY. Esta configuración garantiza que el MIG verifique la capacidad en todas las selecciones y zonas configuradas, y prioriza el aprovisionamiento de las máquinas de última generación en las que hay capacidad disponible. Si el MIG no puede encontrar suficiente capacidad de la generación más reciente, aprovisiona tipos de máquinas de generaciones anteriores. Este enfoque garantiza que siempre se cumpla con la capacidad total solicitada y, al mismo tiempo, maximiza la proporción del hardware más reciente.

Limitaciones

La flexibilidad de instancias tiene las siguientes limitaciones:

  • Los MIG zonales no admiten la flexibilidad de instancias. En su lugar, puedes usar un MIG regional con una sola zona.

  • Las VMs de inicio flexible no admiten la flexibilidad de instancias.

  • La flexibilidad de instancias no admite las siguientes funciones de MIG:

  • Cuando se anulan minCpuPlatform y disks, también se aplican las siguientes limitaciones:

    • Debes habilitar las actualizaciones en las reparaciones.

    • Cuando configures minCpuPlatform o disks para una selección de instancias existente, también debes incluir el campo machineTypes. Sin el campo machineTypes, la operación falla con un error.

    • No puedes aplicar una política con estado ni una configuración por instancia a los discos anulados a través de una selección de instancias.

    • Solo puedes anular las SSD locales para los tipos de máquinas que te permiten elegir una cantidad de discos SSD locales. No puedes anular la SSD local para las variantes de -lssd de los tipos de máquinas, que conectan automáticamente discos SSD locales.

    • Debes especificar un tipo de máquina único en todas las selecciones de instancias. Por ejemplo, no puedes especificar n1-standard-2 en una selección con una CPU Skylake y también en otra selección con una CPU Broadwell.

  • Para garantizar un balanceo de cargas o un ajuste de escala automático eficaces en un MIG que tenga flexibilidad de instancias, usa tipos de máquinas con un rendimiento similar, por ejemplo, la misma cantidad de CPU virtuales. Sin embargo, el "rendimiento similar" no se limita a usar el mismo tamaño en diferentes familias, ya que las generaciones de máquinas más nuevas suelen tener un mayor rendimiento por CPU virtual, por lo que puedes combinar diferentes cantidades de CPU virtuales (por ejemplo, combinar n1-standard-32 con n2-standard-28).

    • En Cloud Load Balancing, los tipos de máquinas con un rendimiento similar pueden evitar el uso excesivo de hardware más pequeño y el uso insuficiente de máquinas más rápidas.

    • En el ajuste de escala automático, los tipos de máquinas con un rendimiento similar pueden impedir la adición o eliminación del tipo de máquina con el mejor rendimiento.

Próximos pasos