0x0 pre
弹性伸缩这种功能,不是很多系统都已经实现了,我们直接用就行了吗,为什么还需要个指南呢。
因为。。。。我们先来看看都有哪些相关知识点吧。。。

弹性伸缩涉及到各种软硬件,各色调度平台,策略和系统,其本身就是一个较复杂的课题。此外,kubernetes 不单单是一个容器调度平台,而是一个活跃,庞大的生态系统。
kubernetes 弹性伸缩这个课题涉及了诸多知识点,主要如下:
- 水平(Horizontal)伸缩
- 垂直(Vertical)伸缩
- 定时(Scheduled)伸缩
- 预测(Predictive)性伸缩
- 服务画像
- node
- service
- CA
- cloudprovider
- VPA
- HPA
- HPA controller
- metric
- metric server
- heapster
- metric state
- prometheus
- CRD
- custom metric api
- prometheus adapter
- cronhpa controller
- cloud controller manager
在刚开始调研这个课题的时候,一上来看到这么多名词和术语,肯定会一脸懵逼的。终于,
在知识的海洋中遨游了好一阵后,终于了摸索出一条路,爬上岸来。
本文旨在为想在 kubernetes 中使用弹性伸缩功能
的读者解释相关概念,并制定一条较为清晰的路线图。

0x1 autoscaling
在画路线图之前,先来了解下弹性伸缩的基本概念。
目的
我们做工程都是结果导向的,就是说,我们做弹性伸缩,不是因为它看上去很酷,不是为了做弹性伸缩而做。
而是从公司的实际问题出发,为了解决什么问题,以及投入产出比是否合理,才决定是否要做弹性伸缩,以及怎么做。
一般来讲,弹性伸缩主要用来解决两个问题:
应对突发流量
节省资源
应对突发流量。这点很好理解,当系统由于外界因素(比如 XXX 突然结婚了, XXX 突然离婚了等突发的热门话题),
导致系统负载激增,原有的配置已无法满足需求,需要增加系统配置。这种增加可能是自动的,可能是需要手工调整的,
甚至是需要去购买机器,重启服务等对服务比较不友好的行为。具体进行何种操作,需要以及目前公司的弹性伸缩级别来制定
相应的计划。关于弹性伸缩的级别,我们将在稍后说明。
节省资源。绝大多数情况

本文详细介绍了Kubernetes弹性伸缩的原理与实践,涵盖水平和垂直伸缩、定时与预测性伸缩,以及服务画像、Node、Service、HPA等关键概念。通过实例解析,阐述了不同伸缩级别的应用场景与策略,帮助读者理解如何在Kubernetes中实现高效、智能的弹性伸缩解决方案。
最低0.47元/天 解锁文章
5384





