我正在使用由kubeadm配置的kubernetes v1.11.1,该kubeadm由五个节点和数百个Pod组成。如何根据群集的总内存利用率启用或配置群集自动缩放?
最佳答案
可以在Cluster Autoscaler(CA)cluster autoscaler github page的帮助下扩展K8s集群,在那里找到有关AWS CA的信息。
它不是基于“总内存利用率”来扩展群集,而是基于群集中的“挂起的容器”来扩展群集,因为可用群集资源不足,无法满足其CPU和内存请求。
基本上,Cluster Autoscaler(CA)每10秒检查一次挂起(不可调度)的Pod,如果发现,则将请求AWS Autoscaling Group(ASG)API增加ASG中的实例数量。添加到ASG的节点后,它便加入集群并准备为Pod服务。之后,K8s Scheduler将“挂起的 pods ”分配给新节点。
通过以下方式来缩小规模:CA每10秒检查一次不需要的节点,并考虑删除该节点,如果:如果所有Pod的CPU和内存请求之和小于节点容量的50%,则Pod可以移动到其他节点并且没有按比例缩小禁用的注释。
如果使用Kubeadm管理AWS上的K8s集群,则上述所有内容均适用。因此,简而言之(省略了详细的详细信息,请参阅CA上的文档):
Create Autoscaling Group(ASG) aws ASG doc.
Add tags to ASG like k8s.io/cluster-autoscaler/enable(mandatory), k8s.io/cluster-autoscaler/cluster_name(optional).
Launch “CA” in a cluster following the offical doc.
关于amazon-web-services - 使用Kubeadm的Kubernetes集群自动扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955652/