如何在 AWS EC2 上为 Rancher 和 Kubernetes 集群做 Auto Scaling?

Posted

技术标签:

【中文标题】如何在 AWS EC2 上为 Rancher 和 Kubernetes 集群做 Auto Scaling?【英文标题】:How to do auto scaling for Rancher and Kubernetes clusters on AWS EC2? 【发布时间】:2018-05-10 09:10:27 【问题描述】:

使用 AWS EC2 安装 Rancher 集群。然后从 Rancher 服务器设置 Kubernetes 集群。

关于自动缩放,有一些方法可以做到:

使用 Rancher 牛 webhook 服务

https://rancher.com/docs/rancher/v1.6/en/cattle/webhook-service/

这种方式应该使用监控工具 Prometheus 来监控 CPU 使用率,然后根据警报添加或删除节点。

使用terraform动态生成rancher-master-ha、rancher-nodes、networking、database

http://rancher.com/aws-rancher-building-resilient-stack/

Rancher 集群可以很好地做到这一点。

水平 Pod 自动缩放演练

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

这是官方的水平 pod 自动缩放方式。

Kubernetes 自动扩缩器

https://github.com/kubernetes/autoscaler

这也是 Kubernetes 集群官方的自动伸缩方式。

使用 AWS Auto Scaling

https://aws.amazon.com/autoscaling/

关于这种方式,如何连接到运行在EC2上的Rancher集群和Kubernetes集群?


自动缩放有很多方法,但哪种方法最好?而且非常重要的是,如何将 AWS Auto Scaling 用于此架构?

【问题讨论】:

【参考方案1】:

由于您使用 Rancher 部署了 Kubernetes,因此您应该使用 Rancher webhook 进行此操作。 当 CPU 使用率超过一定百分比时,使用 Prometheus/Grafana 设置 webhook。

【讨论】:

我认为这也是最好的解决方案。但是 Rancher Cattle 环境有webhook 服务,Kubernetes 环境也能正常工作吗?

以上是关于如何在 AWS EC2 上为 Rancher 和 Kubernetes 集群做 Auto Scaling?的主要内容,如果未能解决你的问题,请参考以下文章

未在 Aws Ec2 实例上为 PHP 7.2 执行 PHP 代码

如何使用AWS和Rancher搭建弹性应用栈

如何在 Amazon EC2 上为应用程序设置自定义域?

如何在 aws EFS 上挂载 aws EC2 文件作为持久卷?

在 EC2 实例上为 Tomcat 分配 Java 堆

如何在云端路由 S3、EC2、aws