精华内容
下载资源
问答
  • 弹性伸缩

    2020-11-27 16:09:31
    Kubernetes支持Pod和集群节点的自动弹性伸缩,通过设置弹性伸缩规则,当外部条件(如CPU使用率)达到一定条件,根据规则自动伸缩Pod和集群节点。 Prometheus与Metrics Server 想要做到自动弹性伸缩,先决条件就是...

    在Pod的编排与调度章节介绍了Deployment这类控制器来控制Pod的副本数量,通过调整replicas的大小就可以达到给应用手动扩缩容的目的。但是在某些实际场景下,手动调整一是繁琐,二是速度没有那么快,尤其是在应对流量洪峰需要快速弹性时无法做出快速反应。
    Kubernetes支持Pod和集群节点的自动弹性伸缩,通过设置弹性伸缩规则,当外部条件(如CPU使用率)达到一定条件时,根据规则自动伸缩Pod和集群节点。

    Prometheus与Metrics Server

    想要做到自动弹性伸缩,先决条件就是能感知到各种运行数据,例如集群节点、Pod、容器的CPU、内存使用率等等。而这些数据的监控能力Kubernetes也没有自己实现,而是通过其他项目来扩展Kubernetes的能力。

    • Prometheus是一套开源的系统监控报警框架,能够采集丰富的Metrics(度量数据),目前已经基本是Kubernetes的标准监控方案。
    • Metrics Server是Kubernetes集群范围资源使用数据的聚合器。Metrics Server从kubelet公开的Summary API中采集度量数据,能够收集包括了Pod、Node、容器、Service等主要Kubernetes核心资源的度量数据,且对外提供一套标准的API。

    使用HPA(Horizontal Pod Autoscaler)配合Metrics Server可以实现基于CPU和内存的自动弹性伸缩,再配合Prometheus还可以实现自定义监控指标的自动弹性伸缩。

    HPA工作机制

    HPA(Horizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。

    图1 HPA工作机制
    在这里插入图片描述

    HPA可以配置单个和多个度量指标,配置单个度量指标时,只需要对Pod的当前度量数据求和,除以期望目标值,然后向上取整,就能得到期望的副本数。例如有一个Deployment控制有3个Pod,每个Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,计算期望副本数=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本数就是5。
    如果是配置多个度量指标,则会分别计算单个度量指标的期望副本数量,然后取其中最大值,就是最终的期望副本数量。

    使用HPA

    下面通过示例演示HPA的使用。首先使用Nginx镜像创建一个4副本的Deployment。

    $ kubectl get deploy
    NAME               READY     UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   4/4       4            4           77s
    
    $ kubectl get pods
    NAME                                READY     STATUS    RESTARTS   AGE
    nginx-deployment-7cc6fd654c-5xzlt   1/1       Running   0          82s
    nginx-deployment-7cc6fd654c-cwjzg   1/1       Running   0          82s
    nginx-deployment-7cc6fd654c-dffkp   1/1       Running   0          82s
    nginx-deployment-7cc6fd654c-j7mp8   1/1       Running   0          82s
    

    创建一个HPA,期望CPU的利用率为70%,副本数的范围是1-10。

    apiVersion: autoscaling/v2beta1
    kind: HorizontalPodAutoscaler
    metadata:
      name: scale
      namespace: default
    spec:
      maxReplicas: 10                    # 目标资源的最大副本数量
      minReplicas: 1                     # 目标资源的最小副本数量
      metrics:                           # 度量指标,期望CPU的利用率为70%
      - resource:
          name: cpu
          targetAverageUtilization: 70
        type: Resource
      scaleTargetRef:                    # 目标资源
        apiVersion: apps/v1
        kind: Deployment
        name: nginx-deployment
    

    创建后HPA查看。

    $ kubectl create -f hpa.yaml
    horizontalpodautoscaler.autoscaling/celue created
    
    $ kubectl get hpa
    NAME      REFERENCE                     TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
    scale     Deployment/nginx-deployment   0%/70%    1         10        4          18s
    

    可以看到,TARGETS的期望值是70%,而实际是0%,这就意味着HPA会做出缩容动作,期望副本数量=(0+0+0+0)/70=0,但是由于最小副本数为1,所以Pod数量会调整为1。等待一段时间,可以看到Pod数量变为1。

    $ kubectl get pods
    NAME                                READY     STATUS    RESTARTS   AGE
    nginx-deployment-7cc6fd654c-5xzlt   1/1       Running   0          7m41s
    

    查看HPA详情,可以在Events里面看到这样一条记录。这表示HPA在21秒前成功的执行了缩容动作,新的Pod数量为1,原因是所有度量数量都比目标值低。

    $ kubectl describe hpa scale
    ...
    Events:
      Type    Reason             Age   From                       Message
      ----    ------             ----  ----                       -------
      Normal  SuccessfulRescale  21s   horizontal-pod-autoscaler  New size: 1; reason: All metrics below target
    

    如果再查看Deployment的详情,可以在Events里面看到这样一条记录。这表示Deployment的副本数量被设置为1了,跟HPA中看到的一致。

    $ kubectl describe deploy nginx-deployment
    ...
    Events:
      Type    Reason             Age   From                   Message
      ----    ------             ----  ----                   -------
      Normal  ScalingReplicaSet  7m    deployment-controller  Scaled up replica set nginx-deployment-7cc6fd654c to 4
      Normal  ScalingReplicaSet  1m    deployment-controller  Scaled down replica set nginx-deployment-7cc6fd654c to 1
    

    Cluster AutoScaler

    HPA是针对Pod级别的,但是如果集群的资源不够了,那就只能对节点进行扩容了。集群节点的弹性伸缩本来是一件非常麻烦的事情,但是好在现在的集群大多都是构建在云上,云上可以直接调用接口添加删除节点,这就使得集群节点弹性伸缩变得非常方便。

    Cluster Autoscaler是Kubernetes提供的集群节点弹性伸缩组件,根据Pod调度状态及资源使用情况对集群的节点进行自动扩容缩容。由于要调用云上接口实现弹性伸缩,这就使得在不同环境上的实现与使用各不相同,这里不详细介绍。

    华为云CCE的集群节点弹性伸缩请参见创建节点伸缩策略

    了解更多Kubernetes集群相关知识和使用方法请猛击这里

    展开全文
  • 弹性伸缩ESS

    千次阅读 2017-07-17 17:30:49
    概念弹性伸缩ESS——根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。特点 可以监控集群,随时自动替换不健康的实力,节省运维成本。 可以管理集群,在高峰期自动增加ECS实例,在业务回落自动...

    一、概念

    弹性伸缩ESS——根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。

    特点

    1. 可以监控集群,随时自动替换不健康的实力,节省运维成本。
    2. 可以管理集群,在高峰期自动增加ECS实例,在业务回落时自动减少ECS实例,节省基础设施成本。
    3. 与SLB/RDS紧密集成,自动管理SLB后端服务器和RDS白名单,节省操作成本。——>随需应变,自动化,伸缩模式丰富、只能。

    这里写图片描述

    二、使用流程

    这里写图片描述

    1、创建伸缩组
    伸缩组(Scaling Group)——管理部署在弹性伸缩上业务的基本单元,可以映射为一个应用或一个集群

    • 每个伸缩组可挂载多个SLB或多个RDS实例
    • 伸缩组是具有相同应用场景的ECS实例的集合
    • 伸缩组、负载均衡实例和RDS实例必须在同一个地域

    这里写图片描述

    1. 最大实例数:伸缩组内实例数超量,会自动按照释放规则将多余实例移除。
    2. 最小实例数:伸缩组内实例数过小,会自动创建实例补齐缺失数量。(新建伸缩组最小实例数最好设置为0)
    3. 冷却时间:弹性伸缩活动冷却时间,有助于避免伸缩组频繁伸缩。
    4. 释放策略:从伸缩组释放实例依据的策略。包括:最早创建实例,最晚创建实例和最早伸缩配置创建的实例。
    5. 网络类型:配置弹性计算资源所使用的网络环境。包括:经典网络、专有网络(需选择特定VPC、vSwitch)。
    6. 负载均衡:在伸缩组指定SLB实例,伸缩组自动将ECS实例添加到指定的SLB。SLB开启健康检查,加入的ECS实例权重默认为50。
    7. 数据库:ECS实例需要RDS资源时,在设置好数据库后,弹性伸缩会自动将新创建的ECS内网IP加入RDS白名单,保证ECS和RDS间连通性。

    2、伸缩配置
    定义用于弹性伸缩的ECS实例的配置信息。弹性伸缩为某个伸缩组自动增加ECS实例时,根据伸缩配置创建ECS实例。

    • 一个伸缩组可拥有多个伸缩配置,生效时只允许有一个
    • 伸缩配置不可编辑修改,只能重新创建新的伸缩配置,并在伸缩组激活
    • 系统盘和数据盘配置最好能与镜像一一对应,盘太小可能导致系统无法启动或启动过慢

    3、创建伸缩规则
    这里写图片描述

    4、伸缩模式

    1. 定时模式:配置周期性任务(如每天 13:00),定时地增加或减少 ECS 实例。
    2. 动态模式:基于云监控性能指标(如 CPU 利用率),自动增加或减少 ECS 实例。
    3. 固定数量模式:通过 最小实例数 (MinSize)属性,可以让您始终保持健康运行的 ECS 实例数量,以保证日常场景实时可用。
    4. 自定义模式:根据用户自有的监控系统,通过 API 手工伸缩 ECS 实例。

    手工执行伸缩规则:

    三、要点

    1. 伸缩组包含伸缩配置、伸缩规则、伸缩活动。伸缩配置、伸缩规则、伸缩活动依赖伸缩组的生命周期管理,删除伸缩组的同时会删除与伸缩组相关联的伸缩配置、伸缩规则和伸缩活动
    2. 定时任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除定时任务。
    3. 云监控报警任务独立于伸缩组存在,不依赖伸缩组的生命周期管理,删除伸缩组不会删除报警任务。
    4. 伸缩活动不可以中断
    5. 伸缩活动有 ECS 实例加入伸缩组失败时,需要保持 ECS 实例级事务的完整性,而非伸缩活动级事务的完整性,即只进行 ECS 实例级回滚,而不是伸缩活动级回滚。例如,当伸缩组创建了 20 台 ECS 实例,但只有 19 台 ECS 实例成功加入负载均衡时,则只对不成功的 1 台 ECS 实例进行自动释放操作。
    6. 伸缩组在冷却时间内,只会拒绝云监控报警任务类型的伸缩活动请求,其他类型的触发任务(如用户手工执行伸缩规则、定时任务等)可以绕过冷却时间立即执行伸缩活动。
    展开全文
  • 弹性伸缩是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务。2017年9月阿里云弹性伸缩服务伸缩配置新增了实例自定义数据、秘钥对、实例RAM角色、标签新特性;近日,阿里云又发布了VSWitchIds.N多可用区新...

    弹性伸缩是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务。2017年9月阿里云弹性伸缩服务伸缩配置新增了实例自定义数据、秘钥对、实例RAM角色、标签新特性;近日,阿里云又发布了VSWitchIds.N多可用区新特性。

    服务特性

    阿里云弹性伸缩服务在业务需求高峰增长时可以无缝增加ECS实例,在业务需求下降时自动减少ECS实例。根据用户的业务量变换,弹性伸缩 ECS 实例,能够帮助用户实现应用级别的弹性伸缩,而且极大节约了成本。

    bf054508e3174a119bb113157a9dba9236480dba 

    • 随需应变:根据需求“恰到好处”地分配资源,无需担心需求预测的准确性,无需担心突增的业务变化;
    • 自动化:无需人工干预,自动创建和释放ECS实例,自动配置负载均衡和RDS访问白名单;
    • 伸缩模式丰富:多模式兼容,可同时配置定时、动态、自定义、固定、健康模式,可通过API方便对接外在监控系统;
    • 智能:智能调度能够应对各种复杂场景。

    新增功能

    2017年9月,阿里云弹性伸缩服务伸缩配置新增了实例自定义数据、秘钥对、实例RAM角色、标签新特性:使用实例自定义数据特性可以在 ECS 实例创建过程中同时快速高效地完成实例的配置和应用的部署;使用实例RAM角色特性可以给 ECS 实例赋予不同RAM 角色所具有的权限;使用秘钥对可以让登录认证更加安全、Tags特性可更加方便地管理自己的服务器。

    不久前,阿里云最新发布了VSWitchIds.N多可用区新特性,可以提高应用可用区可用性,当一个 VSWitch 所在的可用区由于库存等原因无法创建实例的时候,使用多可用区参数伸缩组会自动切换到最优可用区,保证实例的创建成功率。

    场景应用

    阿里云弹性伸缩服务具有丰富的应用场景,如不同时间段应用访问量变化较大的客户,无法预估业务负载的客户等等:某线上消息推送社交平台每天晚上8-11点是访问高峰期,需要大量的服务器作支撑,这段时间以外的时间这些实例需要释放;某视频直播需要根据CPU、带宽、Load 自动进行服务器的弹性伸缩。

    全新的技术服务也为用户提供了更佳的使用体验:

    • 提高ESS 弹性伸缩服务的实例创建的成功率,不会因为单个可用区库存不住而导致伸缩组不能扩展,提高用户体验;
    • ESS弹性伸缩服务更灵活,使得用户使用ESS不仅能够实现ECS实例级别的弹性扩展,还能够实现应用级别的弹性扩展;
    • 用户能够更加安全、高效快捷地管理自己的弹性计算服务器

    实践应用

    目前,阿里云弹性伸缩服务ESS是免费的,用户如果使用弹性伸缩服务,首先要登录ESS 控制台,选择开通 ESS 弹性伸缩服务。开通以后,可以参考 ESS 弹性伸缩帮助文档学习如何使用弹性伸缩服务,也可以点此参考文档来熟悉ESS 的使用方法。

    点击此处即可体验自动化、弹性化的阿里云弹性伸缩服务,还等什么!

    https://www.aliyun.com/product/ess

    注:弹性伸缩免费,但是通过弹性伸缩自动创建或者手工加入的 ECS 实例,需要按照 ECS 相关实例类型进行付费。注意,没有开启按量付费停机不收费的 ECS 关机(Stop)后仍会收取实例费用,只有释放(Release)后才不再收取。

    展开全文
  • 顾名思义,弹性伸缩就是根据您设置的伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。自动为您调整弹性计算资源大小,以满足您业务需求的变化。君哥的...

    阿里云服务器叫ECS,阿里云弹性伸缩服务叫ESS。

    顾名思义,弹性伸缩就是根据您设置的伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。自动为您调整弹性计算资源大小,以满足您业务需求的变化。君哥的弹性伸缩设置监控项为伸缩组内ECS实例的vCPU使用率平均值,并假设触发弹性扩张的阈值为80%,触发弹性收缩的阈值为30%。

    什么是阿里云ESS?什么是弹性伸缩?

     弹性扩张

    当您的业务升级时,弹性伸缩为您自动完成底层资源升级,避免访问延时和资源超负荷运行。

    您可以配置云监控实时关注您的ECS实例使用情况。例如,当云监控检测到伸缩组内的ECS实例vCPU使用率突破80%时,弹性伸缩根据您配置的伸缩规则弹性扩张ECS资源,自动创建合适数量的ECS实例,并自动添加ECS实例到负载均衡实例和RDS实例的访问白名单中。

    什么是阿里云ESS?什么是弹性伸缩?

    弹性收缩

    当您的业务需求下降时,弹性伸缩为您自动完成底层资源释放,避免资源浪费。

    您可以配置云监控实时关注您的ECS实例使用情况。例如,当云监控检测到伸缩组内的ECS实例vCPU使用率低于30%时,弹性伸缩根据您配置的伸缩规则弹性收缩ECS资源,自动释放合适数量的ECS实例,并自动从负载均衡实例和RDS实例的访问白名单中移除ECS实例。

    什么是阿里云ESS?什么是弹性伸缩?

    弹性自愈

    弹性伸缩提供健康检查功能,自动监控伸缩组内的ECS实例的健康状态,避免伸缩组内健康ECS实例低于您设置的最小值。

    当检测到某台ECS实例处于不健康状态时。弹性伸缩自动释放不健康ECS实例并创建新的ECS实例,自动添加新ECS实例到负载均衡实例和RDS实例的访问白名单中。

    什么是阿里云ESS?什么是弹性伸缩?

    展开全文
  • 弹性伸缩AS(Auto Scaling)是一项 Web 服务,可以根据您的业务需求和策略,自动调整云主机计算资源,可帮助确保您拥有适量的云主机实例来处理您的应用程序负载。 使用 AS 进行容量调整,您只需事先设置好扩容条件...
  • 弹性伸缩AS(Auto Scaling)是一项 Web 服务,可以根据您的业务需求和策略,自动调整云主机计算资源,可帮助确保您拥有适量的云主机实例来处理您的应用程序负载。使用 AS 进行容量调整,您只需事先设置好扩容条件及...
  • 弹性伸缩是阿里云上非常受...弹性伸缩可以根据用户设置的伸缩策略和模式,在业务需求增长时自动增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本,还可以自动替换不健康的ECS实例使业务始终保...
  • 本认证课程旨在帮助学员熟悉阿里云弹性伸缩产品的基本功能与特点并学会基本操作,能够使用阿里云弹性伸缩产品实现平台的弹性架构设计,可以根据业务需求和策略,经济地自动调整弹性计算资源。 关于根据业务量弹性...
  • 0701.单选题:使用阿里云弹性伸缩(Auto Scaling),某伸缩活动一次要增加10台ECS实例,但其中一台ECS实例创建失败,其余9台创建...0702.单选题:阿里云弹性伸缩(Auto Scaling)可以根据用户配置的伸缩规则,自动调整云服
  • 容器云的一大优势就是弹性伸缩,这其中之一就是OpenShift可以对pod的数量进行自动调整,以适应变化的业务负载。业务最闲时可以将运行的pod数量缩到“0”个,对就是一个也没有。当感知到由用户通过访问路径访...
  • 订单生成后,用户往往与管理员进行沟通调整订单价格等信息,时尚版支持订单后期修改功能,可以方便的修改订单中商品的价格、商品的购买数量信息,修改后总价自动核算,非常方便! 二十、网站搜索关键词功能 经常...
  • 网趣商城ASP源码

    2013-02-17 17:11:35
    订单生成后,用户往往与管理员进行沟通调整订单价格等信息,时尚版支持订单后期修改功能,可以方便的修改订单中商品的价格、商品的购买数量信息,修改后总价自动核算,非常方便! 二十、网站搜索关键词功能 经常...
  • 订单生成后,用户往往与管理员进行沟通调整订单价格等信息,时尚版支持订单后期修改功能,可以方便的修改订单中商品的价格、商品的购买数量信息,修改后总价自动核算,非常方便! 二十、网站搜索关键词功能 经常...
  • 订单生成后,用户往往与管理员进行沟通调整订单价格等信息,时尚版支持订单后期修改功能,可以方便的修改订单中商品的价格、商品的购买数量信息,修改后总价自动核算,非常方便! 十七、网站搜索关键词功能 经常...
  • 订单生成后,用户往往与管理员进行沟通调整订单价格等信息,时尚版支持订单后期修改功能,可以方便的修改订单中商品的价格、商品的购买数量信息,修改后总价自动核算,非常方便! 十九、网站搜索关键词功能 经常...
  • 网趣网上购物系统支持的三级分类设置,后台可以轻松对商品进行分类的明细化设置,添加商品,可以方便得设置一、二、三级分类的属性,对于商品较少的购物站,用户也可以只用2级分类,使购物系统的适应人群弹性更强,...
  •  网软志成网上购物系统英文版新增商品分类的伸缩菜单功能,后台可以切换使用,默认的是展开式效果,对于商品分类较多的用户,可以采用伸缩式菜单显示的方式,使版面更加美观,使用上更加灵活! 十三、采用最为流行...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

弹性伸缩自动调整时可以调整