container-monitor
  • Introduction
  • 简介
    • 概述
  • 一. 开源方案
    • 第1章 采集
      • Docker Stats
      • cAdvisor
      • Heapster
        • HPA
      • metrics-server
      • custom metrics
      • kube-state-metrics
      • node-exporter
      • Dockbix agent
      • cortex
    • 第2章 Prometheus
      • Prometheus
      • Prometheus概述
      • Prometheus基本架构
      • Prometheus部署方案
      • Prometheus的配置与服务发现
      • PromQL查询解析
      • Prometheus数据可视化
      • Prometheus存储机制
      • 高可用prometheus:常见问题
      • 高可用prometheus:thanos 实践
      • K8S常用指标分析
      • 从kubectl top看K8S监控原理
    • 第3章 展示与报警
      • Grafana
      • Kibana
      • Vizceral
      • Zabbix dashboard
      • AlertManager
      • consul-alerts
      • elastalert
      • Bosun
      • Cabot
  • 二. 商业方案与云厂商
    • Sysdig
    • DataDog
    • dynatrace
    • Weave
    • Cosale
    • freshtracks
    • Sensu
    • netsil
    • pingdom
    • Google
    • AWS
    • 腾讯云
    • 阿里云
    • 百度云
    • 华为云
  • 四. 日志监控
    • ELK
    • EFK
    • elastalert
    • Graylog
    • docker_monitoring_logging_alerting
  • 五. 服务监控
    • Jaeger
    • Zipkin
    • kubewatch
    • riemann
  • 六. 存储后端
    • InfluxDB
    • Kafka
    • Graphite
    • OpenTSDB
    • ElasticSearch
  • 七. 最佳实践
    • 监控方案
    • 日志方案
    • 服务监控
    • 业内方案
      • 京东
      • 招商银行
Powered by GitBook
On this page
  • 概述
  • 监控数据获取
  • 工作流程
  • 如何部署:

Was this helpful?

  1. 一. 开源方案
  2. 第1章 采集
  3. Heapster

HPA

概述

Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。自动扩展主要分为两种:

  • 水平扩展(scale out),针对于实例数目的增减

  • 垂直扩展(scal up),即单个实例可以使用的资源的增减, 比如增加cpu和增大内存

HPA属于前者。它可以根据CPU使用率或应用自定义metrics自动扩展Pod数量(支持 replication controller、deployment 和 replica set)

监控数据获取

  • Heapster: heapster收集Node节点上的cAdvisor数据,并按照kubernetes的资源类型来集合资源。但是在v1.11中已经被废弃(heapster监控数据可用,但HPA不再从heapster拿数据)

  • metric-server: 在v1.8版本中引入,官方将其作为heapster的替代者。metric-server依赖于kube-aggregator,因此需要在apiserver中开启相关参数。v1.11中HPA从metric-server获取监控数据

工作流程

  • 1.创建HPA资源,设定目标CPU使用率限额,以及最大、最小实例数, 一定要设置Pod的资源限制参数: request, 负责HPA不会工作。

  • 2.控制管理器每隔30s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况

  • 3.然后与创建时设定的值和指标做对比(平均值之和/限额),求出目标调整的实例个数

  • 4.目标调整的实例数不能超过1中设定的最大、最小实例数,如果没有超过,则扩容;超过,则扩容至最大的实例个数

如何部署:

  • 1.6-1.10版本默认使用heapster

  • 1.11版本及以上默认使用metric-server

1.部署和运行php-apache并将其暴露成为服务

2.创建HPA

如果为1.8及以下的k8s集群,指标正常,如果为1.11集群,需要执行如下操作。

4.向php-apache服务增加负载,验证自动扩缩容 启动一个容器,并通过一个循环向php-apache服务器发送无限的查询请求(请在另一个终端中运行以下命令)

5.观察HPA是否生效

PreviousHeapsterNextmetrics-server

Last updated 6 years ago

Was this helpful?