Kubernetes 17 (k8s中部署Prometheus、监控nginx、( 二 )


点击Graph,将访问流量统计图添加进统计页
如图,可以看到nginx访问流量效果图
四、实现hpa动态伸缩
之前学习了根据核心指标(cpu和mem)hpa控制副本的数量 。如果想根据其他指标(比如nginx的访问量)控制的话,需要用到自定义指标的HPA,需要提供社区标准的API,一般用户使用-来提供API,其主要功能是将接受到api转换成的请求,从中查询数据返回给API。简单说,-负责转换数据
查看pod信息可以看到--kube-state-
执行api- 查看api group,为版本
查找-插件,拉取到本地
解压tar包,修改.yaml配置文件
修改镜像路径和的服务地址
配置文件中的的服务地址可以通过下图命令查看
拉起一个容器并进入,测试能否访问到上面的服务地址
在-命名空间下安装-
查看-命名空间下的pod信息,都正常运行
一个pod内两个容器,其中一个是nginx服务本身,另一个:9113端口是对监控开放的agent(的)
查看有了.,数据格式可以匹配
安装完成后,使用提示语句,可以看到有变量出现
再次执行刚才复制的指令,这次指定命名空间、pod和监控指标
指定的监控指标名字就是下图红框部分
使用语句查看,更清晰明了
编写hpa-nginx.yaml 文件
apiVersion: autoscaling/v2beta2kind: HorizontalPodAutoscalermetadata:name: hpa-examplespec:maxReplicas: 10%最多伸缩到10个副本minReplicas: 1%最少伸缩为1个副本scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: nginxmetrics:- type: Podspods:metric:name: nginx_http_requests%监控类型为nginx的访问流量target:type: AverageValue%hpa变化的依据是平均值是否在10附近averageValue: 10
应用hpa-nginx.yaml文件
查看hpa详细信息;
HPA可以根据pods的nginx访问流量度量成功计算副本计数
接下来使用hey压力测试,真机把hey放到/usr/local/bin,赋予可执行权限
真机运行hey进行访问测试(访问nginx的主发布页面),总运行次数一万次,每秒五次访问,5个线程并发,即每秒25次访问
get hpa hpa- -w:查看hpa的动态状态变化,可以看到随着访问压力的增大,hpa开始生效并增加副本数量,逐渐扩容到3个(集群根据压力大小进行动态添加副本,实现动态伸缩);
访问压力是5*5=25,yaml文件中设定了每个pod最多10个请求,所以,需要3个之后就可以稳定
【Kubernetes 17 (k8s中部署Prometheus、监控nginx、】选择graph可以查看到每个时刻的数据(访问nginx的请求)