Escalado basado en horarios,Escalado basado en horarios


El escalado automático basado en programación le permite mejorar la disponibilidad de sus cargas de trabajo programando la capacidad antes de la carga anticipada. Si ejecuta su carga de trabajo en un grupo de instancias administrado (MIG), puede programar una cantidad requerida de instancias de máquina virtual (VM) para patrones de carga recurrentes, así como eventos únicos. Utilice cronogramas de escalamiento si su carga de trabajo tarda mucho en inicializarse y desea escalar horizontalmente antes de los picos de carga anticipados.

Este documento describe cómo puede crear, enumerar, editar, deshabilitar, volver a habilitar y eliminar programas de escalado para un MIG existente. Para obtener más información sobre MIG y el ajuste de escala automático, consulte Creación de grupos de instancias administrados y Grupos de instancias de ajuste de escala automático .

Antes de comenzar

  • Lea acerca de los fundamentos del escalador automático.
  • 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

Los programas de escalado están restringidos por las limitaciones de todos los escaladores automáticos , así como por las siguientes limitaciones:

  • Puede tener hasta 128 programas de escalado por MIG. Para mitigar este límite, elimine las programaciones de escalado que tengan un estado OBSOLETE y que no planee volver a ejecutar.
  • La duración mínima para escalar horarios es de 5 minutos.

Crear un cronograma de escalado

Puede crear hasta 128 programas de escalado por MIG. Para obtener más información, consulte Configuración del programa de escalado .

Las siguientes instrucciones explican cómo crear un programa de escalado para un MIG.

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en Editar .

  4. Si no existe ninguna configuración de escalado automático:

    1. En Escala automática , haga clic en Configurar escala automática .
    2. En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático. Si desea escalar su MIG basándose únicamente en programaciones, elimine la métrica de utilización de CPU predeterminada después de agregar las programaciones.
  5. Para cada programa de escalamiento que desee agregar:

    1. Expanda la sección Programaciones de escala automática , haga clic en Administrar programaciones y luego haga clic en Crear programación .
    2. En el panel Crear programación de escalado , ingrese un Nombre .
    3. Opcional: ingrese una descripción .
    4. Ingrese el número de instancias mínimas requeridas que proporciona este programa cuando está activo.
    5. Especifique la hora de inicio y la recurrencia de su programación de escalado mediante la interfaz predeterminada o, si desea configurar una programación con una hora de inicio y una recurrencia más complejas, mediante una expresión cron .
      • Interfaz predeterminada
        1. En el campo Hora de inicio , escriba o haga clic en para seleccionar una hora de inicio.
        2. En el campo Recurrencia , seleccione con qué frecuencia se repite la programación. Si selecciona Cada semana o Cada mes , utilice el menú desplegable adicional para seleccionar qué días de la semana o del mes comienza el programa.
      • expresión cron
        1. Para habilitarlo, haga clic en el botón Usar expresión CRON .
        2. Introduzca una expresión CRON .
    6. En el campo Zona horaria , seleccione una zona horaria.

    7. En los campos Duración y Unidad de tiempo , ingrese una duración y seleccione la unidad de tiempo correspondiente.

    8. Haga clic en Guardar . Se abre el panel Programaciones de escalado .

    9. Opcional: puede crear otro programa de escalado haciendo clic en Crear programa .

  6. Cuando haya terminado de crear horarios, haga clic en Listo .

  7. Para cerrar la página de grupos de instancias , haga clic en Guardar .

nube de gcloud

Para agregar un cronograma de escalado a un MIG que no tiene una política de escalado automático existente, usa el comando gcloud compute instance-groups managed set-autoscaling .

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    --max-num-replicas=MAX_NUM_REPLICAS \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Para agregar un cronograma de escalado a un MIG con una política de escalado automático existente, usa el comando gcloud compute instance-groups managed update-autoscaling .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    [--max-num-replicas=MAX_NUM_REPLICAS] \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con una política de escalado automático existente.
  • MIN_NUM_REPLICAS : Opcional: el número mínimo de instancias requeridas para este MIG. Google recomienda establecer este valor en la cantidad mínima de instancias que necesita cuando no hay ningún programa de escalado activo. Cuando establece este valor en 0 y configura el escalado automático con cronogramas o métricas de Cloud Monitoring con series temporales únicas por grupo, su MIG puede escalar hasta 0 VM. No es posible escalar a 0 VM cuando la política tiene otras señales que requieren datos de VM individuales (por ejemplo, la utilización de la CPU).
  • MAX_NUM_REPLICAS : el número máximo de instancias que se pueden proporcionar para este MIG. Opcional para un MIG con una política de escalado automático existente.
  • SCHEDULE_NAME : el nombre del nuevo programa de escalado.
  • CRON_EXPRESSION : la hora de inicio y la recurrencia de esta programación formateada como una expresión cron .
  • DURATION : la duración , en segundos, que este horario está activo.
  • TIME_ZONE : Opcional: la zona horaria de la IANA para la hora de inicio del cronograma, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • MIN_REQ_REPLICAS : el número de instancias mínimas requeridas que proporciona este programa cuando está activo.
  • DESCRIPTION : Opcional: una descripción del nuevo programa de escalado.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Puede crear programaciones que se ejecuten una vez o que se repitan periódicamente.

Horario repetido

Este comando de ejemplo crea una programación que se repite. Este cronograma especifica que desea que su MIG contenga al menos 10 instancias de VM todos los lunes, martes, miércoles, jueves y viernes de 8:30 a. m. a 5 p. m., hora universal coordinada (UTC). Este comando también utiliza los indicadores --min-num-replicas y --max-num-replicas para actualizar el número mínimo de instancias a 0 y el número máximo de instancias a 30 para todas las señales de escalado automático del MIG seleccionado. Este comando supone que tiene un MIG existente llamado example-mig con una política de escalado automático existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --min-num-replicas=0 \
    --max-num-replicas=30 \
    --set-schedule=workday-capacity \
    --schedule-cron="30 8 * * Mon-Fri" \
    --schedule-duration-sec=30600 \
    --schedule-min-required-replicas=10 \
    --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"

Horario único

Este comando de ejemplo crea una programación que se ejecuta una vez. Este cronograma especifica que desea que su MIG contenga al menos 30 instancias de VM durante todo el día el 30 de enero de 2030 para la zona horaria America/New_York . Este comando supone que tiene un MIG existente llamado example-mig que se encuentra en us-east1-b y tiene una política de escalado automático existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --set-schedule=example-onetime-schedule \
    --schedule-cron="0 0 30 1 * 2030" \
    --schedule-duration-sec=86400 \
    --schedule-time-zone="America/New_York" \
    --schedule-min-required-replicas=30 \
    --schedule-description="Schedule a minimum of 30 VMs all day for January 30, 2030" \
    --zone=us-east1-b

Terraformar

Para agregar un programa de escalado a un MIG, use el recurso google_compute_autoscaler .

resource "google_compute_autoscaler" "default" {
  provider = google-beta
  name     = "my-autoscaler"
  zone     = "us-central1-f"
  target   = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 7 * * MON-FRI"
      time_zone             = "America/New_York"
      duration_sec          = 43200
    }
  }
}

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

DESCANSAR

Para crear un escalador automático con programas de escalado para un MIG, utilice el método autoscalers.insert para un MIG zonal o el método regionAutoscalers.insert para un MIG regional.

Realice la siguiente llamada para crear un cronograma para un MIG zonal que no tiene una política de escalado automático existente:

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

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Para crear programaciones para un MIG que tiene una política de escalado automático existente, use el método autoscalers.patch para un MIG zonal o el método regionAutoscalers.patch para un MIG regional.

Por ejemplo, realice la siguiente llamada para crear una programación para un MIG zonal que tenga una política de escalado automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.
  • MIN_NUM_REPLICAS : Opcional: el número mínimo de instancias requeridas para este MIG. Google recomienda establecer este valor en la cantidad mínima de instancias que necesita cuando no hay ningún programa de escalado activo. Cuando establece este valor en 0 y configura el escalado automático con cronogramas o métricas de Cloud Monitoring con series temporales únicas por grupo, su MIG puede escalar hasta 0 VM. No es posible escalar a 0 VM cuando la política tiene otras señales que requieren datos de VM individuales (por ejemplo, la utilización de la CPU).
  • MAX_NUM_REPLICAS : el número máximo de instancias que se pueden proporcionar para este MIG. Opcional para un MIG con una política de escalado automático existente.
  • SCHEDULE_NAME : el nombre del nuevo programa de escalado.
  • MIN_REQ_REPLICAS : las instancias mínimas requeridas que proporciona este programa cuando está activo.
  • CRON_EXPRESSION : la hora de inicio y la recurrencia de esta programación formateada como una expresión cron .
  • TIME_ZONE : Opcional: la zona horaria de la IANA para la hora de inicio del cronograma, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • DURATION : la duración , en segundos, que este horario está activo.
  • DESCRIPTION : Opcional: una descripción del nuevo programa de escalado.

