Compartir a través de


Escalado automático de HDInsight en clústeres de AKS

Importante

Azure HDInsight en AKS se retiró el 31 de enero de 2025. Obtenga más información con este anuncio.

Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.

Importante

Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte Azure HDInsight en AKS información de la versión preliminar. Para preguntas o sugerencias de características, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.

El ajuste de tamaño de cualquier clúster para satisfacer el rendimiento del trabajo y administrar los costos con antelación siempre es complicado y difícil de determinar. Una de las ventajas de construir un data lakehouse en la nube es su elasticidad, lo que significa utilizar la función de escalado automático para maximizar el uso de los recursos disponibles. El escalado automático con Kubernetes es una clave para establecer un ecosistema optimizado para costos. Con patrones de uso variados en cualquier empresa, puede haber variaciones en las cargas de los clústeres con el tiempo, lo que podría dar lugar a clústeres infraaprovisionados (mal rendimiento) o sobreaprovisionados (costos innecesarios debido a recursos inactivos).

La característica de escalado automático que se ofrece en HDInsight en AKS puede aumentar o disminuir automáticamente el número de nodos de trabajo del clúster. El escalado automático usa las métricas del clúster y la directiva de escalado que usan los clientes.

Esta característica es adecuada para cargas de trabajo críticas, que pueden tener

  • Patrones de tráfico variables o imprevisibles que requieren acuerdos de nivel de servicio para un alto rendimiento y capacidad o
  • Programación predeterminada para que los nodos de trabajo necesarios estén disponibles para ejecutar correctamente los trabajos en el clúster.

El escalado automático con HDInsight en clústeres de AKS hace que los clústeres sean rentables y elásticos en Azure.

Con el escalado automático, los clientes pueden reducir verticalmente los clústeres sin afectar a las cargas de trabajo. Se activa con capacidades avanzadas, como la retirada progresiva y el período de enfriamiento. Estas funcionalidades permiten a los usuarios tomar decisiones informadas sobre la adición y eliminación de nodos en función de la carga actual del clúster.

Cómo funciona

Esta característica funciona escalando el número de nodos dentro de los límites preestablecidos en función de las métricas del clúster o una programación definida de operaciones de escalado vertical y reducción vertical. Hay dos tipos de condiciones para desencadenar eventos de escalado automático: desencadenadores basados en umbrales para varias métricas de rendimiento del clúster (denominada escalado basado en carga) y desencadenadores basados en tiempo (denominado escalado basado en programación).

El escalado basado en la carga cambia el número de nodos del clúster, dentro de un intervalo establecido, para garantizar un uso óptimo de la CPU y minimizar el costo de ejecución.

El escalado programado modifica el número de nodos de tu clúster en función de un horario de operaciones de aumento y reducción de escala.

Nota

La escala automática no admite cambiar el tipo de SKU de un clúster existente.

Compatibilidad de clústeres

En la tabla siguiente se describen los tipos de clúster que son compatibles con la característica de escalado automático y lo que está disponible o planeado.

Carga de trabajo Basado en la carga Basado en programación
Flink Planificado
Trino Sí** Sí**
Chispa Sí** Sí**

La desactivación gradual se puede configurar.

Métodos de escalado

  • escalamiento basado en programación:

    • Cuando se espera que los trabajos se ejecuten según programaciones fijas y durante una duración predecible o cuando se prevé un uso bajo durante horas específicas del día Por ejemplo, entornos de prueba y desarrollo en horas posteriores al trabajo, trabajos de fin de día.

      Captura de pantalla que muestra cómo seleccionar el escalado basado en programación.

  • Escala basada en carga:

    • Cuando los patrones de carga fluctúan sustancialmente e impredeciblemente durante el día, como en el procesamiento de datos de pedidos con fluctuaciones aleatorias en los patrones de carga en función de diferentes factores.

      Captura de pantalla que muestra cómo seleccionar el escalado basado en carga.

      Con la nueva opción de configurar regla de escalado, ahora puede personalizar las reglas de escalado.

      Captura de pantalla que muestra cómo configurar la regla de escalado en el escalado basado en carga.

      Captura de pantalla que muestra cómo agregar reglas en la configuración de reglas de escalado para el escalado basado en carga.

      Propina

      • Las reglas de escalar tienen prioridad cuando se activan una o más reglas. Incluso si solo una de las reglas para escalar verticalmente sugiere que el clúster está infraaprovisionado, el clúster intentará escalar verticalmente. Para que se produzca un escalado hacia abajo, no se debe desencadenar ninguna regla de escalado hacia arriba.

Condiciones de escalado basadas en carga

Cuando se detectan las siguientes condiciones, el escalado automático emite una solicitud de escalado.

