[英]Kubernetes auto-scaling nodes over AWS
我正在使用以下内容设置kubernetes集群:
我有一个简单的k8s集群,其中包含以下内容:
我还在群集上部署了一些pod,我创建了jmeter压力测试以生成人工流量。
我的问题是如何使用kops over aws在k8s集群上创建自动缩放节点?
我刚刚在kops存储库中找到了以下ad-don 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中对该任务有任何建议或经验吗? 接下来,我将尝试手动生成自动缩放策略以进行测试。
首先,在使用Kubernetes 1.6.x
时,您应该使用 gcr.io/google_containers/cluster-autoscaler:v0.5.0
gcr.io/google_containers/cluster-autoscaler:v0.5.0。
其次,根据我的理解,如果存在处于Pending
状态的窗格,则自动缩放器本身仅缩放ASG,因为它不适合任何现有节点。
对于您的用例, Horizontal Pod Autoscaling会在高负载时扩展您的应用程序(正在受到压力),请务必提及podspec中的requests
部分。 一旦autoscaler看到新缩放的pod不适合节点,它将启动新节点。
免责声明:我还没有使用Horizontal Pod Autoscaling。
在审查kops( 与自动缩放相关的开放问题 )后,我找不到节点自动缩放的选项,正如我在我的问题中写的那样,我正在寻找节点自动缩放。 也许在新版本的kops中会考虑。 但是,我决定使用terraform从头开始设置kubernetes v1.5.4节点中的自动缩放。 如果有人对我的实现感兴趣,源代码在我的个人repo :: kubernetes集群v1中,带有terraform(afym) 。
我会用这个基础在生产中设置集群。 我希望它可以帮助别人。
谢谢,如果有人在kops中找到自动缩放配置选项,那就太棒了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.