如何使用 kubectl 命令在 Kubernetes 中关闭自动缩放?

Posted

技术标签:

【中文标题】如何使用 kubectl 命令在 Kubernetes 中关闭自动缩放?【英文标题】:How to turn off autoscaling in Kubernetes with the kubectl command? 【发布时间】:2017-02-12 21:25:36 【问题描述】:

如果我使用 kubectl autoscale 命令 (http://kubernetes.io/docs/user-guide/kubectl/kubectl_autoscale/) 设置为自动扩展部署,如何关闭它并返回手动扩展?

【问题讨论】:

【参考方案1】:

当您自动缩放时,它会创建一个HorizontalPodScaler。

您可以通过以下方式删除它:

kubectl delete hpa NAME-OF-HPA.

您可以从以下地址获取NAME-OF-HPA

kubectl get hpa.

【讨论】:

【参考方案2】:
kubectl delete hpa $name of hpa

与每个 API 资源一样,水平 Pod 自动扩缩器在中受支持 kubectl 的标准方式。我们可以使用 kubectl 创建一个新的自动缩放器 创建命令。我们可以通过 kubectl get hpa 列出自动缩放器并获取 kubectl describe hpa 的详细描述。最后,我们可以删除一个 使用 kubectl delete hpa 的自动缩放器。

from official docs

【讨论】:

虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 这就够了吗?【参考方案3】:
kubectl delete horizontalpodautoscaler name_autoscaler_deployment -n namespace

【讨论】:

【参考方案4】:

如果可能,请将最小值和最大值节点设置为相同的值(等于当前 pod 数),而不是删除自动标量。所以那个自动缩放器不会做任何事情。如果您想要自动缩放功能 agian,则只需更新最小和最大节点。

【讨论】:

【参考方案5】:

使用以下命令删除命名空间中的所有 HPA:

kubectl --namespace=MY_NAMESPACE get hpa | awk 'print $1' | xargs kubectl --namespace=MY_NAMESPACE delete hpa

【讨论】:

【参考方案6】:

如果您关注this example,并且您无法从终端终止负载生成器(通过键入 Ctrl+C),那么仅删除 hpa 并不会真正终止您的部署。在这种情况下,您还必须删除您的部署。在此示例中,您有两个部署:

$ kubectl get deployment(运行此命令查看部署)

姓名 -------- 期望的 -- 当前 -- 最新的 -- 可用的 -- 年龄

负载发生器11 1 1 1 1 d

php-apache     1            1            1                                        1       d

然后执行以下命令删除您的部署:

$ kubectl 删除部署负载生成器

$ kubectl 删除部署 php-apache

【讨论】:

【参考方案7】:

如果您想暂时禁用集群 Autoscaler 的效果,请尝试以下方法。您可以启用和禁用集群 Autoscaler(节点级别)的效果。

kubectl get deploy -n kube-system -> 它将列出 kube-system 部署。 将 coredns-autoscaler 或 autoscaler 副本从 1 更新为 0。因此,负责自动缩放的 pod 将被终止,这意味着您已经关闭了 Autoscaler 的效果。但部署仍然存在,您可以将副本更新回 1 以在您的集群上启用 Autoscaler 效果。

【讨论】:

以上是关于如何使用 kubectl 命令在 Kubernetes 中关闭自动缩放?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 kubectl 命令用于在 Rancher 中使用 docker 运行的 kubernetes?

通过 kubectl 命令在 YAML 中使用环境变量

kubernetes-1.概述

Kubectl基础命令大全

如何在 terraform 中运行 kubectl apply 命令

Kubectl scale 命令最佳实践