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会自动进行缩容

  1. 必须安装metrics-server或其他自定义metrics-server
    2.必须配置requests参数
    3.不能扩容无法缩放的对象,比如DaemonSet
    4.后端一般不做hpa

以上是关于k8s学习记录,HPA的主要内容,如果未能解决你的问题,请参考以下文章

(2022版)一套教程搞定k8s安装到实战 | HPA

K8S集群基于heapster的HPA测试

k8s关于HPA扩容缩容

k8s关于HPA扩容缩容

k8s关于HPA扩容缩容

k8s关于HPA扩容缩容