【云原生】
K8s pod
动态弹性扩缩容
HAP
(
metrics-
server
)
一、概述
Horizontal Pod Autoscaler
(
HPA
,
Pod
水平自动伸缩),根据平均
CPU
利用率、
平均内存利用率或你指定的任何其他自定义指标自动调整
Deployment
、
ReplicaSet
或
StatefulSet
或其他类似资源,实现部署的自动扩展和缩减,让部署的规模接近于
实际服务的负载。
HPA
不适用于无法缩放的对象,例如
DaemonSet
。
官方文档:
https://kubernetes.io/zh-cn/docs/tasks/run-
application/horizontal-pod-autoscale/
实际生产中,一般使用这四类指标:
1.
Resource metrics
——CPU
核 和 内存利用率指标。
2.
Pod metrics
——
例如网络利用率和流量。
3.
Object metrics
——
特定对象的指标,比如
Ingress,
可以按每秒使用请求数
来扩展容器。
4.
Custom metrics
——
自定义监控,比如通过定义服务响应时间,当响应时间达
到一定指标时自动扩容。
二、安装
metrics-server
1
)
HAP
前提条件
默认情况下,
Horizontal Pod Autoscaler
控制器会从一系列的
API
中检索度量值。
集群管理员需要确保下述条件,以保证
HPA
控制器能够访问这些
API
:
对于资源指标,将使用
metrics.k8s.io API
,一般由
metrics-server
提
供。它可以作为集群插件启动。
对于自定义指标,将使用
custom.metrics.k8s.io API
。它由其他度量指
标方案厂商的“适配器(
Adapter
)”
API
服务器提供。检查你的指标管道
以查看是否有可用的
Kubernetes
指标适配器。
对于外部指标,将使用
external.metrics.k8s.io API
。可能由上面的自
定义指标适配器提供。
Kubernetes Metrics Server
:
Kubernetes Metrics Server
是
Cluster
的核心监控数据的聚合器,
kubeadm
默认是不部署的。
Metrics Server
供
Dashboard
等其他组件使用,是一个扩展的
APIServer
,依赖于
API Aggregator
。所以,在安装
Metrics Server
之前需要先在
kube-apiserver
中开启
API Aggregator
。
Metrics API
只可以查询当前的度量数据,并不保存历史数据。
文档被以下合辑收录
评论