Kubernetes通过AWS

时间:2017-04-25 21:58:16

标签: amazon-web-services amazon-ec2 kubernetes terraform kops

我正在使用以下内容设置kubernetes集群:

  • AWS 作为云提供商
  • kops(版本1.6.0-alpha,仅供测试)作为创建和管理群集的cli工具
  • kubectl(服务器:v1.6.2和客户端:1.6.0)来控制我的群集
  • Ubuntu 16作为本地操作系统

我有一个简单的k8s群集,其中包含以下内容:

  • AWS区域:us-west-2
  • 一个主人结束:t2.medium / k8s-1.5-debian-jessie-amd64-hvm-ebs-2017-01-09
  • 一个节点 onver:t2.medium / k8s-1.5-debian-jessie-amd64-hvm-ebs-2017-01-09

我也在群集上部署了一些pod,我创建了jmeter压力测试以产生人为流量。

我的问题是如何在ws上使用kops在k8s群集上创建自动缩放节点?

我刚刚在kops存储库中找到以下广告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

然而,在压力之后我的节点使用带有压力容器的pod没有任何事情发生(100%cpu利用率)并且我的自动缩放组没有被修改。

cpu utilization

auto-scaling group

另一方面,我以terraform导出kops输出但是没有自动缩放策略来根据cpu利用率生成自动缩放。

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

在AWS和kops中对该任务有任何建议或经验吗?接下来,我将尝试手动生成自动缩放策略以进行测试。

2 个答案:

答案 0 :(得分:2)

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

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

对于您的用例,Horizontal Pod Autoscaling会在高负载时扩展您的应用程序(受到压力),请务必提及podspec中的requests部分。一旦autoscaler看到新缩放的pod不适合节点,它将启动新节点。

免责声明:我还没有使用Horizo​​ntal Pod Autoscaling。

答案 1 :(得分:0)

在审核了kops(open issues related with auto scaling)后,我找不到节点自动缩放的选项,正如我在我的问题中所写,我正在寻找节点自动缩放。也许在新版本的kops中会考虑。但是,我决定使用terraform从头开始设置kubernetes v1.5.4节点中的自动缩放。如果有些人对我的实现感兴趣,那么源代码就在我的个人仓库中kubernetes cluster v1 with terraform (afym)

我会使用此基础在生产中设置群集。我希望它可以帮助别人。

谢谢,如果有人在kops中找到自动缩放配置选项,那就太棒了。