amazon-web-services - 使用Kubeadm的Kubernetes集群自动扩展

标签 amazon-web-services kubernetes scaling autoscaling kubeadm

我正在使用由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/

相关文章:

java - 如何识别SQS-Queue不存在?

amazon-web-services - 在 beantalk 部署期间 Nginx 配置覆盖

linux - AWS 上的测试设置以测试 TCP 透明代理 (TPROXY) 和欺骗套接字

Jenkins Kubernetes 插件与 containerd

kubernetes - Kubernetes Kubeadm初始化时出错

kubernetes - 在 kubernetes 中,什么时候在同一节点中复制 pod 才有意义?

amazon-web-services - AWS EKS K8s Service 和 CronJob/Jon 同节点

kubernetes - 恢复 kops Kubernetes 集群

sql - 便宜地缩放 : MySQL and MS SQL

javascript - 使用最近邻算法缩放 Canvas 图像