概念 - 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 的当前可用缩放程序

知识检查

1.

工作负载执行 CPU 密集型照片转换。 应选择哪个缩放选项?

2.

你的群集在高峰时段接近利用其所有可用资源。 应使用哪个缩放选项?

3.

服务处理来自 Apache Kafka 队列的消息。 应选择哪个缩放选项?