Ampliación Reducción
Los núcleos asignados son mayores que 80% durante un intervalo de sondeo de 5 minutos (período de comprobación de 1 minuto) Los núcleos asignados son menores o iguales que 20% durante un intervalo de sondeo de 5 minutos (período de comprobación de 1 minuto)
  • Para aumentar la escala, el escalado automático emite una solicitud para agregar el número necesario de nodos. El escalado vertical se basa en cuántos nodos de trabajo nuevos se necesitan para cumplir los requisitos actuales de CPU y memoria. Este valor se limita al número máximo de nodos de trabajo establecidos.

  • Para escalar hacia abajo, el escalado automático realiza una solicitud para quitar algunos nodos. Las consideraciones de reducción de escala incluyen el número de pods por nodo, los requisitos actuales de CPU y memoria, y los nodos de trabajo que son candidatos para la eliminación en función de la ejecución actual de los trabajos. La operación de reducción vertical retira primero los nodos y, a continuación, los quita del clúster.

    Importante

    El motor de reglas de escalado automático vacía de forma proactiva los eventos antiguos cada 30 minutos para optimizar la memoria del sistema. Como resultado, existe un límite máximo de 30 minutos en el intervalo de regla de escalado. Para garantizar el desencadenador coherente y confiable de las acciones de escalado, es imperativo establecer el intervalo de regla de escalado en un valor menor que el límite. Al cumplir esta guía, puede garantizar un proceso de escalado suave y eficaz, a la vez que administra eficazmente los recursos del sistema.

Métricas de clúster

El escalado automático supervisa continuamente el clúster y recopila las siguientes métricas para la escalabilidad automática basada en carga:

Métricas de clúster disponibles con fines de escalado

Métrico Descripción
Porcentaje de núcleos disponibles El número total de núcleos disponibles en el clúster en comparación con el número total de núcleos del clúster.
Porcentaje de memoria disponible Memoria total (en MB) disponible en el clúster en comparación con la cantidad total de memoria del clúster.
Porcentaje de núcleos asignados El número total de núcleos asignados en el clúster en comparación con el número total de núcleos del clúster.
Porcentaje de memoria asignada Cantidad de memoria asignada en el clúster en comparación con la cantidad total de memoria del clúster.

De forma predeterminada, las métricas anteriores se comprueban cada 300 segundos, también se puede configurar al personalizar el intervalo de sondeo con la opción personalizar la escalabilidad automática. El escalado automático toma decisiones de escalado hacia arriba o hacia abajo en función de estas métricas.

Nota

De forma predeterminada, la escala automática usa la calculadora de recursos predeterminada para YARN para Apache Spark. El escalado basado en carga está disponible para clústeres de Apache Spark.

Desmantelamiento elegante

Las empresas necesitan maneras de lograr una escala de petabytes con escalado automático y desmantelar los recursos de manera ordenada cuando ya no sean necesarios. En este escenario, la función de desmantelamiento gradual resulta útil.

La desactivación gradual permite que los trabajos se completen incluso después de que el escalado automático haya desencadenado la desactivación de los nodos de trabajo. Esta característica permite que los nodos se sigan aprovisionando hasta que se completen los trabajos.

  • Trino : Los trabajadores tienen activada la desactivación elegante de forma predeterminada. El coordinador permite que el trabajador en proceso de finalización complete sus tareas durante un período de tiempo configurado antes de quitar al trabajador del clúster. Puede configurar el tiempo de espera mediante el parámetro nativo de Trino shutdown.grace-periodo en la página de configuración del servicio Azure Portal.

  • Apache Spark: Escalar hacia abajo puede afectar o detener cualquier trabajo en ejecución en el clúster. Si habilita la configuración de desmantelamiento ordenado en el portal de Azure, se incorpora el desmantelamiento ordenado de los nodos de YARN y se garantiza que cualquier trabajo en curso en un nodo de trabajador se complete antes de que el nodo sea eliminado del clúster de HDInsight en AKS.

Período de enfriamiento

Para evitar operaciones de escalado vertical continuo, el motor de escalado automático espera un intervalo configurable antes de iniciar otro conjunto de operaciones de escalado vertical. El valor predeterminado se establece en 180 segundos

Nota

  • En las reglas de escalado personalizadas, ningún activador de regla puede tener un intervalo de activación superior a 30 minutos. Después de que se produzca un evento de escalado automático, la cantidad de tiempo que se debe esperar antes de aplicar otra directiva de escalado.
  • El período de enfriamiento debe ser mayor que el intervalo de una directiva, de modo que las métricas del clúster puedan restablecerse.

