【问题标题】:How to implement horizontal auto scaling in GKE autopilot based on a custom metric如何在 GKE 自动驾驶仪中基于自定义指标实现水平自动缩放
【发布时间】:2021-10-31 02:09:51
【问题描述】:

我在 GKE 自动驾驶仪上运行 Kubernetes 集群

我的 Pod 执行以下操作 - 等待作业,运行作业(这可能需要几分钟或几小时),然后进入 Pod Succeeded 状态,这将导致 Kubernetes 重新启动 Pod。

我需要的 pod 数量取决于平台上的用户数量。每个用户都可以请求一个需要 pod 才能运行的作业。

我不希望用户必须等待 pod 扩大规模,因此我希望保留一些额外的 pod 准备就绪并等待执行。

我的 pod 正在运行的应用程序可以处于 3 种状态 - { waiting for jobrunning jobcompleted job}

扩大规模很好,因为我可以只使用规模 API 并始终请求在 waiting for job 状态下拥有一定比例的 pod

缩小规模时,我想确保 Kubernetes 不会杀死任何处于 running job 状态的 pod。

我应该实现自定义水平 Pod 自动缩放器吗?

我可以为我的 pod 的应用程序状态配置自定义探针吗?

我也可以使用 pod 优先级或 preStop 挂钩

【问题讨论】:

  • 您能否再描述一下您的应用程序?例如,用户提交什么来触发工作?这些工作需要访问什么?

标签: kubernetes google-kubernetes-engine kubernetes-pod


【解决方案1】:

您可以配置 Pod 水平自动缩放以确保 Kubernetes 不会杀死任何 Pod。

配置 pod 水平缩放的步骤

创建 Deployment,应用 nginx.yaml 清单,运行以下命令:

  kubectl apply -f nginx.yaml

根据资源利用率自动扩缩

1-转到 Cloud Console 中的工作负载页面。

2-单击 nginx 部署的名称。

三键式列表操作>自动缩放

4-指定以下值:

-最小副本数:1

-最大副本数:10

-Auto Scaling 指标:CPU

-目标:50

-单位:%

5 次点击完成

6 次点击自动缩放

要获取集群中的 Horizo​​ntal Pod Autoscaler 列表,请使用以下命令:

kubectl get hpa

关于如何Configure 水平 pod 自动缩放的指南。

您还可以参考此link 使用 Cloud Console 上的自定义指标来了解 GKE 自动驾驶集群的自动扩缩规则。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-12-12
    • 2016-12-18
    相关资源
    最近更新 更多