k8s学习记录,HPA
Posted Hei蛋炒饭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s学习记录,HPA相关的知识,希望对你有一定的参考价值。
水平自动扩容HPA【Horizontal Pod Autoscaler】将流量分配到更多的节点上去
- 通过监听Pod的内存或者CPU使用率,达到警告值时来进行自动扩容
HPA v1为稳定版自动水平伸缩,只支持CPU指标
v2为beta版本,分为v2beta1和v2beta2
1、beta1:支持CPU、内存和自定义指标
2、beta2:支持CPU、内存、自定义指标Custom和额外指标ExternalMetrics
kubectl get apiservices | grep auto
#创建一个deploy hpa-nginx,【dry-run=client表示创建后但是不启动】 【-oyaml > hpa-nginx.yaml表示将yaml】
kubectl create deploy hpa-nginx --image=nginx:1.15.3 --dry-run=client -oyaml > hpa-nginx.yaml
#打开yaml文件,在resources下面添加requests节点,cpu: 10m
spec:
containers:
- image: nginx:1.15.3
name: nginx
resources:
requests:
cpu: 10m
#根据文件创建deploy
kubectl create -f hpa-nginx.yaml
#暴露deploy的端口
kubectl expose deploy hpa-nginx --port=80
#自动扩容deploy nginx-server 监控cpu大于10%就进行扩容,最小1个副本,最大10个副本
kubectl autoscale deployment hpa-nginx --cpu-percent=10 --min=1 --max=10
kubectl get hpa
#如果HPA管理的deploy对应的Pod,有重复的label,那么有可能获取不到targets,一直显示unknown
新开终端,使用死循环访问nginx,模拟访问nginx
while true; do wget -q -O- http://10.96.0.61 > /dev/null; done
当停止访问后,hpa监控的CPU值下降后,pod会自动进行缩容
- 必须安装metrics-server或其他自定义metrics-server
2.必须配置requests参数
3.不能扩容无法缩放的对象,比如DaemonSet
4.后端一般不做hpa
以上是关于k8s学习记录,HPA的主要内容,如果未能解决你的问题,请参考以下文章