Kubernetes 状态集缩减

Posted

技术标签:

【中文标题】Kubernetes 状态集缩减【英文标题】:Kubernetes Statefulset Downscaling 【发布时间】:2020-07-09 09:02:24 【问题描述】:

目前我在 Kubernetes 上运行一个 solr 集群作为 statefulset。我的 solr 集群中有 39 个 Pod 在其中运行。我在单个物理节点上运行单个 pod。我的 solr 集群只有 1 个集合,分为 3 个分片,每个分片有 13 个节点(或 pod)在其中运行,在这 13 个节点(或 pod)中,3 个是 TLOG 副本,10 个是 PULL 副本。

我想讨论的问题是 - 我想自动缩放我的 solr 集群。在某些情况下,我想将我的 PULL 副本节点(或 Pod)缩减到最小,以便减少不必要的消耗。现在我知道我可以在 Kuberntes 中使用 HPA 来自动扩展,但是在缩减规模时我不想停止我的 TLOG 节点(或 pod)。同样,在扩大规模时,我只想将 PULL 副本添加到我的集群中。

谁能帮我解决这个问题。

【问题讨论】:

【参考方案1】:

您可以为每种 pod 类型设置不同的部署,例如,一种部署用于 TLOG pod,另一种部署用于 PULL pod。然后,您可以为 TLOG pod 定义固定数量的副本,为 PULL pod 定义一个 HPA。这将只允许添加/删除 PULL pod,而不会对 TLOG pod 产生任何影响。

【讨论】:

以上是关于Kubernetes 状态集缩减的主要内容,如果未能解决你的问题,请参考以下文章

即使使用量低于阈值,Kubernetes 部署也不会缩减

Kubernetes HPA 和缩减

如何防止在 Kubernetes 中由 HPA 创建的特定时间段内新扩展的 Pod 缩减?

Pod 副本缩减在 Kubernetes Horizo​​ntal Pod Autoscaler 中是如何工作的?

Terraform 和 GCP:Google kubernetes 集群问题:看不到工作负载(部署、状态集)内部的监控部分(内存和 cpu)

Kubernetes之核?技术概念和API对象