是否可以自动缩放除 Kind 之外的其他种类:在 Kubernetes 中部署?

Posted

技术标签:

【中文标题】是否可以自动缩放除 Kind 之外的其他种类:在 Kubernetes 中部署?【英文标题】:Is it possible to Autoscale other Kinds than Kind : Deployment in Kubernetes? 【发布时间】:2021-08-16 10:15:09 【问题描述】:

我想在 Kubernetes 中使用除部署之外的其他类型进行自动缩放,这可能吗?我不想使用 kind 的原因:部署是重启策略,根据 k8s 文档,重启策略的唯一有效字段是“Always”,如果输入“Never”,我会收到错误消息。

在我的场景中,我有一个外部监控 UI,如果需要,我可以使用它来关闭服务,但现在发生的情况是 pod 正在终止,并且正在创建新的 pod。我该怎么办 ?请注意,我不能像 kind:Pod 一样运行它,因为我想自动扩展服务,而 Kind:Pod 的 Autoscaling 无效!

请分享您对此的建议和看法!提前致谢。

【问题讨论】:

【参考方案1】:

HPA 可用于以下资源:ReplicationControllerDeploymentReplicaSetStatefulSet。但是 HPA 不支持缩放到 0。

在 Kubernetes 中有一些无服务器框架支持零扩展性,例如 Knative 和 Keda。

不过,您的用例听起来要简单得多,因为您希望根据手动操作将比例缩小到零。您可以通过将部署的副本数设置为 0 来实现此目的。

kubectl scale --replicas=0 deployment/deploymentName

然后,如果您想重新激活服务,请再次增加副本。

kubectl scale --replicas=1 deployment/deploymentName

【讨论】:

感谢您的意见。还可以说有 5 个副本正在运行,我想在外部停止一个……在这种情况下,部署控制器将在我从外部停止后再次创建那个副本,对吗?是否有可能避免这种重新启动? 这取决于,最有可能的是,Horizo​​ntalPodAutoscaler 将尝试保持副本数以保持平均指标利用率低于配置的阈值。如果你删除一个 pod,你无法避免重启,但如果你想从 5 个副本变为 4 个副本,只需将其扩展到 4 个副本

以上是关于是否可以自动缩放除 Kind 之外的其他种类:在 Kubernetes 中部署?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 OracleDataSource 用于除 Oracle 之外的其他数据库?

PHP 中是不是有除数组之外的其他数据结构,我可以从不同的索引技术中受益吗?

使用自动布局缩放垂直约束

是否可以捕获除运行时异常之外的所有异常?

在 GHCi 中,为啥函数箭头 `:kind (->)` 的种类包含问号 `(->) :: ?? ->? -> *`? [复制]

是否可以使用 Unity 预测丢帧,并在此之前停用除相机更新之外的所有内容以避免 VR 不适?