Creación de una política de HPA para el escalado automático de cargas de trabajo
Horizontal Pod Autoscaling (HPA) en Kubernetes implementa el ajuste horizontal de pods. En una política de HPA de CCE, puede configurar diferentes ventanas de tiempo de enfriamiento y umbrales de ajuste para diferentes aplicaciones basadas en el HPA de Kubernetes.
Requisitos previos
- metrics-server: proporciona las métricas básicas de uso de recursos, como CPU de contenedor y uso de memoria. Es compatible con todas las versiones de clúster.
- prometheus: proporciona las métricas personalizadas además de las métricas básicas de recursos. Es necesario registrar Prometheus como el servicio que proporciona API de métricas. Para obtener más información, véase Proporcionar métricas de recursos. Este complemento solo admite clústeres de v1.21 o anteriores.
- kube-prometheus-stack: proporciona las métricas personalizadas además de las métricas básicas de recursos. Es necesario registrar Prometheus como el servicio que proporciona API de métricas. Para obtener más información, véase Proporcionar métricas de recursos. Este complemento solo admite clústeres de v1.23 o posterior.
Notas y restricciones
- Las políticas de HPA solo se pueden crear para clústeres de v1.13 o posterior.
- Para los clústeres anteriores a v1.19.10, si se utiliza una política de HPA para escalar una carga de trabajo con volúmenes de EVS montados, los pods existentes no se pueden leer ni escribir cuando se programa un nuevo pod en otro nodo.
Para los clústeres de v1.19.10 y las versiones posteriores, si se utiliza una política de HPA para escalar una carga de trabajo con un volumen de EVS montado, no se puede iniciar un nuevo pod porque no se pueden conectar los discos de EVS.
Procedimiento
- Inicie sesión en la consola de CCE y acceda a la consola del clúster.
- En el panel de navegación, elija Workload Scaling. A continuación, haga clic en Create HPA Policy en la esquina superior derecha.
- Establezca los parámetros de política.
Tabla 1 Parámetros de política de HPA Parámetro
Descripción
Policy Name
Nombre de la política que se va a crear. Configure este parámetro según sea necesario.
Namespace
Espacio de nombres al que pertenece la carga de trabajo.
Associated Workload
Carga de trabajo con la que está asociada la política de HPA.
Pod Range
Número mínimo y máximo de pods.
Cuando se activa una política, los pods de carga de trabajo se escalan dentro de este intervalo.
Cooldown Period
Intervalo entre una reducción y una expansión. La unidad es un minuto. El intervalo no puede ser inferior a 1 minuto.
Este parámetro solo se admite en los clústeres de v1.15 a v1.23.
Este parámetro indica el intervalo entre las operaciones de ajuste consecutivas. El período de tiempo de reutilización garantiza que se inicie una operación de ajuste solo cuando se haya completado la anterior y el sistema se esté ejecutando de manera estable.
Scaling Behavior
Este parámetro solo se admite en los clústeres de v1.25 o posterior.
- Default: Escala las cargas de trabajo utilizando el comportamiento predeterminado de Kubernetes. Para obtener más información, consulte Comportamiento predeterminado.
- Custom: Escala las cargas de trabajo mediante políticas personalizadas, como ventana de estabilización, pasos y prioridades. Los parámetros no especificados utilizan los valores recomendados por Kubernetes.
- Disable scale-out/scale-in: Seleccione si desea deshabilitar la expansión o reducción horizontal.
- Stabilization Window: Período durante el cual CCE comprueba continuamente si las métricas utilizadas para escalar siguen fluctuando. CCE activa la escala si no se mantiene el estado deseado para toda la ventana. Esta ventana restringe el aleteo no deseado del recuento de pod debido a cambios de métrica.
- Step: especifica el paso de ajuste. Puede establecer el número o porcentaje de pods que se ajustarán o reducirán dentro de un período especificado. Si hay varias políticas, puede seleccionar la política que maximiza o minimiza el número de pods.
System Policy
- Metric: Puede seleccionar CPU usage o Memory usage.
NOTA:
Uso = CPU o memorias utilizadas por pods/CPU o memorias solicitadas.
- Desired Value: Introduzca el uso promedio de recursos deseado.
Este parámetro indica el valor deseado de la métrica seleccionada. Número de pods a escalar (redondeado) = (Valor métrico actual/Valor deseado) x Número de pods actuales
NOTA:Al calcular el número de pods que se agregarán o reducirán, la política de HPA utiliza el número máximo de pods en los últimos 5 minutos.
- Tolerance Range: El escalado no se activa cuando el valor de la métrica está dentro del rango de tolerancia. El valor deseado debe estar dentro del rango de tolerancia.
Si el valor de la métrica es mayor que el umbral de reducción y menor que el umbral de expansión, no se activa el ajuste. Este parámetro solo se admite en los clústeres de v1.15 o posterior.
Custom Policy (supported only in clusters of v1.15 or later)
NOTA:Antes de establecer una política personalizada, debe instalar un complemento que admita la recopilación de métricas personalizadas en el clúster, por ejemplo, el complemento prometheus.
- Metric Name: nombre de la métrica personalizada. Puede seleccionar un nombre como se le solicite.
Para obtener más información, véase Monitoreo de métricas personalizadas con prometheus.
- Metric Source: Seleccione un tipo de objeto de la lista desplegable. Puede seleccionar Pod.
- Desired Value: el valor métrico promedio de todos los pods. Número de pods a escalar (redondeado) = (Valor métrico actual/Valor deseado) x Número de pods actuales
NOTA:
Al calcular el número de pods que se agregarán o reducirán, la política de HPA utiliza el número máximo de pods en los últimos 5 minutos.
- Tolerance Range: El escalado no se activa cuando el valor de la métrica está dentro del rango de tolerancia. El valor deseado debe estar dentro del rango de tolerancia.
- Haga clic en Create.