原文网址:K8S--水平自动扩缩容实战演练-CSDN博客

简介

本文用实例来展示K8S的自动扩缩容(水平方向)。

官网网址

HorizontalPodAutoscaler 演练 | Kubernetes

为 Pod 和容器管理资源 | Kubernetes

水平扩缩的原理 

水平扩缩容:自动增加或减少Pod的数量以满足需求。

水平扩缩使用的是orizontalPodAutoscaler(简称 HPA ),可以自动更新工作负载资源(例如 Deployment 或者 StatefulSet), 以自动扩缩工作负载来满足需求。

  1. 如果负载增加,并且 Pod 的数量低于配置的最小值, HPA 会指示工作负载资源(Deployment、StatefulSet 或其他类似资源)增加Pod。
  2. 如果负载减少,并且 Pod 的数量高于配置的最小值, HPA 会指示工作负载资源(Deployment、StatefulSet 或其他类似资源)减少Pod。

水平与垂直有什么区别?

水平扩缩:增加或减少Pod的数量
垂直扩缩:Pod数量不变,给已有的Pod增加或者减少资源(例如:内存或 CPU)。

实战演练

本文部署nginx应用,用HPA控制nginx的Pod数量:最少1个,最多10个。然后频繁请求nginx,观察它是否动态扩容。然后停止请求,看它是否动态缩容。

所需的文件如下:

结果展示

1.频繁请求ningx

观察负载

kubectl get hpa hpa-nginx --watch

频繁请求(此命令要新起一个SSH窗口再运行)

kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://nginx-service:8000; done"

此时可以看到很多请求nginx的打印:

 ​​​​​​

观察负载

如下图所示,结果每几十秒刷新一次。TARGETS列是负载,REPLICAS列是副本数。

请求开始后,CPU占用增加;CPU占用超过1%后,副本数增加;随着副本增加,CPU占用减小;CPU占用减小到1%后,副本数不再变化。

2.停止请求nginx

停止请求(按下ctrl+c),然后看观察负载页面(红框内是停止请求后的打印)。

可以看到:CPU占用立刻降到了0;然后过了大概五分钟,副本的数量逐渐恢复到了1。

1.部署nginx

上边是文章的部分内容,为便于维护,全文已转移到此网址:K8S-水平自动扩缩容实战演练 - 自学精灵

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