我正在使用以下内容设置 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
- 一个节点开启:t2.medium / k8s-1.5-debian-jessie-amd64-hvm-ebs-2017-01-09
我还在集群上部署了一些 pod,并创建了 jmeter 压力测试来生成人工流量。
我的问题是如何使用 kops over aws 在 k8s 集群上创建自动缩放节点?
我刚刚在 kops 存储库中找到了以下插件 kops 插件。我按照文档所说进行了部署并且它是可用的。
我的参数是:
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 利用率)并且我的自动缩放组没有被修改。
另一方面,我在 terraform 中导出 kops 输出,但没有自动缩放策略来根据 cpu 利用率生成自动缩放。
最后,我可以在 k8s 博客中找到一个条目,表明 AWS 将来会支持它,但没有关于它的其他公告。
在 AWS 和 kops 中对该任务有任何建议或经验吗?接下来我将尝试手动生成自动缩放策略以进行测试。