Creación de una política de escala automática basada en programas

En Compute Cloud@Customer, puede crear políticas de escala automática basadas en programas.

La política de ampliación automática forma parte de una configuración de ampliación automática. Cada política de una configuración de escala automática basada en programa tiene un programa y un tamaño de grupo de destino o una acción de ciclo de vida.

Los procedimientos de esta sección describen cómo crear políticas independientes de la creación de la configuración de escala automática.

Diseño de Políticas

En esta sección, se proporcionan algunos consejos para diseñar y solucionar problemas de políticas.

Cree dos políticas independientes para escalar y reducir un pool o para cambiar el estado del pool entre parado y en ejecución.

  • Ejemplo de escala: una política especifica un tamaño más grande para el pool al principio de un período de alta demanda y una segunda política especifica un tamaño de pool más pequeño al final del período de alta demanda.

  • Ejemplo de estado: una política para todas las instancias del pool al principio de un período de mantenimiento de nodo de cálculo normal y una segunda política inicia el pool al final del período de mantenimiento.

Diseñe el programa de políticas de la siguiente manera:

  • Utilice expresiones cron. La escala automática utiliza una implementación de cron similar a la implementación de cron de Quartz. Todos los campos requieren un valor. Si los campos entran en conflicto, como el día del mes y el día de la semana, utilice un valor específico para uno y un signo de interrogación para el otro.

  • Proporcione todas las horas de programación en UTC.

  • Utilice un generador de expresiones cron en línea, como Generador de expresiones cron de Quartz, para verificar las expresiones de programación.

  • Asegúrese de que los programas de política no entren en conflicto. Consulte las descripciones de Gestión de varios programas de las políticas que se ejecutan cuando los programas entran en conflicto.

