Concepto: opciones de escalado de Kubernetes
A veces, el escalado del número de pods para controlar el aumento de la demanda no es suficiente. Para adaptarse a las cambiantes necesidades de las aplicaciones, como detallar los horarios entre la jornada laboral y la noche o un fin de semana, los clústeres a menudo necesitan una forma de realizar automáticamente el escalado.
Opciones de escalado de Kubernetes
Los clústeres de Kubernetes se pueden escalar mediante uno de los siguientes componentes:
- El Escalador automático de clústeres busca pods que no se pueden programar debido a restricciones de los nodos. El clúster aumenta automáticamente el número de nodos para satisfacer la demanda.
- El Escalador automático de pods horizontales (HPA) usa el servidor de métricas de un clúster de Kubernetes para supervisar la demanda de recursos de los pods. Si una aplicación necesita más recursos, el número de pods aumenta automáticamente para satisfacer la demanda.
Tanto HPA como el Escalador automático de clústeres también pueden reducir el número de pods y nodos según sea necesario. El Escalador automático de clústeres disminuye el número de nodos cuando hay un periodo de tiempo con capacidad no utilizada. Los pods de un nodo que el Escalador automático de clústeres deba eliminar se programan de forma segura en otro lugar del clúster.
Es posible que el Escalador automático de clústeres no se pueda reducir verticalmente si no se pueden mover los pods, como en las situaciones siguientes:
- Un pod se crea directamente y no lo respalda un objeto de controlador, como una implementación o un conjunto de réplicas.
- Un presupuesto de interrupciones de pods (PDB) es demasiado restrictivo y no permite que la cantidad de pods sea menor que el umbral definido.
- Un pod usa selectores de nodo o antiafinidad que no se pueden respetar si se programan en un nodo diferente.
Uso de KEDA con HPA
KEDA actúa como una API de métricas personalizada y usa escaladores para exponer métricas a HPA, lo que simplifica el proceso de desarrollo de un servidor de métricas.
Los escaladores ayudan a proporcionar métricas de varios orígenes al HPA. KEDA admite una amplia variedad de escaladores, incluidos los siguientes:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS Queue
- Azure Blob Storage
- Azure Event Hubs
- Azure Log Analytics
- Azure Monitor
- Azure Service Bus
- Cola de Azure Storage
- Google Cloud Platform Pub/Sub
- IBM MQ
- InfluxDB
- NATS Streaming
- OpenStack Swift
- PostgreSQL
- Prometheus
- Cola de RabbitMQ
- Listas de Redis
Para obtener la lista completa, vea Escaladores disponibles actualmente para KEDA.