Puede crear programaciones que se ejecuten una vez o que se repitan periódicamente.

Horario repetido

Esta llamada API de ejemplo crea una programación que se repite. Este programa especifica que desea que un MIG zonal contenga al menos 10 instancias de VM todos los lunes, martes, miércoles, jueves y viernes de 8:30 a. m. a 5 p. m., hora universal coordinada (UTC). Esta llamada API también utiliza los campos minNumReplicas y maxNumReplicas para actualizar el número mínimo de instancias a 0 y el número máximo de instancias a 30 para todas las señales de escalado automático del MIG seleccionado. Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal ubicado en us-east1-b y que tiene un escalador automático llamado example-autoscaler con una política de escalado automático existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      }
    }
  }
}

Para utilizar este ejemplo para un MIG regional, realice una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Horario único

Esta llamada API de ejemplo crea una programación que se ejecuta una vez. Este cronograma especifica que desea que un MIG zonal contenga al menos 30 instancias de VM durante todo el día el 30 de enero de 2030 para la zona horaria America/New_York . Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal ubicado en us-east1-b y que tiene un escalador automático llamado example-autoscaler con una política de escalado automático existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para utilizar este ejemplo para un MIG regional, realice una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Múltiples horarios

Esta llamada API de ejemplo utiliza el método autoscalers.patch para dos programaciones, workday-capacity y january-30-2030-schedule , en una sola llamada. Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal ubicado en us-east1-b y que tiene un escalador automático llamado example-autoscaler con una política de escalado automático existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para utilizar este ejemplo para un MIG regional, realice una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Después de crear una programación, es posible que tengas que esperar unos minutos para ver su información de estado .

Listar sus programas de escalado

Puede ver una lista de los horarios de un MIG. La lista muestra la configuración y la información de estado de cada programación.

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en Editar .

  4. Puede ver el número total de programaciones en Programaciones de escala automática . Haga clic en Administrar programaciones para mostrar la lista de sus programas de escalado existentes.

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para obtener detalles de un MIG, incluidas las configuraciones y los estados de sus cronogramas de escalado, usa el comando gcloud compute instance-groups managed describe .

gcloud compute instance-groups managed describe MIG_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con una política de escalado automático existente.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Todos los programas de escalado para su MIG se enumeran en el resultado, como se muestra en el siguiente ejemplo.

...
autoscalingPolicy:
  ...
  maxNumReplicas: 30
  minNumReplicas: 0
  ...
  scalingSchedules:
    example-onetime-schedule:
      description: Schedule a minimum of 30 VMs all day for January 30, 2030
      disabled: false
      durationSec: 86400
      minRequiredReplicas: 30
      schedule: 0 0 30 1 * 2030
      timeZone: America/New_York
    workday-capacity:
      description: Have at least 10 VMs every Monday through Friday from 8:30
        AM to 5 PM UTC
      disabled: false
      durationSec: 30600
      minRequiredReplicas: 10
      schedule: 30 8 * * Mon-Fri
      timeZone: UTC
...
scheduledScalingStatus:
    example-onetime-schedule:
        state: READY
        nextStartTime: '2030-01-30T00:00:00.000-05:00'
        lastStartTime: ''
    workday-capacity:
        state: READY
        nextStartTime: '2020-11-04T08:30:00.000-00:00'
        lastStartTime: '2020-11-03T08:30:00.000-00:00'
...

DESCANSAR

Para obtener detalles de un escalador automático, incluidas las configuraciones y estados de sus programas de escalado, use el método autoscalers.get para un MIG zonal o el método regionAutoscalers.get para un MIG regional.

Por ejemplo, realice la siguiente llamada para enumerar los cronogramas de un MIG zonal que tiene una política de escalado automático existente:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.

Todos los programas de escalado para su MIG se enumeran en el resultado, como se muestra en el siguiente ejemplo.

{
  ...
  "autoscalingPolicy": {
    ...
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    ...
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030",
        "disabled": false
      },
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "timeZone": "",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC",
        "disabled": false
      },
      ...
    }
  },
  "scheduledScalingStatus": {
    "example-onetime-schedule": {
      "state": "READY",
      "nextStartTime": "2030-01-30T00:00:00.000-05:00",
      "lastStartTime": ''
    },
    "workday-capacity": {
      "state": "READY",
      "nextStartTime": "2020-11-04T08:30:00.000",
      "lastStartTime": "2020-11-03T08:30:00.000"
    },
    ...
  },
...
}

Editar un programa de escalado

Puede editar un programa de escalado existente para cambiar cualquiera de sus configuraciones excepto el nombre del programa. También puede desactivar o volver a activar un programa de escalado .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en Editar .

  4. Puede ver el número total de programaciones en Programaciones de escala automática . Haga clic en Administrar programaciones para mostrar la lista de sus programas de escalado existentes.

  5. Seleccione la casilla de verificación del programa de escalado que desea editar.

  6. En la parte superior del panel Programaciones de escala , haga clic en Editar .

  7. En el nuevo panel Editar programa de escalado , modifique los campos que desea cambiar. Para obtener más información sobre cada campo, consulte Creación de un programa de escalado .

  8. Cuando haya terminado, haga clic en Guardar .

Es posible que deba esperar unos minutos antes de que los cambios sean efectivos. Puede monitorear el estado de sus cronogramas haciendo clic en Actualizar en la parte superior del panel Escalado de cronogramas .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para actualizar un cronograma de escalamiento existente, usa el comando gcloud compute instance-groups managed update-autoscaling . Utilice el indicador --update-schedule para indicar el nombre del programa a actualizar. Incluya las otras banderas según sea necesario para sus cambios.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --update-schedule=SCHEDULE_NAME \
    [--schedule-cron="CRON_EXPRESSION"] \
    [--schedule-duration-sec=DURATION] \
    [--schedule-time-zone="TIME_ZONE"] \
    [--schedule-min-required-replicas=MIN_REQ_REPLICAS] \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un programa de escalamiento existente.
  • SCHEDULE_NAME : el nombre del programa de escalado existente.
  • CRON_EXPRESSION : Opcional: la nueva hora de inicio y recurrencia de esta programación formateada como una expresión cron .
  • DURATION : Opcional: la nueva duración , en segundos, que este horario está activo.
  • TIME_ZONE : Opcional: la nueva zona horaria de la IANA para la hora de inicio del cronograma, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • MIN_REQ_REPLICAS : Opcional: el nuevo número de instancias mínimas requeridas que este programa proporciona cuando está activo.
  • DESCRIPTION : Opcional: una nueva descripción del programa de escalado.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para actualizar los programas de escalado existentes para un MIG, utilice el método autoscalers.patch para un MIG zonal o el método regionAutoscalers.patch para un MIG regional.

Por ejemplo, realice la siguiente llamada para editar una programación para un MIG zonal que tenga una política de escalado automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.
  • SCHEDULE_NAME : el nombre del programa de escalado existente.
  • MIN_REQ_REPLICAS : Opcional: el nuevo número de instancias mínimas requeridas que este programa proporciona cuando está activo.
  • CRON_EXPRESSION : Opcional: la nueva hora de inicio y recurrencia de esta programación formateada como una expresión cron .
  • TIME_ZONE : Opcional: la nueva zona horaria de la IANA para la hora de inicio del cronograma, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • DURATION : Opcional: la nueva duración , en segundos, que este horario está activo.
  • DESCRIPTION : Opcional: una nueva descripción del programa de escalado.

Deshabilitar y volver a habilitar un programa de escalado

Los programas de escalado están habilitados de forma predeterminada. Deshabilite una programación si desea evitar que una programación esté activa pero desea guardar su configuración. Vuelva a habilitar un horario deshabilitado cuando desee usarlo nuevamente.

Si no necesita almacenar el cronograma o ha alcanzado el límite de 128 cronogramas para este MIG, elimine el cronograma . Si desea desactivar el ajuste de escala automático para un MIG, desactívelo .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en Editar .

  4. Puede ver el número total de programaciones en Programaciones de escala automática . Haga clic en Administrar programaciones para mostrar la lista de sus programas de escalado existentes.

  5. Seleccione las casillas de verificación de los programas de escalado que desea habilitar o deshabilitar.

  6. Deshabilita o habilita los horarios seleccionados.

    • Para desactivar los horarios seleccionados:
      1. En la parte superior del panel Programaciones de escala , haga clic en Desactivar .
      2. En el nuevo cuadro de diálogo Desactivar horarios , haga clic en Desactivar .
    • Para habilitar los horarios seleccionados:
      1. En la parte superior del panel Programaciones de escala , haga clic en Habilitar .
      2. En el nuevo cuadro de diálogo Habilitar programaciones , haga clic en Habilitar .

