Configuración de una regla de escalado automático
Función
Esta API se utiliza para configurar reglas de escalado automático.
La API utilizada para la creación de clústeres y la ejecución de trabajos también se puede utilizar para crear una regla de escalado automático.
Restricciones
Ninguna
Depuración
Puede depurar esta API a través de la autenticación automática en API Explorer. API Explorer puede generar automáticamente código SDK de ejemplo y proporcionar la depuración de código SDK de ejemplo.
URI
- Formato
- Descripción de parámetro
Tabla 1 Parámetros de URI Parámetro
Obligatorio
Tipo
Descripción
project_id
Sí
String
ID del proyecto. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.
cluster_id
Sí
String
ID de clúster. Para obtener más información acerca de cómo obtener el ID de clúster, consulte Obtención de la información del clúster MRS.
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
node_group |
Sí |
String |
Tipo del nodo al que se aplica una regla de escalado automático. Actualmente, solo los nodos Task admiten reglas de escalado automático, es decir, el valor de solicitud es task_node_default_group. |
auto_scaling_policy |
Sí |
AutoScalingPolicy object |
La política de escalado automático. Tabla 3 describe estos parámetros. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
auto_scaling_enable |
Sí |
Boolean |
Si se activa la regla de escalado automático. |
min_capacity |
Sí |
Integer |
Número mínimo de nodos que quedan en el grupo de nodos. Rango de valores: 0 a 500 |
max_capacity |
Sí |
Integer |
Número máximo de nodos en el grupo de nodos. Rango de valores: 0 a 500 |
resources_plans |
No |
List |
Lista de planes de recursos. Para obtener más información, consulte Tabla 4. Si este parámetro se deja en blanco, el plan de recursos se deshabilita. Cuando se habilita el escalado automático, se debe configurar un plan de recursos o una regla de escalado automático. |
exec_scripts |
No |
List |
Lista de scripts de automatización de escalado personalizados. Para obtener más información, consulte Tabla 5. Si este parámetro se deja en blanco, se deshabilita un script de hook. |
rules |
No |
List |
Lista de reglas de escalado automático. Para obtener más información, consulte Tabla 6. Cuando se habilita el escalado automático, se debe configurar un plan de recursos o una regla de escalado automático. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
period_type |
Sí |
String |
Tipo de ciclo de un plan de recursos. Actualmente, solo se admite el siguiente tipo de ciclo: daily |
start_time |
Sí |
String |
Hora de inicio de un plan de recursos. El valor tiene el formato de hour:minute, lo que indica que el tiempo varía de 0:00 a 23:59. |
end_time |
Sí |
String |
Hora de finalización de un plan de recursos. El valor tiene el mismo formato que el de start_time. El intervalo entre end_time y start_time debe ser mayor o igual a 30 minutos. |
min_capacity |
Sí |
Integer |
Número mínimo de nodos conservados en un grupo de nodos en un plan de recursos. Rango de valores: 0 a 500 |
max_capacity |
Sí |
Integer |
Número máximo de nodos conservados en un grupo de nodos de un plan de recursos. Rango de valores: 0 a 500 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de un script de automatización personalizado. Debe ser único en un mismo clúster. El valor solo puede contener dígitos, letras, espacios, guiones (-) y guiones bajos (_) y no debe comenzar con un espacio. El valor puede contener de 1 a 64 caracteres. |
uri |
Sí |
String |
Ruta de un script de automatización personalizado. Establezca este parámetro en una ruta de acceso de bucket OBS o una ruta de VM local.
|
parameters |
No |
String |
Parámetros de un script de automatización personalizado.
|
nodes |
Sí |
Array of strings |
Tipo de nodo donde se ejecuta el script de automatización personalizado. El tipo de nodo puede ser Master, Core, o Task. |
active_master |
No |
Boolean |
Si el script de automatización personalizado se ejecuta sólo en el nodo Master activo. El valor predeterminado es false, que indica que el script de automatización personalizado puede ejecutarse en todos los nodos de Master. |
action_stage |
Sí |
String |
Hora en que se ejecuta un script. Se admiten las siguientes cuatro opciones:
|
fail_action |
Sí |
String |
Si se deben continuar ejecutando scripts subsiguiente y crear un clúster después de que no se ejecute la secuencia de comandos de automatización personalizada.
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de una regla de escalado automático. Un nombre de clúster solo puede contener entre 1 y 64 caracteres. Solo se permiten letras, dígitos, guiones (-) y guiones bajos (_). Los nombres de regla deben ser únicos en un grupo de nodos. |
description |
No |
String |
Descripción sobre una regla de escalado automático. Contiene un máximo de 1,024 caracteres. |
adjustment_type |
Sí |
String |
Tipo de ajuste de regla de escalado automático. Valores posibles:
|
cool_down_minutes |
Sí |
Integer |
Tiempo de enfriamiento del clúster después de activar una regla de escalado automático, cuando no se realiza ninguna operación de escalado automático. La unidad es un minuto. Rango de valores: 0 a 10,080. Una semana es igual a 10,080 minutos. |
scaling_adjustment |
Sí |
Integer |
Número de nodos que se pueden ajustar una vez. Rango de valores: 1 a 100 |
trigger |
Sí |
Trigger object |
Condición para activar una regla. Para obtener más información, consulte Tabla 7. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
metric_name |
Sí |
String |
Nombre de la métrica. Esta condición desencadenante hace un juicio de acuerdo con el valor de la métrica. Un nombre de métrica contiene un máximo de 64 caracteres. |
metric_value |
Sí |
String |
Umbral métrico para activar una regla El valor del parámetro puede ser un entero o un número con dos decimales solamente. |
comparison_operator |
No |
String |
Operador lógico de juicio métrico. Valores posibles:
|
evaluation_periods |
Sí |
Integer |
Número de períodos consecutivos de cinco minutos, durante los cuales se alcanza un umbral métrico Rango de valores: 1 a 288 |
Parámetros de respuesta
Ninguna
Solicitud de ejemplo
Ejemplo de solicitud para configurar una regla de escalado automático
POST https://{endpoint}/v1.1/{project_id}/autoscaling-policy/{cluster_id} { "node_group" : "task_node_analysis_group", "auto_scaling_policy" : { "auto_scaling_enable" : "true", "min_capacity" : "1", "max_capacity" : "3", "resources_plans" : [ { "period_type" : "daily", "start_time" : "9:50", "end_time" : "10:20", "min_capacity" : "2", "max_capacity" : "3" }, { "period_type" : "daily", "start_time" : "10:20", "end_time" : "12:30", "min_capacity" : "0", "max_capacity" : "2" } ], "exec_scripts" : [ { "name" : "before_scale_out", "uri" : "s3a://XXX/zeppelin_install.sh", "parameters" : "${mrs_scale_node_num} ${mrs_scale_type} xxx", "nodes" : [ "master_node_default_group", "core_node_analysis_group", "task_node_analysis_group" ], "active_master" : "true", "action_stage" : "before_scale_out", "fail_action" : "continue" }, { "name" : "after_scale_out", "uri" : "s3a://XXX/storm_rebalance.sh", "parameters" : "${mrs_scale_node_hostnames} ${mrs_scale_node_ips}", "nodes" : [ "master_node_default_group", "core_node_analysis_group", "task_node_analysis_group" ], "active_master" : "true", "action_stage" : "after_scale_out", "fail_action" : "continue" } ], "rules" : [ { "name" : "default-expand-1", "adjustment_type" : "scale_out", "cool_down_minutes" : "5", "scaling_adjustment" : "1", "trigger" : { "metric_name" : "YARNMemoryAvailablePercentage", "metric_value" : "25", "comparison_operator" : "LT", "evaluation_periods" : "10" } }, { "name" : "default-shrink-1", "adjustment_type" : "scale_in", "cool_down_minutes" : "5", "scaling_adjustment" : "1", "trigger" : { "metric_name" : "YARNMemoryAvailablePercentage", "metric_value" : "70", "comparison_operator" : "GT", "evaluation_periods" : "10" } } ] } }
Una nueva regla de escalado automático sobrescribirá la regla de escalado automático guardada en la base de datos original. Si desea modificar la regla original, consulte primero la regla original, modifique la regla y envíe una tarea de modificación. Para obtener más información, consulte Consulta de detalles del clúster.
Ejemplo de respuesta
Código de estado: 200
La operación es exitosa.
{ "result" : "succeeded" }
Códigos de error
Consulte Códigos de error.