¿Cómo configuro Kubernetes Metrics Server y Horizontal Pod Autoscaler en Amazon EKS?

3 minutos de lectura
0

Quiero configurar Kubernetes Metrics Server y Horizontal Pod Autoscaler (HPA) en Amazon Elastic Kubernetes Service (Amazon EKS).

Resolución

Configurar el entorno

  1. Cree una instancia de Amazon Elastic Compute Cloud (Amazon EC2).
  2. Instale kubectl en la instancia de EC2.
  3. Instale y configure la versión más reciente de la Interfaz de la línea de comandos de AWS (AWS CLI) en la instancia de EC2.
  4. Configure el archivo kubeconfig para que apunte al clúster de Amazon EKS.

Crear una instancia de Kubernetes Metrics Server

1.Para instalar Metrics Server, ejecute el siguiente comando:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

2.Para confirmar que Metrics Server se está ejecutando, ejecute el siguiente comando:

kubectl get pods -n kube-system -l k8s-app=metrics-server

El resultado es similar al siguiente:

kubectl get pods -n kube-system -l k8s-app=metrics-server
metrics-server-85cc795fbf-79d72   1/1     Running   0          22s

Crear un despliegue y un servicio de php-apache

1.Para crear un despliegue de php-apache, ejecute el siguiente comando:

kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example

2.Para configurar las solicitudes de CPU, ejecute el siguiente comando:

kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'

Importante: Si no configura el valor de cpu correctamente, la métrica de uso de la CPU para el pod no estará definida y el HPA no se podrá escalar.

3.Para exponer el despliegue como servicio, ejecute el siguiente comando:

kubectl create service clusterip php-apache --tcp=80

4.Para crear un HPA, ejecute el siguiente comando:

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

5.Para confirmar que se creó el HPA, ejecute el siguiente comando:

kubectl get hpa

6.Para crear un pod que se conecte al despliegue que creó anteriormente, ejecute el siguiente comando:

kubectl run -i --tty load-generator --image=busybox /bin/sh

7.Para probar una carga en el pod en el espacio de nombres que utilizó en el paso 1, ejecute el siguiente script:

while true; do wget -q -O- http://php-apache; done

Nota: Para salir del bucle while y de la sesión tty del pod generador de carga, utilice CTRL+C para cancelar el bucle. A continuación, utilice CTRL+D para salir de la sesión.

8.Para ver cómo el HPA escala el pod en función de las métricas de utilización de la CPU, ejecute el siguiente comando (preferiblemente desde otra ventana del terminal):

kubectl get hpa -w

Metrics Server ya está en funcionamiento y puede usarlo para obtener métricas basadas en recursos.

9.Para limpiar los recursos utilizados para probar el HPA, ejecute los siguientes comandos:

kubectl delete hpa,service,deployment php-apache
kubectl delete pod load-generator

Información relacionada

Escalado automático horizontal de pods (en el sitio web de Kubernetes)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año