首页>动态 >内容

Atlassian开源自动扩展调节工具Escalator更容易扩展、缩减Kubernetes运算丛集

动态2021-02-28 22:05:24
最佳答案

PaaS服务供应商Atlassian开源其内部使用的Kubernetes自动扩展调节工具Escalator,以Go语言撰写的Escalator最强大的功能在于,不只能提供先占式运算资源扩展,预备为即将出现的容器腾出空间,以便需要时可以快速启动,同时也能反向快速缩减闲置的虚拟机器。

Escalator的意思为手扶梯,人们透过手扶梯可以更快的往上或是往下移动,而Atlassian透过Escalator,则能更快速的向上扩展或是向下缩减运算资源。

Atlassian作为一个PaaS服务供应商,在容器管理的需求很明确,他们需要在运算基础架构上排程并放置使用者的Pods,除了在极端情况硬体发生故障时,服务要仍维持可用外,在平时的资源管理上,基础架构以及应用程式要具可扩展弹性,以解决高峰使用负载,另外,当虚拟机器不在使用时,能自动关闭以节省成本。

Atlassian提到,他们透过建立Kubernetes平台,很快速的就把批次处理工作负载移植到了Kubernetes Pods上,但同时也发现,在大量的并行工作出现时,丛集不再能快速的扩展或是缩减。

当丛集达到容量上限,使用者通常需要等候数分钟,待其他Kubernetes工作节点(Worker)启动载入服务,而这个过程并非好现象,因为许多程式并无法等待这么长的延迟,通常导致服务失败。Atlassian表示,这个最根本的原因是Kubernetes的丛集自动扩展调节器缺少了一个关键的功能,那就是在丛集达到运算容量上限时,先占地扩展运算节点,或是更简单的功能,维持固定的缓冲容量。

此外,在运算容量缩减的部分,预设的缩减机制不够快速,Atlassian表示,这在小丛集个位数节点不是个问题,但是当节点数量到达数百以上,那情况便会完全不同,因为这些为数不少又不再需要的闲置运算资源,会瞬间烧掉非常多钱。

为了解决运算资源快速缩放的问题,Atlassian着手开发能针对批次工作负载进行水平扩展的自动扩展调节器,其目标有两项,除了以缓冲容量达到先占式扩展外,还要在不需要虚拟机器时,可以快速的缩减,另外,为了他们的营运团队,他们还想要让这个自动调节器支援Prometheus 指标,于是Escalator便诞生了。

一开始Escalator只是用来弥补Kubernetes预设的自动扩展调节器,Atlassian用了简单的概念,就达成了第一个目标,他们为不再使用的节点上标记,这些标记称之为汙点,自动扩展调节器便能快速的排除这些受汙染的节点。另外,他们让使用者设定阈值,调整缓冲的运算资源。两个主要目标都达成后,Atlassian让Escalator自动化,并完全取代Kubernetes的标準自动扩展调节器。

Atlassian提到,现在他们向社群释出的Escalator,便是他们最新的版本,过去必须花费3分钟等待EC2运算实体启动加入丛集,现在只要几秒钟就能完成,用户可以随意地指定适合的缓冲百分比。另外,过去他们因闲置节点浪费的成本也都消失了,现在每天省下数百到数千美元。当然,Escalator也支援营运团队需要的Prometheus指标。

免责声明:本文由用户上传,如有侵权请联系删除!