Configurar HPA en Kubernetes
En este artículo, analizamos cómo configurar el escalado automático horizontal de pods en Kubernetes. Este tema es muy interesante e informativo en Kubernetes. Hay mucha confusión sobre cómo se escalan los contenedores en Kubernetes. En este editorial, discutiremos cada paso en detalle con las capturas de pantalla correspondientes. Si no tiene idea acerca de Kubernetes, consulte nuestros artículos anteriores relacionados con Kubernetes. HPA es escalado automático horizontal de pod. Para una mejor comprensión, echemos un vistazo a las siguientes secciones.
Contenidos
¿Qué es HPA en Kubernetes?
HPA significa Horizontal Pod Autoscaler en Kubernetes y modifica la estructura de la carga de trabajo de tráfico de Kubernetes aumentando o disminuyendo automáticamente la cantidad de pods según la capacidad de utilización de la CPU. A diferencia de cambiar los recursos asignados a un solo contenedor, esta escala se realiza horizontalmente, ya que afecta la cantidad total de instancias de CPU.
¿Cómo funciona HPA en Kubernetes?
Todos sabemos que la CPU maneja los procesos. Una vez que implementamos y configuramos las réplicas, los demonios están configurados y podemos agregar manualmente más pods al conjunto de implementación o réplica. Kubernetes ofrece escalado automático horizontal de pods para automatizar este proceso. HPA es el controlador utilizado para controlar el uso de la CPU a través de la automatización. Una aplicación de Kubernetes escala automáticamente en función de las cargas de trabajo. Cuando la cantidad de tráfico disminuye y el uso de la CPU disminuye, se reduce. La aplicación de Kubernetes se escala a medida que aumentan las cargas de trabajo mediante la creación de más réplicas de la aplicación de Kubernetes.
Requisitos:
Se requiere lo siguiente para ejecutar HPA en su aplicación Kubernetes:
- Instaló la última versión de Ubuntu en su sistema.
- Si es un usuario de Windows, primero instale Virtual Box y ejecute Ubuntu o Linux virtualmente en su sistema.
- Instaló la última versión de Kubernetes en su sistema con la versión 1.23.
- Debe tener una idea del clúster de Kubernetes y la herramienta de línea de comandos kubectl en la que ejecutaremos los comandos. Necesitas saber su configuración.
En este artículo, aprenderemos cada paso en detalle con ejemplos útiles. Como principiante, ha venido al lugar correcto para familiarizarse con los métodos de Kubernetes. Explicamos el proceso de configuración de HPA en diferentes pasos. ¡Empecemos!
Paso 1: Inicie el contenedor de Kubernetes
En este paso, comenzaremos con el contenedor de Kubernetes, que es un minikube. Ejecutamos el siguiente comando para iniciar el minikube:
Minikube se inicia después de la ejecución del comando. Minikube nos proporciona un contenedor local de Kubernetes en el que realizamos diversas acciones.
Paso 2: Ejecute el servidor PHP Apache en el archivo YAML
En este paso, creamos un archivo de configuración después de crear un contenedor para iniciar una implementación. Ejecutamos el siguiente comando para crear un archivo YAML: La siguiente es la ejecución del comando mencionado en la captura de pantalla adjunta. El archivo de configuración contiene diferentes tipos de datos como el nombre del archivo, la especificación de los contenedores y la especificación del selector. Este contenedor se ejecuta utilizando la imagen Registry.k8s.io/hpa-example, como podemos ver en la siguiente captura de pantalla:
Esta es también la parte del archivo YAML:
Paso 3: Cree una implementación y servicios en Kubernetes
En este paso, crearemos una implementación y la declararemos como un servicio utilizando la captura de pantalla adjunta. Ejecutamos el siguiente comando en la terminal: > kubectl apply -f php.yaml
Después de la ejecución de este comando, se creará el servidor de implementación PHP Apache. Al mismo tiempo, el servicio se crea con éxito.
Paso 4: Cree un escalador automático de pod horizontal en Kubernetes
En este paso, crearemos un escalador automático de pod horizontal en el servidor de aprovisionamiento mediante kubectl. Para ello ejecutamos el siguiente comando: > kubectl autoscale deployment php-apache –cpu-percent=50 –min=1 –max=10
Cuando ejecutamos este comando, el escalador automático de pod horizontal se creará con éxito. En el comando anterior, también inicializamos los valores mínimo y máximo. Esto significa que el escalador automático de pod horizontal mantendrá entre 1 y 10 réplicas del pod. Todo esto está controlado por el servidor de aprovisionamiento PHP Apache.
Paso 5: comprobar el estado del escalador automático del pod horizontal en Kubernetes
En este paso, queremos obtener o verificar el estado de HPA, ya sea que HPA esté presente en Kubernetes o no. Para ello, ejecutamos el comando adjunto:
Como vimos en la captura de pantalla adjunta anteriormente, un HPA está presente en nuestro contenedor y se llama ‘php-apache’. La referencia de este pod es Deployment/php-Apache. Los objetivos nos muestran que el consumo de CPU de este módulo es desconocido en un 50 %, lo que significa que no se recibe ninguna solicitud del cliente. El número mínimo de pods es 1 y el número máximo de pods es 10. Las réplicas son «0» y la edad de este pod es «7s».
Paso 6: aumentar la carga de trabajo o el tráfico en el servidor
En este paso, nos conectamos a la implementación creada anteriormente para crear un pod y validar el HPA en el entorno real para ver si el HPA puede administrar los recursos o no. También aumentamos la carga en el clúster ejecutando el siguiente comando: > kubectl run -i -tty load-generator -rm -image=busybox:1.28 -restart=never — /bin/sh -c «while sleep 0.01; wget -q -O- http://php-apache; acabado»
Paso 7: Ver el HPA después de la ejecución
Podemos ver fácilmente la lista HPA ejecutando el siguiente comando: > kubectl get hpa php-apache –watch
Después de ejecutar el comando mencionado anteriormente, el resultado aparecerá igual que en el Paso 6 de este artículo.
Paso 8: Ver la implementación de Kubernetes
En este paso, obtenemos la lista de implementaciones de Kubernetes simplemente ejecutando el siguiente comando: > kubectl get deployment php-apache
Paso 9: Crea más réplicas
En este paso, crearemos la réplica del mismo pod en Kubernetes usando el mismo comando: > kubectl get hpa php-apache –watch
Este comando supervisa los detalles del pod después de la ejecución. Podemos ver el detalle de este pod en la captura de pantalla mencionada anteriormente.
Paso 10: Vuelva a ingresar a la implementación
En este paso, ejecutaremos el mismo comando para ver la implementación. El comando es el siguiente: > kubectl get deployment php-apache
Conclusión
Este artículo está sobre HPA. HPA proporciona una forma de automatización relacionada con el uso de la CPU. Hemos aprendido cada paso en detalle para la configuración de HPA. Esperamos que usted también entienda cómo funciona el HPA y que pueda ponerlo en práctica en su entorno.