Comenzar

  1. Para que el escalado automático funcione, es necesario asignar los permisos de propietario de o de colaborador de al MSI (utilizado durante la creación del clúster) en el nivel de clúster, mediante IAM en el panel izquierdo.

  2. Consulte la siguiente ilustración y los pasos enumerados sobre cómo agregar la asignación de roles.

    Captura de pantalla que muestra cómo agregar la asignación de roles.

  3. Seleccione agregar asignación de rol

    1. Tipo de asignación: roles de administrador con privilegios
    2. Rol: Propietario o Colaborador
    3. Miembros: elija Identidad administrada y seleccione la identidad administrada asignada por el usuario, que se dio durante la fase de creación del clúster.
    4. Asigne el rol.

Creación de un clúster con escalado automático basado en programación

  1. Una vez creado el grupo de clústeres, cree un nuevo clúster con la carga de trabajo deseada (en el tipo de clúster) y complete los demás pasos como parte del proceso normal de creación del clúster.

  2. En la pestaña configuración de, habilite de escalado automático.

  3. Seleccione Escalado automático basado en programación

  4. Seleccione la zona horaria y haga clic en + Agregar regla

  5. Seleccione los días de la semana a los que se debe aplicar la nueva condición.

  6. Edite la hora en que la condición debe surtir efecto y el número de nodos a los que se debe escalar el clúster.

    Captura de pantalla que muestra cómo empezar a trabajar con la escalabilidad automática basada en programación.

    Nota

    • El usuario debe tener el rol "propietario" o "colaborador" en la MSI del clúster para que el escalado automático funcione.
    • El valor predeterminado define el tamaño inicial del clúster cuando se crea.
    • La diferencia entre dos programaciones se establece de forma predeterminada en 30 minutos.
    • El valor horario sigue el formato de 24 horas
    • En el caso de una ventana continua de más de 24 horas que se extiende a lo largo de varios días, debes establecer la programación de escalado automático para cubrir varios días, y el escalado automático interpreta las 23:59 como las 00:00 del día siguiente (manteniendo el mismo número de nodos), comprendiendo desde las 22:00 hasta las 23:59, y de las 00:00 a las 02:00 como un periodo continuo de 22:00 a 02:00.
    • Las programaciones se establecen en hora universal coordinada (UTC), de forma predeterminada. Siempre puede actualizar a la zona horaria que coincide con su hora local en la lista desplegable disponible. Cuando se está en una zona horaria que observa el horario de verano, la programación no se ajusta automáticamente, se le pedirá que administre las actualizaciones de programación según corresponda.

Creación de un clúster con escalado automático basado en carga

  1. Una vez creado el grupo de clústeres, cree un nuevo clúster con la carga de trabajo deseada (en el tipo de clúster) y complete los demás pasos como parte del proceso normal de creación del clúster.

  2. En la pestaña de configuración , habilite el interruptor de escalado automático.

  3. Seleccione el escalado automático basado en la carga .

  4. En función del tipo de carga de trabajo, tiene opciones para agregar tiempo de espera para desmantelamiento adecuado, período de enfriamiento

  5. Seleccione el mínimo y máximo nodos y, si es necesario, configurar las reglas de escalado para personalizar el escalado automático según sus necesidades.

    Captura de pantalla que muestra cómo empezar a trabajar con la escalabilidad automática basada en carga.

    Propina

    • La suscripción tiene una cuota de capacidad para cada región. El número total de núcleos de los nodos principales y el número máximo de nodos de trabajo no puede superar la cuota de capacidad. Sin embargo, esta cuota es un límite flexible; Siempre puede crear una incidencia de soporte técnico para aumentarla fácilmente.
    • Si supera el límite total de cuota de núcleos, recibirá un mensaje de error que indica The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores).
    • Las reglas de Scale Up tienen prioridad cuando se desencadenan una o varias reglas. Incluso si solo una de las reglas para escalar verticalmente sugiere que el clúster está infraaprovisionado, el clúster intentará escalar verticalmente. Para que se produzca una reducción de escala, no se debe activar ninguna regla de aumento de escala.
    • En versión preliminar pública, HDInsight en AKS admite hasta 500 nodos en un clúster.

Creación de un clúster con una plantilla de Resource Manager

Escalado automático basado en horario

Puede crear un clúster de HDInsight en AKS con escalado automático basado en programación mediante una plantilla de Azure Resource Manager, agregando un escalado automático en la sección autoscaleProfile del clusterProfile ->.

El nodo de escalado automático contiene una periodicidad que tiene una zona horaria y una programación que describe cuándo tiene lugar el cambio. Para obtener una plantilla completa de Resource Manager, consulte JSON de ejemplo.

