我有一个Google Kubernetes引擎集群,它运行几种环境(dev,pre,pro)的pod。为了降低成本,我想在夜间停止一些节点,只保留运行生产pod所需的节点。然后在早上,我想要扩展节点并启动dev/pre pod。
高峰时段
Node1 -> ProdPod1 DevPod1
Node2 -> ProdPod2 PrePod1
.
.
NodeN -> DevPod2 ProdPod3
硅谷小时数
Node1 -> ProdPod1 ProdPod2 ProdPod3
GKE是否提供了一些方法来编程这种节点和pod的缩小/放大?如果不是,怎么做呢?
发布于 2018-09-27 07:16:20
问题是,如果您任意终止节点,而Kubernetes被请求使用特定资源运行(并且正在运行)特定工作负载,您如何期望它知道要终止哪些pod?
(您可以使用pod优先级来解决这个问题,但我不建议这样做)。
您要查看的是Cluster Autoscaler。
只要确保在晚上终止开发/测试工作负载,自动伸缩器就会处理剩下的事情。
我会更详细,但这听起来非常像premature optimization,所以我不建议你走你要走的路,除非你节省的钱很多,即比你的时间更值得;-)
希望这能有所帮助!
发布于 2018-09-27 13:47:51
我还想补充一点,如果你想省钱,如果你的开发pod可以容忍一些停机时间,你应该考虑使用preemptible or spot instances。一些好的见解here
https://stackoverflow.com/questions/52526734
复制相似问题