Es posible que deba esperar unos minutos antes de que los cambios sean efectivos. Puede monitorear el estado de sus cronogramas haciendo clic en Actualizar en la parte superior del panel Escalado de cronogramas .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para deshabilitar o volver a habilitar una programación de escalado, usa el comando gcloud compute instance-groups managed update-autoscaling .

Deshabilitar un programa de escalado

Para deshabilitar un programa de escalado, use el indicador --disable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --disable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un programa de escalamiento existente.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea desactivar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Reactivación de un programa de escalado

Para volver a habilitar un programa de escalado, use el indicador --enable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --enable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un programa de escalamiento existente.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea volver a habilitar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para deshabilitar o volver a habilitar los programas de escalado para un MIG, use el método autoscalers.patch para un MIG zonal o el método regionAutoscalers.patch para un MIG regional.

Deshabilitar programas de escalado

Para cada programa de escalado que desee deshabilitar, establezca el campo disabled en true . Por ejemplo, realice la siguiente llamada para deshabilitar una programación para un MIG zonal que tenga una política de escalado automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": true
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea desactivar.

Reactivación de programas de escalado

Para cada programa de escalado que desee volver a habilitar, establezca el campo disabled en false . Por ejemplo, realice la siguiente llamada para volver a habilitar una programación para un MIG zonal que tenga una política de escalado automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": false
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea volver a habilitar.

Eliminar un programa de escalado

Elimine los programas de escalado de un MIG eliminándolos. Elimina los horarios que ya no necesitas, como los horarios con estado OBSOLETE .

Una política de escalado automático siempre debe tener al menos una señal de escalado. Si no existe otra señal de escalado automático, no puede eliminar todas las programaciones de escalado sin eliminar toda la política de escalado automático. Si desea eliminar todas las programaciones de escala pero mantener la política de escala automática, debe agregar al menos una señal de escala antes de eliminar todas las programaciones.

Si desea evitar que una programación se active y guardarla para usarla en el futuro, desactívela . Si desea eliminar la configuración de escalado automático para un MIG, elimine el escalador automático .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en Editar .

  4. Puede ver el número total de programaciones en Programaciones de escala automática . Haga clic en Administrar programaciones para mostrar la lista de sus programas de escalado existentes.

  5. Seleccione las casillas de verificación de los programas de escalado que desea eliminar.

  6. En la parte superior del panel Programaciones de escala , haga clic en Eliminar .

  7. En el nuevo cuadro de diálogo Eliminar programaciones , haga clic en Eliminar .

Es posible que deba esperar unos minutos antes de que los cambios sean efectivos. Puede monitorear el estado de sus cronogramas haciendo clic en Actualizar en la parte superior del panel Escalado de cronogramas .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para eliminar un cronograma de escalado, usa el comando gcloud compute instance-groups managed update-autoscaling con la marca --remove-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --remove-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un programa de escalamiento existente.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea eliminar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para eliminar programas de escalado para un MIG, utilice el método autoscalers.patch para un MIG zonal o el método regionAutoscalers.patch para un MIG regional. Para cada programa de escalado que desee eliminar, establezca la configuración del programa en null

Por ejemplo, realice la siguiente llamada para eliminar una programación para un MIG zonal que tenga una política de escalado automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": null
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : la identificación de su proyecto .
  • ZONE : la zona donde se encuentra su MIG.
  • AUTOSCALER_NAME : el nombre de un escalador automático existente. Suele ser el mismo que el nombre del MIG.
  • SCHEDULE_NAME : el nombre del programa de escalado que desea eliminar.

Conceptos

Esta sección describe conceptos relacionados con la creación y el uso de programas de escalado, incluida la configuración del programa y detalles sobre cómo funcionan.

Configuración de programación de escala

Cuando crea y modifica los programas de escalado para un MIG, cada programa de escalado contiene las siguientes configuraciones:

  • Instancias mínimas requeridas : la cantidad de VM que necesita en el MIG cuando este programa de escalado está activo.

    Cuando esta programación está activa, el MIG tiene al menos esta cantidad de máquinas virtuales, pero podría tener más dependiendo de otras configuraciones de escalado automático. Además, el tamaño de MIG siempre está restringido por el número mínimo y máximo de instancias configuradas en la configuración de escalado automático de MIG.

  • Zona horaria : la zona horaria de la IANA basada en la ubicación para interpretar la hora de inicio del cronograma.

    La base de datos de zonas horarias de la IANA define una lista de valores disponibles (por ejemplo, Europe/Paris ). Si no se proporciona ninguna zona horaria, se utiliza UTC de forma predeterminada. Algunas zonas horarias de la IANA observan el horario de verano. Para saber cómo el horario de verano afecta los horarios de escala, consulte Horario de verano .

  • Duración : la cantidad de tiempo que desea que esté activo el programa de escalado.

    El programa de escalado está activo desde su hora de inicio durante el tiempo configurado. La duración mínima es de 5 minutos. Durante este tiempo, el escalador automático escala el MIG para que tenga al menos tantas máquinas virtuales como se definen en las instancias requeridas del cronograma. Después de la duración especificada, si la capacidad actual ya no es necesaria, el escalador automático comienza a eliminar instancias de VM después de un período de estabilización predeterminado de 10 minutos y siguiendo cualquier control de escalamiento horizontal configurado.

    Los programas de escalamiento son bidireccionales. Las máquinas virtuales se eliminan en el momento de detención que especifique y el tamaño del grupo se reduce al tamaño de grupo mínimo que establezca, a menos que haya especificado otras señales de escalado automático.

Cuando utilice Google Cloud CLI o REST, debe configurar la hora de inicio y la recurrencia de un programa de escalado mediante una expresión cron . Sin embargo, cuando usa la consola de Google Cloud, puede configurar la hora de inicio y la recurrencia de una programación mediante una expresión cron o la siguiente configuración:

  • Hora de inicio : la hora del día en la que desea que se active el programa de escalado.

    En el momento de inicio, el programa de escalado comienza a crear máquinas virtuales siempre que el tamaño de MIG sea inferior a las instancias requeridas del programa. Establezca la hora de inicio para permitir suficiente tiempo para que las nuevas máquinas virtuales se inicien e inicialicen. Por ejemplo, si su carga de trabajo tarda 10 minutos desde la creación de la máquina virtual hasta comenzar a funcionar, establezca la hora de inicio en 10 minutos antes de la hora en que necesita que las máquinas virtuales estén listas.

  • Recurrencia : si y con qué frecuencia se repite el programa de escalado, según lo definido por las siguientes opciones:

    • Una vez : un horario único que comienza solo en la fecha seleccionada.
    • Todos los días : un horario repetitivo que comienza todos los días.
    • Cada semana : una programación repetitiva que comienza cada semana en los días seleccionados de la semana (por ejemplo, de lunes a viernes).
    • Cada mes : una programación repetitiva que comienza cada mes en los días seleccionados del mes (por ejemplo, el primer día de cada mes). Los últimos días del mes (días 29 al 31) solo son efectivos durante los meses en que ocurren esos días.

Expresiones cron

La hora de inicio y la recurrencia de un programa de escalado se pueden configurar mediante una expresión cron . Cron es un programador de trabajos basado en el tiempo utilizado originalmente en sistemas operativos informáticos tipo Unix.

Sintaxis

Una expresión cron es una cadena que consta de cinco o seis campos separados por espacios en blanco. La siguiente tabla define los campos de una expresión cron y los valores posibles para cada campo.

Minuto Hora dia del mes Mes Día de la semana Año (opcional)
0-59 0-23 1-31 1-12 (enero-diciembre)

donde 1 = Jan , 2 = Feb , ... 12 = Dec
0-6 (dom-sáb) o 1-7 (lunes-dom)

donde 0 = Sun , 1 = Mon , ... 6 = Sat , 7 = Sun
2000-2036

o cada año ( * ) si no se proporciona

Además de utilizar estos valores, cada campo de una expresión cron también puede utilizar caracteres especiales:

Carácter especial Significado Ejemplo
* cualquier Si los campos de día del mes, día de la semana y año (si están incluidos) están configurados en * , la programación comienza todos los días.
- rango Si el campo del día de la semana está configurado en 1-5 o Mon-Fri , la programación comienza todas las semanas de lunes a viernes.
, lista Si el campo del mes está configurado en 5,7,9 o May,Jul,Sep , la programación comienza cada mayo, julio y septiembre.
/ paso Si el campo mes está configurado en */3 , entonces la programación comienza durante el primer mes y cada 3 meses después: enero, abril, julio y octubre.

