我们在AWS上部署了一套应用。为了检验该系统是否能够达到并发的要求,我们需要对其进行压测。虽然云服务的监控很完善。但是为了能够监控到应用级别,pod级别。我们还需要部署普罗米修斯和grafana来进行收集和显示监控数据。
监控指标的收集很简单,可以用heapster和metric-server。我们通过yaml file在k8s环境中应用。当然在这之前,需要集群里扩展一个node。
AWS上面有个EKS服务,通过编辑修改nodeGroup,将node可以动态的扩展数量。我们暂定用于监控的node为monitor-node。然后需要给这个node加上一个label,表明这个node是用来跑监控的,不能跑业务pod。kubectl label node monitor-node task=monitoring。
接着让我们的monitoring pod跑在该node上。
将grafana的pod开启NodePort服务。暴露端口。一般来说内部网路或者lab机器可以通过node的IP和端口就可以直接访问service了。但是涉及云环境,外部访问集群机器是不通的。需要通过LB的方式或者bastion。因此还需要以下一些操作。
首先我们需要创建target group。由于我们绑定的是云环境里面的机器,所以type选择IP。端口号选我们暴露的服务端口。VPC当然选择和我们环境一起的网络。然后将monitor node的ip注册到这个target group里面来。node ipke可以通过在bastion机器上执行kubectl get node -o wide获取。
image.png
image.png
当然,可以看到还会有health check。帮助我们来监听服务是否活着。
接着,我们需要创建LB,将外部流量转发到这个服务上来。
VPC同样选择和我们环境一样的。然后availablility zones选择monitor 机器所在的AZ。接着添加监听器,需要监听31006这个端口。
image.png
保存,等待LB状态为active即可。然后可以使用DNS 去浏览器访问了。
网友评论