我有一个带有两个工作节点的EKS集群。我想";"关断";或者在工作时间之外做一些事情来降低集群的成本。有没有办法在晚上关闭节点,早上再打开?
非常感谢。
对于使用托管K8s集群的任何人来说,这都是一个非常常见的问题。人们对此可能会采取不同的方法。最适合我们的是kube-downscaler
和cluster-autoscaler
的组合。
kube downscaler可以帮助您缩小/";暂停";Kubernetes在非工作时间的工作负载(Deployments、StatefulSets和/或HorizontalPodAutoscalers和CronJobs!(。
集群自动缩放器是一种自动的工具:
-
当集群中的节点在很长一段时间内没有得到充分利用,并且它们的pod可以放置在其他现有节点上时,可以缩小Kubernetes集群的大小。
-
当集群中存在由于资源不足而无法运行的pod时,请扩大Kubernetes集群的大小。
因此,基本上在夜间,当kube-downscaler
缩小pod和其他对象时,cluster-autoscaler
会注意到未充分利用的节点,并在将pod放置在其他节点上之前杀死它们。而在早上却反其道而行之。
当然,可能需要对两者的配置进行一些微调,以使其最适合您。
与您的特定问题无关,但如果您在;节省";模式下,您可能需要查看EKS的EC2点实例,假设您可以在它们的边界内操作。有关详细信息,请参阅此处。