Cuando escriba una expresión cron, considere lo siguiente:

  • Los espacios en blanco se utilizan para separar los campos de una expresión cron. Recuerde no agregar espacios en blanco adicionales en un campo que utilice caracteres especiales.
  • Cuando especifica un día de la semana y un día del mes (cuando ninguno de los campos está configurado en * ), la programación utiliza la unión de estos valores, no la intersección. Por ejemplo, el horario 0 8 1 * Mon comienza a las 8:00 a. m. todos los lunes y el primer día de cada mes. Ese horario no empieza a las 8:00 AM solo los lunes que también son el primer día del mes.
  • Puede utilizar cero o más caracteres especiales en cada campo de una expresión cron. Por ejemplo, si desea que una programación comience todos los meses excepto mayo, puede configurar el campo del mes en 1-4,6-12 (una lista de dos rangos sin espacios en blanco).
  • Cuando utilice rangos ( - ), no puede utilizar 0-7 o Sun-Sun para el campo del día de la semana; para especificar todos los días de la semana, utilice * , 0-6 , 1-7 , Sun-Sat o Mon-Sun en su lugar.
  • Cuando utilice pasos ( / ), recuerde que las expresiones cron no tienen estado, por lo que a veces los pasos pueden ser desiguales. Por ejemplo, si desea que una programación se ejecute cada 6 horas, puede configurar el campo de horas en */6 , que se comporta de la misma manera que enumerar cada múltiplo válido de 6 ( 0,6,12,18 ). Los pasos son iguales porque 24 horas se dividen fácilmente en partes de 6 horas. Sin embargo, si configura el campo de horas en */7 , la programación no siempre comenzará en intervalos de 7 horas. En cambio, */7 se comporta igual que enumerar todos los múltiplos válidos de 7 ( 0,7,14,21 ), lo que significa que la programación puede comenzar durante las 12 a.m., 7 a.m., 2 p.m. y 9 p.m.

Horarios repetidos versus horarios únicos

Dependiendo de cómo escriba su expresión cron, su programación puede ejecutarse una vez o repetirse periódicamente. Para crear una programación que solo se ejecute una vez, debe especificar el campo de año. Por ejemplo, la expresión cron 0 0 30 1 * 2030 configura una programación para que solo comience una vez, a la medianoche del 30 de enero de 2030. Para crear una programación que se repita, use caracteres especiales para describir cuándo se repetirá esa programación. Por ejemplo, la expresión cron 30 8 * * Mon-Fri configura un horario para comenzar a las 8:30 a. m. todos los lunes, martes, miércoles, jueves y viernes.

Información del estado del programa

Enumere sus programas de escalado para ver su estado. Un programa de escalado tiene la siguiente información de estado:

  • Estado ( state ): El estado actual del programa de escalado, representado por uno de los siguientes estados:
    • Listo ( READY ): Este programa está listo pero aún no está activo. Autoscaler está esperando la próxima aparición de este programa.
    • Activo ( ACTIVE ): Este horario está actualmente activo. Autoscaler está intentando proporcionar a este MIG al menos las instancias requeridas que especifica este cronograma.
    • Obsoleto ( OBSOLETE ): Este programa ha caducado; no volverá a estar activo. Autoscaler ignora esta programación porque no hay ocurrencias futuras.
    • Deshabilitado ( DISABLED ): Este horario no puede estar activo porque fue deshabilitado manualmente. Autoscaler ignora esta programación hasta que se vuelva a habilitar.
  • Última aparición ( lastStartTime ): la marca de tiempo de la última vez que se activó este programa de escalado. Esta es la fecha y hora reales de la última activación. Por ejemplo, si tiene una programación de escalado deshabilitada con una recurrencia diaria, una hora de inicio a las 10 a. m. y una duración de 2 horas, y vuelve a habilitar la programación a las 11 a. m. de hoy, la lastStartTime son las 11 a. m. de hoy.
  • Próxima aparición ( nextStartTime ): la marca de tiempo de la próxima vez que este programa esté configurado para activarse.

Horarios superpuestos

Según la hora de inicio, la recurrencia, la duración y la zona horaria, es posible que se superpongan dos o más programas de escalado. Cuando hay más de una programación activa, el escalador automático utiliza la mayor cantidad de instancias de VM requeridas de todas las programaciones de escalado activas. Esto le ayuda a garantizar que siempre haya suficiente capacidad para satisfacer las necesidades de cualquier horario activo. Por ejemplo, si tiene una programación que se repite todos los días de 8 a. m. a 10 a. m. y requiere al menos 10 VM, pero también tiene una programación única para todo el día que requiere al menos 20 VM, entonces el escalador automático escala el MIG a al menos 20 VM ese día. Esto resulta útil cuando tiene requisitos de capacidad regulares y recurrentes, pero a veces necesita más para manejar eventos puntuales. Este comportamiento le permite programar capacidad sin preocuparse de que otras programaciones con requisitos de VM más pequeños la anulen.

Además, un escalador automático siempre proporciona la mayor cantidad de instancias de VM requeridas por cualquier señal de escalado automático activa. Para obtener más información, consulte Uso de una política de escalado automático con múltiples señales .

Horario de verano

Los detalles del horario de verano (DST) varían según la zona horaria de la IANA basada en la ubicación de su programa de escala. Si la zona horaria de su horario respeta el horario de verano, la hora de inicio del horario se ajusta automáticamente para permanecer sincronizada con la hora de la ubicación seleccionada. Por ejemplo, si crea una programación de escala que comienza todos los días a las 7 a. m. para la zona horaria America/New_York , esta programación comienza cuando sean las 7 a. m. en Nueva York, utilizando la hora de verano del este o la hora estándar del este en consecuencia.

Los programas de escalado siempre se ejecutan durante todo el tiempo que usted configura, pero pueden tener horas de inicio y finalización ligeramente diferentes en los días en que cambia la observación del horario de verano. Esto sucede porque los interruptores DST tienen períodos de transición , un plazo que se omite el primer día de DST y que ocurre dos veces en el último día de DST. Por ejemplo, si el DST para su zona horaria comienza a las 2 a.m. y tiene una transición de 1 hora, entonces el reloj cambia de 1:59:59 a.m. Si el DST para esa zona horaria termina a las 2 am, entonces el reloj cambia de 2:59:59 a.m. a 2 am, por lo que se repite el plazo de 2 a.m. a 2:59:59 a.m. Las siguientes afirmaciones suponen que la zona horaria para su horario utiliza una transición DST de 1 hora.

El primer día de DST (cuando se omite 1 hora), los horarios de escala tienen los siguientes cambios:

  • Los horarios que están activos durante la hora omitida aún funcionan durante toda su duración, pero para compensar la hora omitida, estos horarios terminan 1 hora más tarde que su tiempo de finalización en días sin transiciones DST. Normalmente, la hora de finalización de un horario es la suma de la hora y duración de inicio del cronograma. Pero si DST omite 1 hora mientras un horario está activo, y la duración y la hora de inicio permanecen constantes, entonces el tiempo de finalización para ese horario es 1 hora más que la suma de la hora y duración de inicio del horario.
  • Los horarios que están configurados para comenzar durante la hora omitida también comienzan 1 hora más tarde que su hora de inicio en días sin transiciones DST.

En el último día de DST (cuando se repite 1 hora), los horarios de escala tienen los siguientes cambios:

  • Los horarios que están activos durante la hora de repetición aún se ejecutan durante toda su duración, pero para compensar la hora repetida, estos horarios terminan 1 hora antes de su tiempo de finalización en días sin transiciones DST. Normalmente, la hora de finalización de un horario es la suma de la hora y duración de inicio del cronograma. Pero si DST repite 1 hora mientras un horario está activo, y la duración y la hora de inicio permanecen constantes, entonces el tiempo de finalización para ese horario es 1 hora menos que la suma de la hora de inicio y la duración del horario.
  • Los horarios que están configurados para comenzar durante el período de transición comienzan en su tiempo configurado, pero no se reinician durante la segunda ocurrencia repetida de la hora de inicio.

La mayoría de las zonas horarias que observan DST usan un período de transición de 1 hora. Pero, si la zona horaria para su horario utiliza un período de transición diferente, como la zona horaria Australia/Lord_Howe , que usa transiciones de 30 minutos, puede esperar el mismo comportamiento. Simplemente reemplace 1 hora con el tiempo de transición DST relevante.

¿Qué sigue?

,

El autoscalaje basado en programas le permite mejorar la disponibilidad de sus cargas de trabajo mediante la capacidad de programación antes de la carga anticipada. Si ejecuta su carga de trabajo en un grupo de instancia administrado (MIG), puede programar un número requerido de instancias de máquina virtual (VM) para patrones de carga recurrentes, así como eventos únicos. Use horarios de escala si su carga de trabajo tarda mucho en inicializarse y desea escalar antes de los picos de carga anticipados.

