文档首页/ 云容器实例 CCI/ 最佳实践/ CCE弹性到CCI/ 使用HPA+Bursting插件弹性CCE容器实例到CCI
更新时间:2026-02-06 GMT+08:00
分享

使用HPA+Bursting插件弹性CCE容器实例到CCI

应用场景

在云容器引擎CCE服务中部署应用时,应用的流量大小时刻在进行变化,有高峰,有低谷,如果时刻保持高峰流量的节点数量,将导致资源闲置与成本浪费。通过配置HPA策略和安装CCE突发弹性引擎(对接 CCI),可以实现工作负载自动伸缩和快速使用Serverless容器资源(CCI)。CCI具有极速弹性、按需计费的特点,可以有效应对流量变化大的场景,并实现降本增效的目标。

HPA策略会持续监控应用程序的关键指标,如CPU使用率、内存使用率等,自动增加或减少Pod的数量,以适应当前应用流量大小,从而确保应用性能的稳定性和资源利用的高效性。CCE突发弹性引擎(对接 CCI)插件支持用户在短时高负载场景下,将部署在云容器引擎CCE上的无状态负载(Deployment)、有状态负载(StatefulSet)、普通任务(Job)、定时任务(CronJob)四种资源类型的容器实例(Pod)弹性调度至云容器实例CCI上,以减少集群扩容带来的消耗。

示例说明

在CCE集群中安装云原生监控插件和CCE突发弹性引擎(对接 CCI)插件后,创建工作负载并配置HPA策略和强制弹性Pod至CCI2.0策略。通过hey压测工具构造请求访问工作负载模拟应用的流量变化,观察工作负载弹性伸缩状态。

前提条件

操作步骤

  1. 登录CCE控制台
  2. 单击集群名称进入集群,单击左侧导航栏选的“插件中心“。搜索“CCE突发弹性引擎(对接 CCI)“插件,单击“安装“。

    • 选择插件版本,推荐使用最新版本。规格配置,选择系统预置规格,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
    • 网络互通(可选),开启后,支持CCE集群中的Pod与CCI集群中的Pod通过Kubernetes Service互通,并在插件安装时部署Proxy组件。详细功能介绍请参考网络
    • 参数配置,配置”CCI资源池默认子网”和”CCI 2.0资源池(bursting-node)扩展子网(可选)”。

  3. 单击左侧导航栏的“工作负载“,通过YAML创建无状态负载。YAML示例如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        version: v1
      name: n1
      namespace: default
    spec:
      selector:
        matchLabels:
          app: n1
          version: v1
      template:
        metadata:
          labels:
            app: n1
            version: v1
            bursting.cci.io/burst-to-cci: 'enforce'  # 配置强制弹性Pod到CCI
        spec:
          containers:
            - name: container-1
              image: nginx:latest   # 指定容器镜像。若使用“开源镜像中心”的镜像,可直接填写镜像名称;若使用SWR仓中的镜像,请在SWR中获取具体镜像地址
              resources:
                requests:
                  cpu: 500m
                  memory: 1Gi
                limits:
                  cpu: 500m
                  memory: 1Gi
          imagePullSecrets:       
            - name: default-secret
    ---

  4. 单击左侧导航栏的“服务”,通过YAML创建服务。YAML示例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: n1
      namespace: default
      labels:
        app: n1
        version: v1
    spec:
      ports:
        - name: cce-service-0
          protocol: TCP    # 访问Service的协议,支持TCP和UDP
          port: 80         # 访问Service的端口
          targetPort: 80   # Service访问目标容器的端口,此端口与步骤2配置的容器中运行的应用强相关,如本例中nginx镜像默认使用80端口
      selector:
        app: n1
        version: v1
      type: ClusterIP

  5. 单击左侧导航栏的“策略”,通过YAML创建HPA策略。YAML示例如下:

    kind: HorizontalPodAutoscaler
    apiVersion: autoscaling/v2
    metadata:
      name: hpa-n1
      namespace: default
      annotations:
        extendedhpa.metrics: '[{"type":"Resource","name":"cpu","targetType":"Utilization","targetRange":{"low":"45","high":"56"}}]'
    spec:
      scaleTargetRef:
        kind: Deployment
        name: n1
        apiVersion: apps/v1
      minReplicas: 1
      maxReplicas: 10
      metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization          
              averageUtilization: 50

  6. 通过工具构造请求访问创建的Service,进行压测,参考命令如下,发起3000万个请求,并发300个客户端。

    hey -n 30000000 -c 300 "http://$<service_ip>/"

    $<service_ip>:4创建的Service的ClusterIP。

    本文示例使用hey压测工具进行过压测,您也可以自定义配置其他压测工具。进行压测时,需保证配置的压测工具所在的网络环境可正常访问CCE集群。

  7. 观察HPA和负载状态。

    压测前:

    压测后:

相关文档