概念 - Kubernetes 缩放选项
有时,缩放 Pod 的数量来处理增加的需求是不够的。 若要进行调整以适应不断变化的应用程序需求(如工作日与夜间或周末之间),群集通常需要一种自动缩放方式。
Kubernetes 缩放选项
Kubernetes 群集可使用以下一种组件进行缩放:
- 群集自动缩放程序,它会监视由于资源约束而无法在节点上计划的 Pod。 群集会自动增加节点数以满足需求。
- 水平 Pod 自动缩放程序 (HPA),它会在 Kubernetes 群集中使用指标服务器来监视 Pod 的资源需求。 如果应用程序需要更多资源,则会自动增加 Pod 数以满足需求。
HPA 和群集自动缩放程序还可以根据需要减少 Pod 和节点数。 当一段时间存在未使用的容量时,群集自动缩放程序会减少节点数。 群集自动缩放程序需要删除的节点上的任何 Pod 都会在群集中的其他位置安全地进行计划。
在 Pod 无法移动的情况下,群集自动缩放程序可能无法纵向缩减,例如:
- Pod 直接创建,不由控制器对象(如部署或 ReplicaSet)提供支持。
- Pod 中断预算 (PDB) 限制太多,不允许 Pod 数低于特定阈值。
- Pod 使用在不同节点上进行计划时无法遵循的节点选择器或反相关性。
将 KEDA 与 HPA 配合使用
KEDA 充当自定义指标 API,使用缩放程序向 HPA 公开指标,从而简化开发指标服务器的过程。
缩放程序有助于将各种源的指标提供给 HPA。 KEDA 支持各种缩放程序,包括:
- Apache Kafka
- AWS CloudWatch
- AWS Kinesis Stream
- AWS SQS Queue
- Azure Blob 存储
- Azure 事件中心
- Azure Log Analytics
- Azure Monitor
- Azure 服务总线
- Azure 存储队列
- Google Cloud Platform Pub/Sub
- IBM MQ
- InfluxDB
- NATS Streaming
- OpenStack Swift
- PostgreSQL
- Prometheus
- RabbitMQ 队列
- Redis 列表
有关完整列表,请参阅 KEDA 的当前可用缩放程序。