Este documento describe cómo puede crear, enumerar, editar, deshabilitar, volver a habilitar y eliminar los horarios de escala para un MIG existente. Para obtener más información sobre MIGS y autoscalado, consulte Creación de grupos de instancias administradas y grupos de instancias de autoscalización .

Antes de comenzar

  • Lea sobre los fundamentos de AutoScaler.
  • 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

Los horarios de escala están restringidos por las limitaciones para todos los autoscaleros , así como por las siguientes limitaciones:

  • Puede tener hasta 128 horarios de escala por MIG. Para mitigar este límite, elimine los horarios de escala que tienen un estado OBSOLETE y que no planee volver a ejecutar.
  • La duración mínima para los horarios de escala es de 5 minutos.

Creando un horario de escala

Puede crear hasta 128 horarios de escala por MIG. Para obtener más información, consulte Configuración del horario de escala .

Las siguientes instrucciones explican cómo crear un horario de escala para un MIG.

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en edición .

  4. Si no existe una configuración de autoscalaje:

    1. En autoscalado , haga clic en Configurar autoscalado .
    2. En el modo de autoscalización , seleccione : Agregar y eliminar instancias al grupo para habilitar la autoscalización. Si desea escalar su MIG basado solo en los horarios, elimine la métrica predeterminada de utilización de la CPU después de agregar los horarios.
  5. Para cada horario de escala que desea agregar:

    1. Expanda la sección de programas de autoscalización , haga clic en Administrar los horarios , luego haga clic en Crear horario .
    2. En el panel Crear programa de escala , ingrese un nombre .
    3. Opcional: ingrese una descripción .
    4. Ingrese el número de instancias mínimas requeridas que este horario proporciona cuando está activo.
    5. Especifique el tiempo de inicio y la recurrencia de su programa de escala, ya sea utilizando la interfaz predeterminada o, si desea configurar un horario con un tiempo de inicio y recurrencia más complejos, mediante el uso de una expresión cron .
      • Interfaz predeterminada
        1. En el campo de tiempo de inicio , escriba o haga clic en para seleccionar una hora de inicio.
        2. En el campo de recurrencia , seleccione con qué frecuencia se repite el horario. Si selecciona cada semana o cada mes , use el menú desplegable adicional para seleccionar qué días de semana o mes comienza el horario.
      • Expresión cron
        1. Para habilitar, haga clic en la alternancia de expresión CRON .
        2. Ingrese una expresión cron .
    6. En el campo de la zona horaria , seleccione una zona horaria.

    7. En los campos de duración y unidad de tiempo , ingrese una duración y seleccione una unidad de tiempo correspondiente.

    8. Haga clic en Guardar . El panel de horarios de escala se abre.

    9. Opcional: puede crear otro horario de escala haciendo clic en creación de creación .

  6. Cuando haya terminado de crear horarios, haga clic en Listo .

  7. Para cerrar la página de grupos de instancias , haga clic en Guardar .

nube de gcloud

Para agregar un cronograma de escala a un MIG que no tiene una política de autoscalización existente, use el comando gcloud compute instance-groups managed set-autoscaling .

gcloud compute instance-groups managed set-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    --max-num-replicas=MAX_NUM_REPLICAS \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Para agregar un cronograma de escala a un MIG con una política de autoscalización existente, use el comando gcloud compute instance-groups managed update-autoscaling .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    [--min-num-replicas=MIN_NUM_REPLICAS] \
    [--max-num-replicas=MAX_NUM_REPLICAS] \
    --set-schedule=SCHEDULE_NAME \
    --schedule-cron="CRON_EXPRESSION" \
    --schedule-duration-sec=DURATION \
    [--schedule-time-zone="TIME_ZONE"] \
    --schedule-min-required-replicas=MIN_REQ_REPLICAS \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con una política de autoscalización existente.
  • MIN_NUM_REPLICAS : opcional: el número mínimo de instancias requeridas para este mig. Google recomienda establecer este valor en el número mínimo de instancias que necesita cuando no hay un horario de escala activo. Cuando establece este valor en 0 y configura el autoscalaje con horarios o métricas de monitoreo de nubes con series de tiempo únicas por grupo, su MIG puede escalar en 0 VM. La escala en 0 VM no es posible cuando la política tiene otras señales, que requieren datos de VM individual, por ejemplo, la utilización de la CPU.
  • MAX_NUM_REPLICAS : el número máximo de instancias que se pueden proporcionar para este mig. Opcional para un MIG con una política de autoscalaje existente.
  • SCHEDULE_NAME : el nombre del nuevo horario de escala.
  • CRON_EXPRESSION : la hora de inicio y la recurrencia de este horario formateado como una expresión cron .
  • DURATION : la duración , en segundos, que este horario está activo.
  • TIME_ZONE : Opcional: la zona horaria de IANA para la hora de inicio del horario, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • MIN_REQ_REPLICAS : el número de instancias mínimas requeridas que este programa proporciona cuando está activo.
  • DESCRIPTION : Opcional: una descripción del nuevo horario de escala.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Puede crear horarios que se ejecuten una vez o eso periódicamente.

Horario de repetición

Este comando de ejemplo crea un horario que se repite. Este cronograma especifica que desea que su MIG contenga al menos 10 instancias de VM todos los lunes, martes, miércoles, jueves y viernes de 8:30 a.m. a 5 p.m., tiempo universal coordinado (UTC). Este comando también usa los indicadores --min-num-replicas y --max-num-replicas para actualizar el número mínimo de instancias a 0 y el número máximo de instancias a 30 para todas las señales de autoscalización del MIG seleccionado. Este comando supone que tiene un MIG existente llamado example-mig con una política de autoscalización existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --min-num-replicas=0 \
    --max-num-replicas=30 \
    --set-schedule=workday-capacity \
    --schedule-cron="30 8 * * Mon-Fri" \
    --schedule-duration-sec=30600 \
    --schedule-min-required-replicas=10 \
    --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"

Horario de tiempo

Este comando de ejemplo crea un horario que se ejecuta una vez. Este horario especifica que desea que su MIG contenga al menos 30 instancias VM todo el día el 30 de enero de 2030 para la zona horaria America/New_York . Este comando supone que tiene un MIG existente llamado example-mig que se encuentra en us-east1-b y tiene una política de autoscalaje existente.

gcloud compute instance-groups managed update-autoscaling example-mig \
    --set-schedule=example-onetime-schedule \
    --schedule-cron="0 0 30 1 * 2030" \
    --schedule-duration-sec=86400 \
    --schedule-time-zone="America/New_York" \
    --schedule-min-required-replicas=30 \
    --schedule-description="Schedule a minimum of 30 VMs all day for January 30, 2030" \
    --zone=us-east1-b

Terraformar

Para agregar un horario de escala a un MIG, use el recurso google_compute_autoscaler .

resource "google_compute_autoscaler" "default" {
  provider = google-beta
  name     = "my-autoscaler"
  zone     = "us-central1-f"
  target   = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 7 * * MON-FRI"
      time_zone             = "America/New_York"
      duration_sec          = 43200
    }
  }
}

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

DESCANSAR

Para crear un AutoScaler con horarios de escala para un MIG, use el método autoscalers.insert para un MIG zonal o el Método de regionAutoscalers.insert para un MIG regional.

Realice la siguiente llamada para crear un cronograma para un MIG zonal que no tenga una política de autoscalización existente:

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

{
  "name": "AUTOSCALER_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Para crear horarios para un MIG que tenga una política de autoscalaje existente, use el regionAutoscalers.patch autoscalers.patch .

Por ejemplo, haga la siguiente llamada para crear un cronograma para un MIG zonal que tenga una política de autoscalización existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "minNumReplicas": MIN_NUM_REPLICAS,
    "maxNumReplicas": MAX_NUM_REPLICAS,
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.
  • MIN_NUM_REPLICAS : opcional: el número mínimo de instancias requeridas para este mig. Google recomienda establecer este valor en el número mínimo de instancias que necesita cuando no hay un horario de escala activo. Cuando establece este valor en 0 y configura el autoscalaje con horarios o métricas de monitoreo de nubes con series de tiempo únicas por grupo, su MIG puede escalar en 0 VM. La escala en 0 VM no es posible cuando la política tiene otras señales, que requieren datos de VM individual, por ejemplo, la utilización de la CPU.
  • MAX_NUM_REPLICAS : el número máximo de instancias que se pueden proporcionar para este mig. Opcional para un MIG con una política de autoscalaje existente.
  • SCHEDULE_NAME : el nombre del nuevo horario de escala.
  • MIN_REQ_REPLICAS : las instancias mínimas requeridas que este horario proporciona cuando está activo.
  • CRON_EXPRESSION : la hora de inicio y la recurrencia de este horario formateado como una expresión cron .
  • TIME_ZONE : Opcional: la zona horaria de IANA para la hora de inicio del horario, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • DURATION : la duración , en segundos, que este horario está activo.
  • DESCRIPTION : Opcional: una descripción del nuevo horario de escala.

Puede crear horarios que se ejecuten una vez o eso periódicamente.

Horario de repetición

Esta llamada API de ejemplo crea un horario que se repite. Este cronograma especifica que desea que un MIG zonal contenga al menos 10 instancias VM todos los lunes, martes, miércoles, jueves y viernes de 8:30 a.m. a 5 p.m., tiempo universal coordinado (UTC). Esta llamada API también utiliza los campos de minNumReplicas y maxNumReplicas para actualizar el número mínimo de instancias a 0 y el número máximo de instancias a 30 para todas las señales de autoscalización del MIG seleccionado. Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal que se encuentra en us-east1-b y tiene un Autoscaler llamado example-autoscaler con una política de autoscalaje existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      }
    }
  }
}

