活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      分布式容器云平台

      分布式容器云平台

        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 产品功能
        • 应用场景
        • 使用限制
        • 计费说明
        • 计费项及计费方式
        • 价格
        • 快速入门
        • 入门指引
        • 用户指南
        • 授权管理
        • 授权概述
        • 资源委托协议
        • 注册集群
        • 注册集群概述
        • 本地注册集群
        • 天翼云注册集群
        • 三方云注册集群
        • 单集群控制台
        • 其他类型注册集群控制台
        • 运维管理
        • Prometheus 监控
        • 容器舰队
        • 容器舰队概述
        • 创建容器舰队
        • 集群联邦
        • 集群联邦概述
        • 创建集群联邦
        • 平台服务
        • 权限配置
        • 权限配置概述
        • IAM 授权
        • RBAC 授权
        • 生态中心
        • 容器迁移
        • 容器迁移概述
        • 集群元数据备份与恢复
        • 跨集群跨地域容灾迁移
        • 应用迁移
        • 本地IDC集群->天翼云CCE
        • 三方云集群->天翼云CCE
        • 天翼云CCE同资源池迁移
        • 天翼云CCE跨资源池迁移
        • 孤岛集群->天翼云CCE
        • 最佳实践
        • 基于集群联邦进行多集群应用分发与管理
        • 使用集群联邦实现应用多活容灾
        • 打通注册集群与联邦实例之间的联通网络
        • Pod 水平自动伸缩
        • 分布式存储Ceph最佳实践
        • API参考
        • API使用说明
        • 常见问题
        • 注册集群
        • 集群联邦
        • 故障修复
        • 常见故障
        • 相关协议
        • 服务协议
        • 服务等级协议
          无相关产品

          本页目录

          帮助中心分布式容器云平台最佳实践Pod 水平自动伸缩
          Pod 水平自动伸缩
          更新时间 2025-06-19 20:10:02
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-06-19 20:10:02
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本节介绍Pod水平自动伸缩。

          背景信息

          从v1.18开始,K8s v2beta2 API允许通过HPA的behavior字段配置扩缩行为。在behavior字段中的scaleUp和scaleDown分别指定扩容和缩容行为。当您在使用HPA时,希望只进行扩容或者只进行缩容的Pod伸缩,则可以通过开启指标伸缩,单击禁止缩容或者禁止扩容来实现。

          • 默认值:均不禁止

          • 禁止扩容:selectPolicy的值Disabled会关闭给定方向的扩容。因此使用以下策略,将会阻止扩容。

          behavior:
            scaleUp:
              selectPolicy: Disabled
          • 禁用缩容:selectPolicy的值Disabled会关闭给定方向的缩容。因此使用以下策略,将会阻止缩容。

          behavior:
            scaleDown:
              selectPolicy: Disabled

          前提条件

          • 已创建注册集群,具体操作参见 订购注册集群 章节。若已有集群,无需重复操作。

          • 已安装metrics-server组件,提供metrics.k8s.io API,获取基础资源指标(单独此插件即可实现资源度量指标)

          • 已安装metrics-adapter组件,提供custom.metrics.k8s.io API,获取自定义指标(此组件实现自定义度量指标)

          • 已安装cube-prometheus组件,开通应用性能监控服务,监控指标上报。

          伸缩规则

          支持两种类型指标:

          • 资源度量指标,默认情况下仅支持CPU、内存这两种资源指标,不仅支持资源百分比也支持平均值;

          • 自定义度量指标,包含Pod度量和Object度量两大类。

          通过控制台创建HPA

          •  登录分布式容器云平台控制台,在集群管理页面,点击目标集群;

          • 在集群详情页面左侧导航栏,选择工作负载->无状态->更多->水平伸缩,选择伸缩的配置。

          • 选择度量指标,支持两种类型:资源度量指标、自定义度量指标(Pod度量、Obeject度量)。


           

          通过Kubectl命令创建HPA

          通过基础资源度量指标(CPU、内存)进行Pod的水平自动伸缩

          以CPU配置为例,配置如下:
          ---
          apiVersion: v1
          kind: Service
          metadata:
            name: hap-nginx
          spec:
            type: NodePort
            ports:
              - name: "http"
                port: 80
                targetPort: 80
                nodePort: 30080
            selector:
              service: hap-nginx
          ---
          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: hap-nginx
          spec:
            replicas: 1
            selector:
              matchLabels:
                service: hap-nginx
            template:
              metadata:
                labels:
                  service: hap-nginx
              spec:
                containers:
                  - name: hap-nginx
                    image: registry-crs-huadong1.ctyun.cn/library/nginx:alpine
                    resources:
                      requests:
                        cpu: 100m
                        memory: 100Mi
                      limits:
                        cpu: 200m
                        memory: 200Mi

          HPA对象

          apiVersion: autoscaling/v2
          kind: HorizontalPodAutoscaler
          metadata:
            name: hap-nginx
          spec:
            maxReplicas: 5 # 最大扩容到5个副本(pod)
            minReplicas: 1 # 最小扩容1个副本(pod)
            metrics:
            - resource:
                name: cpu
                target:
                  averageUtilization: 40 # CPU 平均资源使用率达到40%就开始扩容,低于40%就是缩容
                  # 设置内存
                  # AverageValue:40
                  type: Utilization
              type: Resource
            scaleTargetRef:
              apiVersion: apps/v1
              kind: Deployment
              name: hap-nginx

          使用ab工具进行压测

          yum install httpd -y
          ab -n 1000000 -c 100 http://

          查看pod动态扩容

          kubectl get po -w |grep hpa

          通过预置的自定义指标(网络、磁盘等)进行Pod的水平自动伸缩

          参见 Pod 水平自动扩缩(HPA)-云容器引擎-用户指南-运维管理-监控 - 天翼云 和 prometheus-adapter 方案 | Kubernetes 实践指南

          • 安装cube-prometheus插件,开通应用性能服务。

          • 安装cube-metrics-adapter插件,填写prometheus url(该prometheus实例部署在预置区,仅支持内网通过VPCE访问)

          • adapter values.yaml 预定义指标+指定prometheus url

          • 声明工作负载和HPA对象(定义与上述差不多)

          预置指标列表

          CPU预置指标

          指标名称指标对象指标含义指标单位计算公式
          k8s_pod_cpu_core_usedPodCPU使用量核sum(rate(container_cpu_usage_seconds_total{image=~".+",pod=~"$Pod",namespace="$namespace"}[5m])) by (pod)
          k8s_pod_rate_cpu_core_used_nodePodCPU利用率(占节点)%(label_replace(sum(rate(container_cpu_usage_seconds_total{name =~ ".+",pod=~"$Pod",namespace="$namespace"}[5m])) by (pod,instance,namespace), "node", "$1", "instance", "(.*)")) / on(node) group_left sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100
          k8s_pod_rate_cpu_core_used_requestPodCPU利用率(占request)%sum(rate(container_cpu_usage_seconds_total{image=~".+",pod=~"$Pod",namespace="$namespace"}[5m])) by (pod) / (sum (kube_pod_container_resource_requests{resource="cpu",pod=~"$Pod",namespace="$namespace"}) by (pod))*100
          k8s_pod_rate_cpu_core_used_limitPodCPU利用率(占limit)%sum(rate(container_cpu_usage_seconds_total{image=~".+",pod=~"$Pod",namespace="$namespace"}[5m])) by (pod) / (sum (kube_pod_container_resource_limits{resource="cpu",pod=~"$Pod",namespace="$namespace"}) by (pod))*100

          内存预置指标

          指标名称
           
          指标对象指标含义指标单位计算公式
          k8s_pod_mem_usage_bytesPod内存使用量Byte
           
          sum (container_memory_usage_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod)
          k8s_pod_mem_no_cache_bytesPod内存使用量(不含Cache)Bytesum (container_memory_working_set_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod)
          k8s_pod_rate_mem_usage_nodePod内存利用率(占节点)%(label_replace(sum(container_memory_usage_bytes{name =~ ".+",pod=~"$Pod",namespace="$namespace") by (pod,instance,namespace), "node", "$1", "instance", "(.*)")) / on(node) group_left sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100
          k8s_pod_rate_mem_no_cache_nodePod内存利用率(占节点,不含Cache)%(label_replace(sum(container_memory_working_set_bytes{name =~ ".+",pod=~"$Pod",namespace="$namespace"}) by (pod,instance,namespace), "node", "$1", "instance", "(.*)")) / on(node) group_left sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100
          k8s_pod_rate_mem_usage_requestPod内存利用率(占request)%sum (container_memory_usage_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod) / (sum (kube_pod_container_resource_requests{resource="memory",pod=~"$Pod",namespace="$namespace"}) by (pod))*100
          k8s_pod_rate_mem_no_cache_requestPod内存利用率(占request,不含Cache%sum (container_memory_working_set_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod) / (sum (kube_pod_container_resource_requests{resource="memory",pod=~"$Pod",namespace="$namespace"}) by (pod))*100
          k8s_pod_rate_mem_usage_limitPod内存利用率(占limit)%sum (container_memory_usage_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod) / (sum (kube_pod_container_resource_limits{resource="memory",pod=~"$Pod",namespace="$namespace"}) by (pod))*100
          k8s_pod_rate_mem_no_cache_limitPod内存利用率(占limit,不含Cache)%sum (container_memory_working_set_bytes{image=~".+",pod=~"$Pod",namespace="$namespace"}) by (pod) / (sum (kube_pod_container_resource_limits{resource="memory",pod=~"$Pod",namespace="$namespace"}) by (pod))*100

          网络预置指标

          指标名称
           
          指标对象指标含义指标单位计算公式
          k8s_pod_network_receive_bytes_bwPod网络入带宽Byte/ssum(rate(container_cpu_usage_seconds_total{image=~".+",pod=~"$Pod",namespace="$namespace"}[5m])) by (pod)
          k8s_pod_network_transmit_bytes_bwPod网络出带宽Byte/ssum(irate(container_network_transmit_bytes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_network_receive_bytesPod网络入流量Byte/ssum(rate(container_network_receive_bytes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_network_transmit_bytesPod网络出流量Byte/ssum(rate(container_network_transmit_bytes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_network_receive_packetsPod网络入包量个/ssum(irate(container_network_receive_packets_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_network_transmit_packetsPod网络出包量个/ssum(irate(container_network_transmit_packets_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)

          硬盘预置指标

          指标名称
           
          指标对象指标含义指标单位计算公式
          k8s_pod_fs_read_timesPod硬盘读IOPS次/ssum (irate(container_fs_reads_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_fs_write_timesPod硬盘写IOPS次/ssum (irate(container_fs_writes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)
          k8s_pod_fs_read_bytesPod硬盘读流量Byte/ssum (rate(container_fs_reads_bytes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m]))by (pod)
          k8s_pod_fs_write_bytesPod硬盘写流量Byte/ssum (rate(container_fs_writes_bytes_total{image=~".+", namespace=~"$namespace", pod=~"$pod"}[5m])) by (pod)

          通过自定义度量指标进行Pod的水平自动伸缩

          参见 Pod 水平自动扩缩(HPA)-云容器引擎-用户指南-运维管理-监控 - 天翼云 和 prometheus-adapter 方案 | Kubernetes 实践指南

          • 安装cube-prometheus插件,开通应用性能服务。

          • 业务暴露指标(针对用户自定义应用暴露指标采集上报方案,参见 单集群监控)

          • 安装cube-metrics-adapter插件,如需自定义指标进行HPA,则在configmap中定义指标及计算公式。填写prometheus url(该prometheus实例部署在预置区,仅支持内网通过VPCE访问)

          • adapter values.yaml 定义指标+指定prometheus url

          • 声明工作负载和HPA对象(定义与上述差不多)

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  打通注册集群与联邦实例之间的联通网络
          下一篇 :  分布式存储Ceph最佳实践
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明