传统弹性伸缩的困境 弹性伸缩是Kubernetes中被大家关注的一大亮点,在讨论相关的组件和实现方案之前.首先想先给大家扩充下弹性伸缩的边界与定义,传统意义上来讲,弹性伸缩主要解决的问题是容量规划与实际负载的矛盾. 如上图所示,蓝色的水位线表示集群的容量随着负载的提高不断的增长,红色的曲线表示集群的实际的负载真实的变化.而弹性伸缩要解决的就是当实际负载出现激增,而容量规划没有来得及反应的场景. 常规的弹性伸缩是基于阈值的,通过设置一个资源缓冲水位来保障资源的充盈,通常15%-30%左右的资源预留…
传统弹性伸缩的困境 弹性伸缩是 Kubernetes 中被大家关注的一大亮点,在讨论相关的组件和实现方案之前.首先想先给大家扩充下弹性伸缩的边界与定义,传统意义上来讲,弹性伸缩主要解决的问题是容量规划与实际负载的矛盾. 如上图所示,蓝色的水位线表示集群的容量随着负载的提高不断的增长,红色的曲线表示集群的实际的负载真实的变化.而弹性伸缩要解决的就是当实际负载出现激增,而容量规划没有来得及反应的场景. 常规的弹性伸缩是基于阈值的,通过设置一个资源缓冲水位来保障资源的充盈,通常 15%-30% 左右的…
前言 在本系列的前三篇中,我们介绍了弹性伸缩的整体布局以及HPA的一些原理,HPA的部分还遗留了一些内容需要进行详细解析.在准备这部分内容的期间,会穿插几篇弹性伸缩组件的最佳实践.今天我们要讲解的是 cluster-proportional-autoscaler .cluster-proportional-autoscaler是根据集群中节点的数目进行Pod副本数水平伸缩的组件,这个组件的产生主要是为了解决集群的核心组件负载弹性的问题.在一个Kubernetes集群中,除了APIServer等耳…
在上一篇文章中,给大家介绍和剖析了 HPA 的实现原理以及演进的思路与历程.本文我们将会为大家讲解如何使用 HPA 以及一些需要注意的细节. autoscaling/v1 实践 v1 的模板可能是大家平时见到最多的也是最简单的,v1 版本的 HPA 只支持一种指标 ——  CPU.传统意义上,弹性伸缩最少也会支持 CPU 与 Memory 两种指标,为什么在 Kubernetes 中只放开了 CPU 呢?其实最早的 HPA 是计划同时支持这两种指标的,但是实际的开发测试中发现:内存不是一个非常好…
前言 在上一篇文章 Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局中,我们介绍了在 Kubernetes 在处理弹性伸缩时的设计理念以及相关组件的布局,在今天这篇文章中,会为大家介绍在 Kubernetes 中弹性伸缩最常用的组件 HPA(Horizontal Pod Autoscaler).HPA 是通过计算 Pod 的实际工作负载进行重新容量规划的组件,在资源池符合满足条件的前提下,HPA 可以很好的实现弹性伸缩的模型.HPA 到目前为止,已经演进了三个大版本,本文将会…
作者| 阿里云容器技术专家刘中巍(莫源) 导读:Kubernetes弹性伸缩系列文章为读者一一解析了各个弹性伸缩组件的相关原理和用法.本篇文章中,阿里云容器技术专家莫源将为你带来定时伸缩组件  kubernetes-cronhpa-controller  的相关介绍与具体操作,目前该组件已经正式开源,欢迎大家一起交流探讨. 前言 容器技术的发展让软件交付和运维变得更加标准化.轻量化.自动化.这使得动态调整负载的容量变成一件非常简单的事情.在 Kubernetes 中,通常只需要修改对应的 rep…
前言 容器技术的发展让软件交付和运维变得更加标准化.轻量化.自动化.这使得动态调整负载的容量变成一件非常简单的事情.在kubernetes中,通常只需要修改对应的replicas数目即可完成.当负载的容量调整变得如此简单后,我们再回过头来看下应用的资源画像.对于大部分互联网的在线应用而言,负载的峰谷分布是存在一定规律的.例如下图是一个典型web应用的负载曲线.从每天早上8点开始,负载开始飙高,在中午12点到14点之间,负载会回落:14点到18点会迎来第二个高峰:在18点之后负载会逐渐回落到最低点…
背景 WHAT(做什么) Advanced Horizontal Pod Autoscaler(简称:AHPA)是kubernetes中HPA的功能增强. 在兼容原生HPA功能基础上,增加预测.执行模式配置.缩容控制等功能.用户可以使用AdvancedHorizontalPodAutoscaler对支持scale功能的对象(例如Deployment等)进行弹性伸缩. WHY(为什么做) HPA在使用方面存在不便之处: 扩缩模式不灵活:创建HPA后,资源真实扩缩后方可验证可用性 扩缩控制存在一定风…
一.前言 前两章有的介绍docker与Kubernetes.docker是项目运行的容器,Kubernetes则是随着微服务架构的演变docker容器增多而进行其编排的重要工具.Kubernetes不仅可以对容器进行检测状态,还能对其自动扩容缩容.下面就来介绍介绍Kubernetes是如何自动的扩容缩容的. 二.Kubernetes弹性伸缩简介 手动的扩缩容是通过kubectl scale命令或者修改deployment的replicas数量来控制Pod的扩缩容.当然前一章有说过可以自己开发客户…
作者 | 阿里云容器技术专家 莫源  本文整理自莫源于 8 月 31 日 K8s & cloudnative meetup 深圳场的演讲内容.****关注"阿里巴巴云原生"公众号,回复关键词****"资料",即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最全知识图谱. 导读:Serverless 和 Autoscaling 是近些年来广大开发者非常关心的内容.有人说 Serverless 是容器 2.0,终有一天容器会和 Server…