{
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "ScheduleBased",
    "gracefulDecommissionTimeout": 60,
    "scheduleBasedConfig": {
      "schedules": [
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday"
          ],
          "startTime": "09:00",
          "endTime": "10:00",
          "count": 2
        },
        {
          "days": [
            "Sunday",
            "Saturday"
          ],
          "startTime": "12:00",
          "endTime": "22:00",
          "count": 5
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "22:00",
          "endTime": "23:59",
          "count": 6
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "00:00",
          "endTime": "05:00",
          "count": 6
        }
      ],
      "timeZone": "UTC",
      "defaultCount": 110
    }
  }
}

Propina

  • Se requiere establecer programaciones no conflictivas mediante implementaciones de ARM para evitar errores en las operaciones de escalado.

Escalado automático basado en carga

Puede crear un clúster de HDInsight en AKS con escalado automático basado en carga mediante una plantilla de Azure Resource Manager agregando una escalabilidad automática a clusterProfile:> sección autoscaleProfile.

El nodo de escalado automático contiene

  • un intervalo de sondeo, un período de enfriamiento,
  • retirada elegante
  • nodos mínimo y máximo,
  • reglas de umbral estándar,
  • el escalado de métricas que describen cuándo tiene lugar el cambio.

Para obtener una plantilla completa de Resource Manager, consulte JSON de ejemplo como se indica a continuación.

  {
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "LoadBased",
    "gracefulDecommissionTimeout": 60,
    "loadBasedConfig": {
      "minNodes": 2,
      "maxNodes": 157,
      "pollInterval": 300,
      "cooldownPeriod": 180,
      "scalingRules": [
        {
          "actionType": "scaleup",
          "comparisonRule": {
            "threshold": 80,
            "operator": " greaterThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        },
        {
          "actionType": "scaledown",
          "comparisonRule": {
            "threshold": 20,
            "operator": " lessThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        }
      ]
    }
  }
}

Uso de la API REST

Para habilitar o deshabilitar la escalabilidad automática en un clúster en ejecución mediante la API REST, realice una solicitud PATCH al punto de conexión de escalado automático: https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}

  • Utilice los parámetros oportunos en la carga de la solicitud. La carga json podría usarse para habilitar el escalado automático.
  • Use la carga (perfil de escalado automático: null) o use el indicador (activado, false) para deshabilitar la escala automática.
  • Consulte los ejemplos json mencionados en el paso anterior para obtener referencia.

Pausar escalado automático para un clúster en ejecución

Hemos introducido la característica de pausa en escalado automático. Ahora, mediante Azure Portal, puede pausar el escalado automático en un clúster en ejecución. En el diagrama siguiente se muestra cómo seleccionar la pausa y reanudar la escalabilidad automática.

Captura de pantalla que muestra cómo pausar el escalado automático.

Puede reanudar las operaciones de escalado automático cuando lo desee.

Captura de pantalla que muestra cómo reanudar el escalado automático.

Propina

Cuando se configuran varias programaciones y se pausa la escalabilidad automática, no se desencadena la programación siguiente. El recuento de nodos sigue siendo el mismo, incluso si los nodos están en un estado retirado.

Copiar configuraciones de escalado automático

Con Azure Portal, ahora puede copiar las mismas configuraciones de escalado automático para una misma forma de clúster en el grupo de clústeres, puede usar esta característica y exportar o importar las mismas configuraciones.

Captura de pantalla que muestra cómo exportar o importar configuraciones desde el escalado automático.

Supervisión de actividades de escalado automático

Estado del clúster

El estado del clúster que se muestra en Azure Portal puede ayudarle a supervisar las actividades de escalado automático. Todos los mensajes de estado del clúster que puede ver se explican en la lista.

Estado del clúster Descripción
Tuvo éxito El clúster funciona normalmente. Todas las actividades anteriores de escalado automático se han completado correctamente.
Aceptado Se acepta la operación de clúster (por ejemplo: aumento de escala), a la espera de que la operación se complete.
Fracasado Esto significa que se produjo un error en una operación actual debido a algún motivo, es posible que el clúster no funcione.
Cancelado La operación actual se cancela.

Captura de pantalla que muestra el estado del clúster.

Para ver el número actual de nodos en su clúster, vaya al gráfico Tamaño del clúster en la página Información general de su clúster.

Captura de pantalla que muestra el tamaño del clúster.

Historial de operaciones

Puede ver el historial de aumento y disminución de capacidad del clúster como parte de las métricas del clúster. También puede enumerar todas las acciones de escalado durante el último día, semana u otro período.

Captura de pantalla que muestra el historial de operaciones del clúster, en los registros de actividad.

recursos adicionales

Escalado manual - Azure HDInsight en AKS