Realice los siguientes pasos si una política no se ejecuta o parece no ejecutarse:

  • Compruebe que tanto la configuración como la política de ampliación automática estén activadas.

  • Compruebe la expresión de programación. ¿La política está definida para ejecutarse cuando estaba destinada a ejecutarse? Recuerde que todas las horas de expresión se deben proporcionar en UTC.

  • ¿Se ha definido la política para iniciar instancias que ya se estaban ejecutando o parar instancias que ya se han parado?

    Además de un conflicto de políticas, es posible que se haya realizado una acción de energía en la agrupación independiente de cualquier política de escala automática. Esa acción de poder separada podría impedir que la acción política tenga éxito. No se reintenta la acción de energía de política.

  • ¿La política estaba configurada para escalarse horizontalmente, pero no había suficientes recursos disponibles?

    La política de escala define el tamaño del pool y el pool sigue intentando alcanzar ese tamaño a medida que los recursos están disponibles.

  • ¿La operación especificada por la política sigue ejecutándose o esperando su ejecución?

    • Compruebe si la agrupación tiene el estado Escala, Inicio, Parada o Reinicio, lo que indica que la operación de política aún se está ejecutando.

    • Si una operación de cambio de estado intenta ejecutarse mientras una operación de cambio de estado ya se está ejecutando en la misma agrupación, la segunda operación no se puede ejecutar.

    • Un número limitado de agrupaciones puede cambiar de estado simultáneamente. Si hay demasiadas agrupaciones que ya están cambiando de estado, la agrupación debe esperar para comenzar a cambiar de estado. El tiempo para cambiar de estado es más largo cuando hay más instancias implicadas porque las instancias se inician, se paran o se reinician en serie.

    • Un número limitado de agrupaciones puede cambiar de tamaño simultáneamente. Si otras agrupaciones ya están cambiando de tamaño, es posible que la agrupación tenga que esperar para comenzar a escalar. El tiempo de ampliación es mayor cuando hay más instancias implicadas porque las instancias se suprimen o se crean en serie. La supresión y la creación de instancias son operaciones en segundo plano y tardan un tiempo en comenzar después de que la política haya actualizado el tamaño del pool.

    1. En el menú de navegación de la consola de Compute Cloud@Customer, seleccione Recursos informáticos y, a continuación, Configuraciones de escala automática.

    2. En la parte superior de la página, seleccione el compartimento que contiene la configuración a la que desea agregar una política.
    3. Seleccione el nombre de la configuración de escala automática a la que desea agregar una política.

    4. En Recursos, seleccione Políticas de escala automática y, a continuación, seleccione Crear política programada.
    5. En el cuadro de diálogo Crear política, introduzca la siguiente información:

      • Nombre: introduzca un nombre para la nueva política de escala automática.

      • Acción que se realizará: seleccione Escalar tamaño de pool o Cambiar estado de ciclo de vida de todas las instancias.

        • Escalar tamaño de pool: introduzca el número de instancias a las que el pool se escala a la hora programada.

        • Cambiar estado de ciclo de vida de todas las instancias: seleccione el estado al que van todas las instancias del pool a la hora programada.

        • Activar programa: por defecto, el cuadro Programación activada está seleccionado para permitir que la política se ejecute a la siguiente hora programada. Desactive la casilla para desactivar esta política.

      • Programa de ejecución: defina el programa para implementar esta política de escala automática. Consulte Diseño de políticas.

    6. Seleccione Enviar.

  • Utilice el comando oci autocaling policy create y los parámetros necesarios para crear una política de escala automática para la configuración de escala automática especificada.

    oci autoscaling policy create  --auto-scaling-configuration-id autoscaling_configuration_OCID  --from-json file://policy_definitions.json --policy-type scheduled [OPTIONS]

    Para obtener una lista completa de los comandos, los indicadores y las opciones de la CLI, consulte la Referencia de la línea de comandos.

    Procedimiento

    1. Obtenga el OCID de la configuración de escala automática en la que desea agregar esta política de escala automática: oci autoscaling configuration list

    2. Cree un archivo que contenga las definiciones de política.

      Use el siguiente comando para mostrar el contenido y el formato del archivo:

      $ oci autoscaling policy create \
      --generate-full-command-json-input > autoscalingPolicyCreate.json
      Nota

      No especifique valores para capacity min o max. Estas propiedades no se aplican a las configuraciones de escala automática basada en programa.

      Los valores por defecto para capacity min y max aparecen en la política de escala automática creada, pero no se utilizan para la escala automática basada en programa.

      El nombre mostrado tiene entre 1 y 255 caracteres, no es necesario que sea único y se puede actualizar.

      Utilice las referencias de Creación de una política de escala automática basada en programa para obtener ayuda con la definición del programa de ejecución de la política. timezone debe ser UTC y type debe ser cron.

      La política está activada por defecto.

      El tipo de política debe ser scheduled.

      El tipo de acción de recurso debe ser power y la acción debe ser STOP, START, SOFTRESET, RESET.

      A continuación, se muestra un ejemplo de política de ampliación automática para crear un archivo de entrada:

      {
        [
          {
            "capacity": {
              "initial": 10
            },
            "displayName": "size 10",
            "executionSchedule":
              {
                "expression": "0 0 10 ? 1 2#2 *",
                "timezone": "UTC",
                "type": "cron"
              },
            "isEnabled": true,
            "policyType": "scheduled"
          },
            "capacity": {
              "initial": 30
            },
            "displayName": "size 30",
            "executionSchedule":
              {
                "expression": "0 0 7 ? 11 5#1 *",
                "timezone": "UTC",
                "type": "cron"
              },
            "isEnabled": true,
            "policyType": "scheduled"
          },
          {
            "displayName": "stop policy",
            "executionSchedule":
              {
                "expression": "0 0 7 ? JAN,APR,JUL,OCT 4#3 *",
                "timezone": "UTC",
                "type": "cron"
              },
            "isEnabled": true,
            "policyType": "scheduled",
            "resourceAction": {
              "actionType": "power",
              "action": "STOP"
            }
          },
          {
            "displayName": "start policy",
            "executionSchedule":
              {
                "expression": "0 0 13 ? JAN,APR,JUL,OCT 4#3 *",
                "timezone": "UTC",
                "type": "cron"
              },
            "isEnabled": true,
            "policyType": "scheduled",
            "resourceAction": {
              "actionType": "power",
              "action": "START"
            }
          }
        ]
      }
    3. Ejecute el comando para crear nuevas políticas para la configuración de escala automática especificada.

      Ejemplo:

      $ oci autoscaling policy create \
      --auto-scaling-configuration-id ocid1.autoscalingConfiguration.unique_ID \
      --from-json file://./salesPoolPolicies.json --policy-type scheduled

      Utilice el comando work-requests work-request get para comprobar el estado del comando create de la política de escala automática.

  • Consulte la Referencia de AutoScalingPolicy para conocer las operaciones de API que definen los criterios que disparan las acciones de escala automática y las acciones que se deben realizar.

    Para obtener más información sobre el uso de la API y la firma de solicitudes, consulte API de REST y Credenciales de seguridad. Para obtener información sobre los SDK, consulte Software development kits e interfaz de línea de comandos.