我在GKE自动驾驶上运行Kubernetes集群
我有这样的Pod:等待作业,运行作业(这可能需要几分钟或几个小时),然后进入Pod Succeeded State,这将导致Kubernetes重新启动Pod。
我需要的pod数量是可变的,这取决于平台上有多少用户。每个用户都可以请求一个需要pod才能运行的作业。
我不希望用户不得不等待pod扩展,所以我想保持一些额外的pod准备好并等待执行。
我的pod正在运行的应用程序可以在3个状态- {waiting for job
,running job
,completed job
}
扩展是很好的,因为我可以使用扩展API,并始终要求有一定百分比的pod处于waiting for job
状态
当缩小时,我想确保Kubernetes不会杀死任何处于running job
状态的pod。
我应该实现自定义水平Pod自动缩放器吗?
我可以为我的pod的应用程序状态配置自定义探针吗?
我也可以使用pod优先级或preStop钩子
你可以配置水平Pod自动缩放,以确保Kubernetes不会杀死任何Pod。
配置水平pod缩放的步骤:
创建部署,应用nginx。
执行以下命令:kubectl apply -f nginx.yaml
基于资源利用率的自动缩放
1-进入Cloud Console的workload页面。
2-单击nginx部署的名称。
3-Click listActions>自动定量.
4-指定以下值:
-最小副本数: 1 .
-最大副本数: 10
-自动缩放度量: CPU
-目标strong>: 50
<-单位/strong>: %
5-Click完成strong>.
6-Click自动定量.
要获取集群中的水平Pod自动缩放器列表,请使用以下命令:
kubectl get hpa
如何配置水平pod自动缩放指南。
您还可以在Cloud Console上使用自定义度量来参考GKE自动驾驶集群的自动缩放规则链接。