Cluster Autoscaler 集群自动调解
Cluster Autoscaler (CA)是一个独立措施,是用来弹性伸缩kubernetes集群的。在行使kubernetes集群常常问到的一个题目是,应该保持多大的节点局限来满意应用需求呢?cluster-autoscaler 呈现办理了这个题目,它可以自动按照陈设应用所哀求资源量来动态的伸缩集群。 项目地点:https://github.com/kubernetes/autoscaler Cluster Autoscaler 什么时辰伸缩集群?在以下环境下,集群自动扩容可能缩放: 扩容:因为资源不敷,某些Pod无法在任何当前节点长举办调治 缩容: Node节点资源操作率较低时,且此node节点上存在的pod都能被从头调治到其他node节点上运行 什么时辰集群节点不会被 CA 删除?节点上有pod被 PodDisruptionBudget 节制器限定。 节点上有定名空间是 kube-system 的pods。 节点上的pod不是被节制器建设,譬喻不是被deployment, replica set, job, stateful set建设。 节点上有pod行使了当地存储 节点上pod遣散后无处可去,即没有其他node能调治这个pod 节点有注解:"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"(在CA 1.0.3或更高版本中受支持) Horizontal Pod Autoscaler 怎样与 Cluster Autoscaler 一路行使?Horizontal Pod Autoscaler 会按照当前CPU负载变动陈设或副本集的副本数。假如负载增进,则HPA将建设新的副本,集群中也许有足够的空间,也也许没有足够的空间。假如没有足够的资源,CA将实行启动一些节点,以便HPA建设的Pod可以运行。假如负载镌汰,则HPA将遏制某些副本。功效,某些节点也许变得操作率过低或完全为空,然后CA将终止这些不必要的节点。 怎样防备节点被CA删除?从CA 1.0开始,节点可以打上以下标签: "cluster-autoscaler.kubernetes.io/scale-down-disabled": "true" 可以行使 kubectl 将其添加到节点(或从节点删除): $ kubectl annotate node cluster-autoscaler.kubernetes.io/scale-down-disabled=true 运行Cluster Autoscaler 最佳实践?不要直接修改属于自动伸缩节点组的节点。统一节点组中的全部节点应该具有沟通的容量、标签和在其上运行的体系pod Pod 声明 requests 资源限定 行使 PodDisruptionBudgets 可以防备溘然删除Pod(假如必要) 再为节点池指定最小/最大配置之前,请搜查您的云提供商的配额是否足够大 不要运行任何其他节点组自动缩放器(尤其是来自您的云提供商的自动缩放器) Cluster Autoscaler 支持那些云厂商?GCE https://kubernetes.io/docs/concepts/cluster-administration/cluster-management/ GKE https://cloud.google.com/container-engine/docs/cluster-autoscaler AWS https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md Azure https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/azure/README.md Alibaba Cloud https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/alicloud/README.md OpenStack Magnum https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/magnum/README.md DigitalOcean https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/digitalocean/README.md CloudStack https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/cloudstack/README.md Exoscale https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/exoscale/README.md Packet https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/packet/README.md OVHcloud https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/ovhcloud/README.md Linode https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/linode/README.md Hetzner https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/hetzner/README.md Cluster API https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |