You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS中部署的Cloud Native PostgreSQL能否实现自动水平扩缩容?

Cloud Native PostgreSQL (CNPG) 在AKS中的自动水平扩缩容方案

以下是几种除手动修改实例数外的自动扩缩容实现方式:

  • 基于CNPG内置的HPA联动特性
    你使用的1.15.0版本CNPG Operator已经支持和Kubernetes HPA(水平Pod自动扩缩器)联动。直接在Cluster资源中配置scaling字段即可实现基于CPU、内存使用率的自动扩缩:

    apiVersion: postgresql.cnpg.io/v1
    kind: Cluster
    metadata:
      name: 你的集群名称
    spec:
      instances: 3
      scaling:
        minInstances: 2
        maxInstances: 5
        horizontalPodAutoscaler:
          enabled: true
          minReplicas: 2
          maxReplicas: 5
          targetCPUUtilizationPercentage: 70
          targetMemoryUtilizationPercentage: 75
    

    配置后,Kubernetes会根据设定的资源使用率阈值自动调整副本数,CNPG Operator会自动完成副本的同步、角色分配等操作。

  • 基于PostgreSQL自定义指标的扩缩容
    如果需要根据数据库特定指标(比如活跃连接数、查询队列长度)来扩缩容,可以配合Prometheus和Kubernetes自定义指标API实现:

    1. 确认CNPG已开启监控(1.15.0版本默认暴露metrics端口)
    2. 用Prometheus采集PostgreSQL的相关指标(如pg_active_connections)
    3. 通过自定义指标API将Prometheus指标导入Kubernetes
    4. 在CNPG的Cluster资源中配置自定义指标触发扩缩:
    scaling:
      horizontalPodAutoscaler:
        enabled: true
        minReplicas: 2
        maxReplicas: 5
        metrics:
        - type: Pods
          pods:
            metric:
              name: pg_active_connections
            target:
              type: AverageValue
              averageValue: 100
    
  • 使用KEDA实现事件驱动扩缩容
    要是需要基于外部事件(比如消息队列堆积量、云服务指标)来扩缩,可以用KEDA:

    1. 在AKS集群中部署KEDA组件
    2. 创建ScaledObject资源,关联你的CNPG集群作为扩缩目标,并指定触发扩缩的指标源
    3. KEDA会根据指标阈值自动调整CNPG的实例数,后续的副本同步逻辑由CNPG Operator处理

内容的提问来源于stack exchange,提问作者Ummusalma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:15:34