弹性伸缩

Kubernetes Autoscaling是如何工作的?

无人久伴 提交于 2020-04-07 10:27:12
Kubernetes Autoscaling是如何工作的?这是最近我们经常被问到的一个问题。 所以本文将从Kubernetes Autoscaling功能的工作原理以及缩放集群时可以提供的优势等方面进行解释。 什么是Autoscaling 想象用水龙头向2个水桶里装水,我们要确保水在装满第一个水桶的80%时,开始注入第二个水桶。解决方法很简单,只要在适当的位置在两个水桶间装置管道连接即可。而当我们想要扩大装水量,我们只需要用这种办法增加水桶即可。 同样的道理放在我们的应用或者服务上,云计算的弹性伸缩功能可以让我们从手动调节物理服务器/虚拟机之中解放出来。那么把“水桶装水”和“应用消耗计算资源”相比较—— 水桶 - 缩放单位 - 解释我们缩放什么的问题 80%标记 - 缩放的度量和触发器 - 解释我们什么时候缩放的问题 管道 - 实现缩放的操作 - 解释我们怎样进行缩放的问题 我们缩放什么? 在Kubernetes集群环境中,作为用户我们一般会缩放两个东西: Pods - 对于某个应用,假设我们运行X个副本(replica),当请求超过X个Pods的处理量,我们就需要扩展应用。而为了使这一过程无缝工作,我们的Nodes应该由足够的可用资源,以便成功调度并执行这些额外的Pads; Nodes - 所有Nodes的总容量代表我们的集群容量。如果工作负载需求超过该容量