是K8S中的一个监控项
git项目
进入yaml文件的模板目录
配置文件中更改为Nodeport
全部更改好
开始部署(可以先导入普罗米修斯的镜像)
没有的话就直接下载
因为我没有,所以直接下载运行
多运行几次
在monitoring命名空间中
点击Target
可以看到节点状态
都是UP代表成功的部署了
搜集的语言
点击左下角的ADD Graph
添加图片
就是CPU的请求值
Grafana
添加数据来源
默认已经添加好了 点击TEST
导入模板
进入HOME
点击Node节点
可查看node节点消耗的资源数都显示出来了
当然可以选取POD类型的都可以查看
导入一个镜像 谷歌做的一个HPA测试的一个镜像。基于php语言
编写了一个非常消耗资源的一个应用程序
造成资源占用 演示HPA的扩展
并且导入后把tar文件导入其他的目录 防止出错
拷贝镜像到其他的节点
再load -i导入
跑一个POD,请求限制的CPU是200M兆,暴漏的端口80.是CPU最大的限制
多等待一会儿,可以看到pod获取到的资源
创建HPA
还没有获取到指标
等一会儿
现在已经有资源了,现在可以访问了
运行一个busybox的pod
再pod中wget这个页面,无限的访问
这个OK!越来越多
再打开一个窗口
查看资源
-W 持续监视
已经扩展为4个了
持续有新的再创建
最多十个
一直刷新 就会创建十个
如果太慢了
新开一个窗口,继续添加负载
继续一个新的循环
Wget访问的是svc的名称,所以会进行负载均衡
这个意思就是同时开了两个客户端进行压测访问
然后就会创建10个POD后停止
HPA超过50%就会创建新的出来
CPU利用率也上去了
因为十个节点负载均衡的访问
继续检测 发现已经达到了93% 但是Pod不会继续创建了
回顾之前的意思就是:
请求资源为200m的一个方案,也是容器的资源限定。
docker也限制内存的额最大利用以及CPU的最大利用等。防止出现OM机制把重要的进程杀死。
这里的阈值CPU利用率50%也就是利用100m,一旦超过50%就开始创建,最大不超过10个节点。
压力变小了最少不能少于一个。
关掉所有的压测
压力变小
pod变少
回收比较慢
回收很慢 因为担心回收快突然大压力 把POD挤死
HPA目前仅支持CPU和内存自动的扩容缩
资源限制
基于Pod的资源限制
并且pod用的资源减小后会被回收至request的资源大小
CPU为250HZ,内存250兆
最大使用4个CPU,最大使用2g内存
基于名称空间的资源限制
能创建20个pod
能使用总共内存xxx
最多创建10个configmap
pvc最多创建4个
loadbalances就是基于云服务器那个
这个其实不用放在命名空间下
如果pod没有设置的话就默认使用命名空间下的最大资源
如果命名空间也没有设置就使用集群下的最大资源
极有可能出现OM
采用这种方案能默认设置pod的container最大使用方案