Configurar Horizontal Pod Autoscaler en Kubernetes
Habilitar metrics plugin en Minikube:
minikube addons enable metrics-server
Iniciar una implementación y exponla como un servicio:
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
Crear un Horizontal Pod Autoscaler:
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
Este comando crea un HPA con un mÃnimo de un pod y un máximo de diez pods en ejecución. Intentará mantener el uso promedio de los pods al 50 % y, si hay más uso, creará automáticamente más pods para mantener el uso al 50 %.
Para probarlo, se deberá ejecutar lo siguiente en una terminal diferente:
kubectl run -it --rm load-generator --image=busybox /bin/sh
Luego, para crear el tráfico necesario para que HPA comience a funcionar:
**while true; do wget -q -O- http://php-apache; done**
De vuelta en la primera terminal, es posible controlar el HPA con:
kubectl get hpa -w
Para tener más control sobre el HPA también es posible crearlo con un archivo mainfest, el equivalente al comando kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
serÃa:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
HPA también se puede configurar según el uso de la CPU o las solicitudes recibidas, es una buena idea guardarlo como un archivo para mantener un registro de la configuración del HPA.
Enlaces de referencia
Last updated