Para usar este ejemplo para un MIG regional, haga una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Horario de tiempo

Esta llamada API de ejemplo crea un horario que se ejecuta una vez. Este horario especifica que desea que un MIG zonal contenga al menos 30 instancias VM todo el día el 30 de enero de 2030 para la zona horaria America/New_York . Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal que se encuentra en us-east1-b y tiene un Autoscaler llamado example-autoscaler con una política de autoscalaje existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para usar este ejemplo para un MIG regional, haga una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Múltiples horarios

Esta llamada de API de ejemplo utiliza el método autoscalers.patch para dos horarios, workday-capacity y january-30-2030-schedule , en una sola llamada. Esta llamada API supone que tiene un proyecto existente llamado example-project con un MIG zonal que se encuentra en us-east1-b y tiene un Autoscaler llamado example-autoscaler con una política de autoscalaje existente.

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
      },
      "january-30-2030-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030"
      }
    }
  }
}

Para usar este ejemplo para un MIG regional, haga una solicitud similar utilizando el método regionAutoscalers.patch y especifique una región en lugar de una zona.

Después de crear un horario, es posible que deba esperar unos minutos para ver su información de estado .

Enumerando sus horarios de escala

Puede ver una lista de los horarios para un MIG. La lista muestra la configuración y la información de estado de cada horario.

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en edición .

  4. Puede ver el número total de horarios bajo los horarios de autoscalización . Haga clic en Administrar horarios para mostrar la lista de sus horarios de escala existentes.

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para obtener detalles para un MIG, incluidas las configuraciones y estados de sus horarios de escala, use el comando gcloud compute instance-groups managed describe .

gcloud compute instance-groups managed describe MIG_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con una política de autoscalización existente.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Cualquier horario de escala para su MIG se enumeran en la salida, como se muestra en el siguiente ejemplo.

...
autoscalingPolicy:
  ...
  maxNumReplicas: 30
  minNumReplicas: 0
  ...
  scalingSchedules:
    example-onetime-schedule:
      description: Schedule a minimum of 30 VMs all day for January 30, 2030
      disabled: false
      durationSec: 86400
      minRequiredReplicas: 30
      schedule: 0 0 30 1 * 2030
      timeZone: America/New_York
    workday-capacity:
      description: Have at least 10 VMs every Monday through Friday from 8:30
        AM to 5 PM UTC
      disabled: false
      durationSec: 30600
      minRequiredReplicas: 10
      schedule: 30 8 * * Mon-Fri
      timeZone: UTC
...
scheduledScalingStatus:
    example-onetime-schedule:
        state: READY
        nextStartTime: '2030-01-30T00:00:00.000-05:00'
        lastStartTime: ''
    workday-capacity:
        state: READY
        nextStartTime: '2020-11-04T08:30:00.000-00:00'
        lastStartTime: '2020-11-03T08:30:00.000-00:00'
...

DESCANSAR

Para obtener detalles para un autoscalador, incluidas las configuraciones y estados de sus horarios de escala, use el método autoscalers.get regionAutoscalers.get

Por ejemplo, haga la siguiente llamada para enumerar los horarios de un MIG zonal que tiene una política de autoscalización existente:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.

Cualquier horario de escala para su MIG se enumeran en la salida, como se muestra en el siguiente ejemplo.

{
  ...
  "autoscalingPolicy": {
    ...
    "minNumReplicas": 0,
    "maxNumReplicas": 30,
    ...
    "scalingSchedules": {
      "example-onetime-schedule": {
        "minRequiredReplicas": 30,
        "schedule": "0 0 30 1 * 2030",
        "timeZone": "America/New_York",
        "durationSec": 86400,
        "description": "Schedule a minimum of 30 VMs all day for January 30, 2030",
        "disabled": false
      },
      "workday-capacity": {
        "minRequiredReplicas": 10,
        "schedule": "30 8 * * Mon-Fri",
        "timeZone": "",
        "durationSec": 30600,
        "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC",
        "disabled": false
      },
      ...
    }
  },
  "scheduledScalingStatus": {
    "example-onetime-schedule": {
      "state": "READY",
      "nextStartTime": "2030-01-30T00:00:00.000-05:00",
      "lastStartTime": ''
    },
    "workday-capacity": {
      "state": "READY",
      "nextStartTime": "2020-11-04T08:30:00.000",
      "lastStartTime": "2020-11-03T08:30:00.000"
    },
    ...
  },
...
}

Editar un horario de escala

Puede editar un horario de escala existente para cambiar cualquiera de sus configuraciones , excepto el nombre del cronograma. También puede deshabilitar o volver a habilitar un horario de escala .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en edición .

  4. Puede ver el número total de horarios bajo los horarios de autoscalización . Haga clic en Administrar horarios para mostrar la lista de sus horarios de escala existentes.

  5. Seleccione la casilla de verificación para el horario de escala que desea editar.

  6. En la parte superior del panel de horarios de escala , haga clic en edición .

  7. En el nuevo panel de programación de escala Editar , modifique los campos que desea cambiar. Para obtener más información sobre cada campo, consulte Creación de un horario de escala .

  8. Cuando haya terminado, haga clic en Guardar .

Es posible que deba esperar unos minutos antes de que sus cambios sean efectivos. Puede monitorear el estado de sus horarios haciendo clic en de actualización en la parte superior del panel de horarios de escala .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para actualizar un cronograma de escala existente, use el comando gcloud compute instance-groups managed update-autoscaling . Use el indicador --update-schedule para indicar el nombre del horario para actualizar. Incluya las otras banderas según sea necesario para sus cambios.

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --update-schedule=SCHEDULE_NAME \
    [--schedule-cron="CRON_EXPRESSION"] \
    [--schedule-duration-sec=DURATION] \
    [--schedule-time-zone="TIME_ZONE"] \
    [--schedule-min-required-replicas=MIN_REQ_REPLICAS] \
    [--schedule-description="DESCRIPTION"] \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un horario de escala existente.
  • SCHEDULE_NAME : el nombre del horario de escala existente.
  • CRON_EXPRESSION : Opcional: la nueva hora de inicio y la recurrencia de este horario formateado como una expresión cron .
  • DURATION : Opcional: La nueva duración , en segundos, que este horario está activo.
  • TIME_ZONE : Opcional: la nueva zona horaria de IANA para la hora de inicio del horario, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • MIN_REQ_REPLICAS : Opcional: el nuevo número de instancias mínimas requeridas que este horario proporciona cuando está activo.
  • DESCRIPTION : Opcional: una nueva descripción del cronograma de escala.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para actualizar los horarios de escala existentes para un MIG, use el método autoscalers.patch para un MIG zonal o el método de regionAutoscalers.patch para un MIG regional.

Por ejemplo, haga la siguiente llamada para editar un cronograma para un MIG zonal que tenga una política de autoscalización existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "minRequiredReplicas": MIN_REQ_REPLICAS,
        "schedule": "CRON_EXPRESSION",
        "timeZone": "TIME_ZONE",
        "durationSec": DURATION,
        "description": "DESCRIPTION"
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.
  • SCHEDULE_NAME : el nombre del horario de escala existente.
  • MIN_REQ_REPLICAS : Opcional: el nuevo número de instancias mínimas requeridas que este horario proporciona cuando está activo.
  • CRON_EXPRESSION : Opcional: la nueva hora de inicio y la recurrencia de este horario formateado como una expresión cron .
  • TIME_ZONE : Opcional: la nueva zona horaria de IANA para la hora de inicio del horario, por ejemplo, Europe/Paris . El valor predeterminado es UTC .
  • DURATION : Opcional: La nueva duración , en segundos, que este horario está activo.
  • DESCRIPTION : Opcional: una nueva descripción del cronograma de escala.

