在 Google Cloud 上的何处配置 Kubernetes 集群自动扩缩器?

Posted

技术标签:

【中文标题】在 Google Cloud 上的何处配置 Kubernetes 集群自动扩缩器?【英文标题】:Where to config the Kubernetes Cluster Autoscaler on Google Cloud? 【发布时间】:2018-08-04 10:34:55 【问题描述】:

我在启用Cluster Autoscaler 选项的情况下在Google Kubernetes Engine 上创建集群。 我想根据https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md配置--scale-down-delay-after-delete等缩放行为。

但我在集群自动扩缩器 kube-system 上找不到 Pod 或 Deployment。

有人有想法吗?


编辑: 我Horizontal Pod Autoscaler

我希望我可以像这样配置它:

$ gcloud container clusters update cluster-1 --enable-autoscaling --scan-interval=5 --scale-down-unneeded-time=3m
ERROR: (gcloud.container.clusters.update) unrecognized arguments:
  --scan-interval=5
  --scale-down-unneeded-time=3m

【问题讨论】:

我不太明白你的问题,但据我所知,我猜你正在寻找kubernetes.io/docs/tasks/run-application/… 集群自动扩缩器(GCE 层...扩展和缩减正在运行的 GCE VM 实例)与水平 pod 自动扩缩器(GKE 层...扩展和缩减 pod 部署中的副本) 我的意思是 Cluster Autoscaler,它是 GKE 上的一个选项。它更多的是关于集群而不是水平 pod 自动缩放器。 你有没有找到解决这个问题的方法@WeiChingLin? 我也在这里问过这个问题:github.com/kubernetes/autoscaler/issues/966 【参考方案1】:

根据https://github.com/kubernetes/autoscaler/issues/966是不可能的

可能是因为无法访问 GKE 上的可执行文件(似乎是)。

您甚至无法在 GKE 上查看自动扩缩器的日志:https://github.com/kubernetes/autoscaler/issues/972

【讨论】:

【参考方案2】:

一种方法是不启用 GKE 自动缩放器,然后手动将其安装在工作节点上 - 根据项目的文档:

用户可以将其放入 kube-system 命名空间(Cluster Autoscaler 不会缩减运行非镜像 kube-system pod 的节点)并在您的 pod 规范中设置 priorityClassName: system-cluster-critical 属性(以防止你的 pod 被驱逐)。

https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler#deployment

我还认为您可以使用以下内容注释自动缩放器 pod:

"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"

【讨论】:

【参考方案3】:

如果我正确理解你需要这个:

通过以下方式检查您的部署名称:

kubectl get deployments

并通过以下方式自动缩放:

kubectl autoscale deployment your_deployment_name --cpu-percent=100 --min=1 --max=10

【讨论】:

要查看它,请输入kubectl get hpa cluster-autoscaler 将根据例如 pod 是否处于挂起状态或节点是否为空 10 分钟来添加节点/删除节点。问题是:如何配置10分钟间隔。

以上是关于在 Google Cloud 上的何处配置 Kubernetes 集群自动扩缩器?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理来自 Google Cloud 存储的应用程序/八位字节文件?

Google Cloud Dataproc 上的 Pyspark 作业失败

内部 TCP 负载平衡器上的目标端口 - Google Cloud

如何使用 Google Cloud Compute Engine 为 Node.JS 应用程序配置端口转发

如何在 Google Cloud Function 上的 Spring Cloud 函数中获取 Pub/Sub 事件的元数据

如何插入托管在 Google Cloud (bitnami) 上的 Elasticsearch