我可以自动缩放 Kind : Pod 吗?

Posted

技术标签:

【中文标题】我可以自动缩放 Kind : Pod 吗?【英文标题】:Can I autoscale Kind : Pod? 【发布时间】:2021-08-14 08:17:48 【问题描述】:
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
 name: testingHPA

spec:
 scaleTargetRef:
   apiVersion: apps/v1beta1
   kind: Deployment
   name: my_app
 minReplicas: 3
 maxReplicas: 5
 targetCPUUtilizationPercentage: 85

以上是正常的 hpa.yaml 结构,是否可以将 kind 用作 pod 并自动缩放它??

【问题讨论】:

简答,否 您不能使用 pod kind 并自动缩放它。 HPA 是为自动缩放 pod 创建的。为什么不想使用 HPA? 我想使用它,因为每当我删除 pod 时,它们都会重新创建,因为它们在部署控制器下。是否有任何政策可以阻止正在部署的 Pod 重新启动? ..在某些情况下我们可能需要这样做! 【参考方案1】:

正如其他人已经指出的那样,不可能将Pod 设置为Kind 对象作为HPA 的目标资源。

document describes HPA 为:

Horizo​​ntal Pod Autoscaler 自动缩放 Pod 的数量 在复制控制器、部署、副本集或有状态集中 基于观察到的 CPU 利用率(或者,使用自定义指标支持,在 一些其他应用程序提供的指标)。请注意,水平吊舱 自动缩放不适用于无法缩放的对象,因为 例如,DaemonSets。

该文档还描述了该算法在后端是如何实现的:

desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

并且由于 Pod 资源没有将副本字段作为其规范的一部分,因此我们可以得出结论,使用 HPA 的自动缩放不支持相同的字段。

【讨论】:

【参考方案2】:

一个 Pod 永远只是一个 Pod。它没有任何水平缩放机制,因为它是其他一切的机制。

【讨论】:

以上是关于我可以自动缩放 Kind : Pod 吗?的主要内容,如果未能解决你的问题,请参考以下文章

EKS:在特定 AWS 自动缩放组上运行特定服务(pod)

Pub Sub 数据关联与 Pod 自动缩放

可以在生产中使用 Kubernetes 自动缩放 v2beta2 作为 apiVersion 吗?

同时自动缩放卷和 Pod (Kubernetes)

使用 pubsub 等谷歌云指标自动缩放 pod

Kubernetes:如何将自动缩放 pod 的 accessModes 更改为 ReadOnlyMany?