2017-04-25 64 views
2

我成立了一个kubernetes我的工作集群中使用以下材料:Kubernetes自动缩放节点通过AWS

  • AWS作为一个云提供商
  • KOPS(版本1.6.0-α,只是为了测试)为CLI工具来创建和管理集群
  • kubectl(服务器:V1.6.2和客户端:1.6.0)来控制我的集群
  • Ubuntu的16作为本地OS

我有一个简单的K8S有以下东西群集:

  • AWS区域:美西2
  • 一个过来:t2.medium /K8S-1.5-Debian的杰西-AMD64的HVM-EBS-2017年1月9日
  • 一个节点 onver:t2.medium /K8S-1.5-Debian的杰西-AMD64小时VM-EBS,2017年1月9日

我也有一些豆荚部署集群过来,我创建JMeter的压力测试产生虚假流量。

我的问题是如何在aws上使用kops在aws上创建一个自动缩放节点?

我刚在kops仓库中发现了以下ad-don kops addons。我按照文档的说法进行了部署,并且可用。

我的参数为:

CLOUD_PROVIDER=aws 
IMAGE=gcr.io/google_containers/cluster-autoscaler:v0.4.0 
MIN_NODES=1 
MAX_NODES=3 
AWS_REGION=us-east-2 
GROUP_NAME="<the-auto-scaling-group-Name>" 
SSL_CERT_PATH="/etc/ssl/certs/ca-certificates.crt" # (/etc/ssl/certs for gce) 


$ kubectl get deployments --namespace=kube-system 

NAME     DESIRED CURRENT UP-TO-DATE AVAILABLE AGE 
cluster-autoscaler  1   1   1   1   3h 
dns-controller   1   1   1   1   3h 
kube-dns    2   2   2   2   3h 
kube-dns-autoscaler 1   1   1   1   3h 
kubernetes-dashboard 1   1   1   1   3h 

然而,使用与压力容器无一荚胁迫后我的节点发生(100%的CPU使用率)和我的自动缩放组不会被修改。

cpu utilization

auto-scaling group

在另一方面,我出口在terraform KOPS输出但有1A中未自动缩放策略生成CPU利用率自动缩放基地。

最后,我可以在k8s博客中找到一个entry,这表明它将在未来得到AWS的支持,但没有其他声明。

AWS和kops中的任何建议或经验?接下来,我将尝试手动生成自动扩展策略来测试。

回答

1

首先你should use autoscaler gcr.io/google_containers/cluster-autoscaler:v0.5.0当使用Kubernetes 1.6.x

其次,根据我的理解,自动缩放器本身只能缩放ASG,如果在Pending状态中有一个窗格,因为它不适合任何现有节点。

对于您的使用案例,Horizontal Pod Autoscaling将在高负载下扩展您的应用程序(正在强调),请务必在podspec中提及requests部分。一旦自动调节器看到新缩放的豆荚不适合节点,它将启动新的节点。

声明:我还没有玩过Horizo​​ntal Pod Autoscaling。

+0

它也会有用。谢谢! – afym

0

经过审查kops(open issues related with auto scaling)我找不到节点自动缩放的选项,正如我在我的问题中所写的,我正在寻找节点自动缩放。也许在新版本的kops中会考虑。但是,我决定使用terraform从头开始设置一个kubernetes v1.5.4,考虑节点中的自动缩放。如果有人对我的实施感兴趣,源代码位于我的个人回购站:: kubernetes cluster v1 with terraform (afym)

我会用这个基础来设置生产中的集群。我希望它可以帮助某人。

谢谢,如果有人在kops中找到自动缩放配置选项,它将会很棒。