Desactivar y volver a habilitar un horario de escala

Los horarios de escala están habilitados de forma predeterminada. Deshabilite un horario si desea evitar que un cronograma esté activo pero desea guardar su configuración. Vuelva a habilitar un horario deshabilitado cuando desee volver a usarlo.

Si no necesita almacenar el horario o ha alcanzado el límite de horario 128 para este MIG, elimine el horario . Si desea deshabilitar el autoscalaje para un MIG, apague el autoscalado .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en edición .

  4. Puede ver el número total de horarios bajo los horarios de autoscalización . Haga clic en Administrar horarios para mostrar la lista de sus horarios de escala existentes.

  5. Seleccione las casillas de verificación para los horarios de escala que desea deshabilitar o habilitar.

  6. Desactivar o habilitar los horarios seleccionados.

    • Para deshabilitar los horarios seleccionados:
      1. En la parte superior del panel de horarios de escala , haga clic en DISTABLE .
      2. En el diálogo de New Disable Schedule , haga clic en DISHAT .
    • Para habilitar los horarios seleccionados:
      1. En la parte superior del panel de horarios de escala , haga clic en enable .
      2. En el diálogo de New Enable Schedule , haga clic en Habilitar .

Es posible que deba esperar unos minutos antes de que sus cambios sean efectivos. Puede monitorear el estado de sus horarios haciendo clic en de actualización en la parte superior del panel de horarios de escala .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para deshabilitar o volver a habilitar un horario de escala, use el comando gcloud compute instance-groups managed update-autoscaling .

Deshabilitar un horario de escala

Para deshabilitar un horario de escala, use el indicador --disable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --disable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un horario de escala existente.
  • SCHEDULE_NAME : el nombre del horario de escala que desea deshabilitar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

Volver a habilitar un horario de escala

Para volver a habilitar un horario de escala, use el indicador --enable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --enable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un horario de escala existente.
  • SCHEDULE_NAME : el nombre del horario de escala que desea volver a habilitar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para deshabilitar o volver a habilitar los horarios de escala para un MIG, use el método autoscalers.patch regionAutoscalers.patch

Desactivar los horarios de escala

Para cada horario de escala que desee deshabilitar, configure el campo disabled en true . Por ejemplo, haga la siguiente llamada para deshabilitar un cronograma para un MIG zonal que tenga una política de autoscalización existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": true
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.
  • SCHEDULE_NAME : el nombre del horario de escala que desea deshabilitar.

Volver a habilitar los horarios de escala

Para cada horario de escala que desea volver a habilitar, configure el campo disabled en false . Por ejemplo, haga la siguiente llamada para volver a habilitar un horario para un MIG zonal que tenga una política de autoscalización existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": false
      },
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.
  • SCHEDULE_NAME : el nombre del horario de escala que desea volver a habilitar.

Eliminar un horario de escala

Elimine los horarios de escala de un MIG eliminándolos. Elimine los horarios que ya no necesita, como los horarios con un estado OBSOLETE .

Una política de autoscalado siempre debe tener al menos una señal de escala. Si no existe otra señal de autoscalaje, entonces no puede eliminar todos los horarios de escala sin eliminar toda la política de autoscalización. Si desea eliminar todos los horarios de escala pero mantener la política de autoscalaje, debe agregar al menos una señal de escala antes de eliminar todos los horarios.

Si desea evitar que un horario se activa y guárdelo para uso futuro, deshabilite el horario . Si desea eliminar la configuración de autoscalaje para un MIG, elimine el autoscaler .

Consola

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

    Ir a grupos de instancias

  2. Haga clic en el nombre de un MIG de la lista.

  3. Haga clic en edición .

  4. Puede ver el número total de horarios bajo los horarios de autoscalización . Haga clic en Administrar horarios para mostrar la lista de sus horarios de escala existentes.

  5. Seleccione las casillas de verificación para los horarios de escala que desea eliminar.

  6. En la parte superior del panel de horarios de escala , haga clic en Eliminar .

  7. En el diálogo New Elimed Schedules , haga clic en Eliminar .

Es posible que deba esperar unos minutos antes de que sus cambios sean efectivos. Puede monitorear el estado de sus horarios haciendo clic en de actualización en la parte superior del panel de horarios de escala .

Cuando haya terminado, puede cerrar la lista haciendo clic en Listo .

nube de gcloud

Para eliminar un horario de escala, use el comando gcloud compute instance-groups managed update-autoscaling con el indicador --remove-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --remove-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Reemplace lo siguiente:

  • MIG_NAME : el nombre de un MIG con un horario de escala existente.
  • SCHEDULE_NAME : el nombre del horario de escala que desea eliminar.
  • ZONE o REGION : Opcional: la zona o región donde se encuentra su MIG.

DESCANSAR

Para eliminar los horarios de escala para un MIG, use el método autoscalers.patch para un MIG zonal o el regionAutoscalers.patch de la región. Para cada horario de escala que desea eliminar, establezca la configuración del horario en null

Por ejemplo, haga la siguiente llamada para eliminar un cronograma para un MIG zonal que tenga una política de autoscalización existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": null
      ...
    }
  }
}

Reemplace lo siguiente:

  • PROJECT : su identificación de proyecto .
  • ZONE : La zona donde se encuentra su MiG.
  • AUTOSCALER_NAME : el nombre de un AutoScaler existente. Esto es a menudo lo mismo que el nombre del MiG.
  • SCHEDULE_NAME : el nombre del horario de escala que desea eliminar.

Conceptos

Esta sección describe conceptos relacionados con la creación y el uso de los cronogramas de escala que incluyen la configuración del cronograma y los detalles sobre cómo funcionan.

Configuración del horario de escala

Cuando crea y modifica los horarios de escala para un MIG, cada programa de escala contiene la siguiente configuración:

  • Instancias mínimas requeridas : el número de máquinas virtuales que necesita en el MIG cuando este horario de escala está activo.

    Cuando este horario está activo, el MIG tiene al menos este número de máquinas virtuales, pero podría tener más dependiendo de otras configuraciones de autoscalización. Además, el tamaño de MIG siempre está restringido por el número mínimo y máximo de instancias configuradas en la configuración de autoscalaje del MIG.

  • Zona horaria : la zona horaria de IANA basada en la ubicación para interpretar la hora de inicio del horario.

    Una lista de valores disponibles está definida por la base de datos de la zona horaria de IANA , por ejemplo, Europe/Paris . Si no se proporciona una zona horaria, UTC se usa de forma predeterminada. Algunas zonas horarias de IANA observan el horario de verano. Para saber cómo el horario de ahorro de verano afecta los horarios de escala, consulte el horario de verano .

  • Duración : la cantidad de tiempo que desea que el horario de escala esté activo.

    El cronograma de escala está activo desde su hora de inicio para la duración configurada. La duración mínima es de 5 minutos. Durante este tiempo, AutoScaler escala el MIG para tener al menos tantas máquinas virtuales como se define por las instancias requeridas del horario. Después de la duración especificada, si la capacidad actual ya no es necesaria, el AutoScaler comienza a eliminar las instancias de VM después de un período de estabilización predeterminado de 10 minutos y siguiendo los controles de escala configurados.

    Los horarios de escala son bidireccionales. Las máquinas virtuales se eliminan en el momento de parada que especifica y el tamaño del grupo se reduce al tamaño mínimo de grupo que establece, a menos que haya especificado otras señales de autoscalización.

Al usar Google Cloud CLI o REST, debe configurar la hora de inicio y la recurrencia de un programa de escala utilizando una expresión cron . Sin embargo, al usar Google Cloud Console, puede configurar la hora de inicio y la recurrencia de un programa, ya sea utilizando una expresión cron o la siguiente configuración:

  • Hora de inicio : la hora del día en que desea que el horario de escala se activa.

    En la hora de inicio, el programa de escala comienza a crear máquinas virtuales cada vez que el tamaño de MIG es más bajo que las instancias requeridas del horario. Establezca la hora de inicio para permitir suficiente tiempo para que las nuevas máquinas virtuales se inicien e inicialicen. Por ejemplo, si su carga de trabajo lleva 10 minutos a partir de la creación de VM para comenzar a servir, entonces establezca la hora de inicio para ser 10 minutos antes del momento en que necesita que las máquinas virtuales estén listas.

  • Recurrencia : si y con qué frecuencia se repite el horario de escala, según lo definido por las siguientes opciones:

    • Una vez : un horario de tiempo que comienza solo en la fecha seleccionada.
    • Todos los días : un horario repetitivo que comienza todos los días.
    • Cada semana : un horario de repetición que comienza cada semana en los días seleccionados de la semana, por ejemplo, todos los lunes a viernes.
    • Cada mes : un horario de repetición que comienza cada mes en los días seleccionados del mes, por ejemplo, el primer día de cada mes. Los últimos días del mes (días 29 a 31) solo son efectivos durante los meses en que ocurren esos días.

Expresiones cron

La hora de inicio y la recurrencia de un horario de escala se pueden configurar utilizando una expresión cron . Cron es un programador de trabajo basado en el tiempo que se usa originalmente en sistemas operativos de computadora tipo UNIX.

Sintaxis

Una expresión cron es una cadena que comprende cinco o seis campos separados por Whitespace. La siguiente tabla define los campos de una expresión cron y los valores posibles para cada campo.

Minuto Hora Día del mes Mes Día de la semana Año (opcional)
0-59 0-23 1-31 1-12 (Jan-Dec)

donde 1 = Jan , 2 = Feb , ... 12 = Dec
0-6 (Sun-SAT) o 1-7 (Mon-Sun)

donde 0 = Sun , 1 = Mon , ... 6 = Sat , 7 = Sun
2000-2036

o cada año ( * ) si no se proporciona

Además de usar estos valores, cada campo en una expresión cron también puede usar caracteres especiales:

Personaje especial Significado Ejemplo
* cualquier Si el campo del día del mes, el campo del día de la semana y el campo de año (si se incluyen) están establecidos en * , entonces el horario comienza todos los días.
- rango Si el campo del día de la semana está establecido en 1-5 o Mon-Fri , entonces el horario comienza cada semana de lunes a viernes.
, lista Si el campo del mes se establece en 5,7,9 o May,Jul,Sep , entonces el horario comienza cada mayo, julio y septiembre.
/ paso Si el campo del mes se establece en */3 , entonces el horario comienza durante el primer mes y cada 3 meses después de eso: enero, abril, julio y octubre.

Cuando escriba una expresión cron, considere lo siguiente:

  • El espacio en blanco se usa para separar los campos de una expresión cron. Recuerde no agregar espacio en blanco adicional en un campo que use caracteres especiales.
  • Cuando especifica un día de la semana y un día del mes (cuando ninguno de los campos está establecido en * ), el cronograma utiliza la unión de estos valores, no la intersección. Por ejemplo, el Anexo 0 8 1 * Mon comienza a las 8:00 am todos los lunes y el primer día de cada mes. Ese horario no comienza a las 8:00 am solo los lunes que también son el primer día del mes.
  • Puede usar cero o más caracteres especiales en cada campo de una expresión cron. Por ejemplo, si desea que un cronograma comience cada mes, excepto mayo, puede establecer el campo de mes en 1-4,6-12 (una lista de dos rangos sin espacios en blanco).
  • Cuando usa rangos ( - ), no puede usar 0-7 o Sun-Sun para el campo de la semana del día de la semana, para especificar todos los días de la semana, usar * , 0-6 , 1-7 , Sun-Sat o Mon-Sun en su lugar.
  • Al usar los pasos ( / ), recuerde que las expresiones cron son apátridas, por lo que los pasos a veces pueden ser desiguales. Por ejemplo, si desea que se ejecute un horario cada 6 horas, puede establecer el campo Horario en */6 , que se comporta lo mismo que enumerar cada múltiplo válido de 6 ( 0,6,12,18 ). Los pasos son incluso porque 24 horas se divide fácilmente en partes de 6 horas. Sin embargo, si establece el campo Horas en */7 , el horario no siempre comenzará en intervalos de 7 horas. En cambio, */7 se comporta lo mismo que enumerar cada múltiplo válido de 7 ( 0,7,14,21 ), lo que significa que el cronograma puede comenzar durante las horas de las 12 a.m., las 7 a.m., las 2 pm y las 9 p.m.

Repetir horarios versus horarios

Dependiendo de cómo escriba su expresión cron, su horario puede ejecutarse una o periódicamente repetir. Para crear un horario que solo se ejecute una vez, debe especificar el campo Año. Por ejemplo, la expresión cron 0 0 30 1 * 2030 configura un horario para comenzar solo una vez, a la medianoche del 30 de enero de 2030. Para crear un horario que se repita, use caracteres especiales para describir cuándo ese horario debe repetirse. Por ejemplo, el Cron Expression 30 8 * * Mon-Fri configura un horario para comenzar a las 8:30 a.m. todos los lunes, martes, miércoles, jueves y viernes.

Información de estado de programación

Enumere sus horarios de escala para ver su estado. Un horario de escala tiene la siguiente información de estado:

  • Estado ( state ): el estado actual del cronograma de escala, representado por uno de los siguientes estados:
    • Listo ( READY ): este horario está listo pero aún no activo. Autoscaler is awaiting the next occurrence of this schedule.
    • Active ( ACTIVE ): This schedule is currently active. Autoscaler is trying to provide this MIG with at least the required instances that this schedule specifies.
    • Obsolete ( OBSOLETE ): This schedule has expired; it will not be active again. Autoscaler is ignoring this schedule because there are no future occurrences.
    • Disabled ( DISABLED ): This schedule cannot be active because it was manually disabled. Autoscaler is ignoring this schedule until it is re-enabled.
  • Last occurrence ( lastStartTime ): The timestamp of the last time this scaling schedule became active. This is the actual date and time of the last activation. For example, if you have a disabled scaling schedule with a daily recurrence, 10 AM start time, and 2-hour duration, and you re-enable the schedule at 11 AM today, then the lastStartTime is 11 AM today.
  • Next occurrence ( nextStartTime ): The timestamp of the next time this schedule is set to become active.

Overlapping schedules

Depending on start time, recurrence, duration, and time zone, two or more scaling schedules might overlap. When more than one schedule is active, the autoscaler uses the greatest number of required VM instances from all active scaling schedules. This helps you ensure that there is always enough capacity to meet the needs of any active schedule. For example, if you have a schedule that recurs every day 8 AM to 10 AM requiring at least 10 VMs, but also have a one-off all-day schedule requiring at least 20 VMs, then autoscaler scales the MIG to at least 20 VMs on that day. This is useful when you have regular, recurring capacity requirements but sometimes need more to handle onetime events. This behavior lets you schedule capacity without worrying about it being overridden by other schedules with smaller VM requirements.

Additionally, an autoscaler always provides the greatest number of VM instances required by any active autoscaling signal. For more information, see Using an autoscaling policy with multiple signals .

Daylight saving time

The details of daylight saving time (DST) vary according to your scaling schedule's location-based IANA time zone . If your schedule's time zone observes DST, the schedule's start time automatically adjusts to stay synchronized with the time for the selected location. For example, if you create a scaling schedule that starts every day at 7 AM for the time zone America/New_York , then this schedule starts whenever it is 7 AM in New York, using Eastern Daylight Time or Eastern Standard Time accordingly.

Scaling schedules always run for the entire duration that you configure, but they might have slightly different start and end times on the days when DST observation switches. This happens because DST switches have transition periods —a timeframe that is skipped on the first day of DST and that occurs twice on the last day of DST. For example, if DST for your time zone begins at 2 AM and has a 1-hour transition, then the clock changes from 1:59:59 AM to 3 AM, so the timeframe 2 AM to 2:59:59 AM is skipped. If DST for that time zone ends at 2 AM, then the clock changes from 2:59:59 AM to 2 AM, so the timeframe 2 AM to 2:59:59 AM is repeated. The following statements assume that the time zone for your schedule uses a 1-hour DST transition.

On the first day of DST (when 1 hour is skipped), scaling schedules have the following changes:

  • Schedules that are active during the skipped hour still run for their entire duration, but to compensate for the skipped hour, these schedules end 1 hour later than their end time on days without DST transitions. Normally, the end time of a schedule is the sum of the schedule's start time and duration. But if DST skips 1 hour while a schedule is active, and the duration and start time remain constant, then the end time for that schedule is 1 hour more than the sum of the schedule's start time and duration.
  • Schedules that are configured to start during the skipped hour also start 1 hour later than their start time on days without DST transitions.

On the last day of DST (when 1 hour is repeated), scaling schedules have the following changes:

  • Schedules that are active during the repeat hour still run for their entire duration, but to compensate for the repeated hour, these schedules end 1 hour earlier than their end time on days without DST transitions. Normally, the end time of a schedule is the sum of the schedule's start time and duration. But if DST repeats 1 hour while a schedule is active, and the duration and start time remain constant, then the end time for that schedule is 1 hour less than the sum of the schedule's start time and duration.
  • Schedules that are configured to start during the transition period start at their configured time, but they do not restart during the second, repeated occurrence of the start time.

Most of the time zones that observe DST use a 1-hour transition period. But, if the time zone for your schedule uses a different transition period—such as the Australia/Lord_Howe time zone, which uses 30-minute transitions—you can expect the same behavior. Just replace 1 hour with the relevant DST transition time.

¿Qué sigue?