prometheus现在是主流的监控k8s方案,各大云厂商也都有托管的k8s服务,为了更好的对托管k8s集群监控,也推出了托管的prometheus监控服务,腾讯云上就推出了腾讯云云原生监控服务(Tencent Prometheus Service,TPS)下面简称TPS,TPS
可以一键部署prometheus到后端弹性集群上,然后你可以关联监控你的tke集群来进行监控。
腾讯云的TPS服务后端用的是thanos架构,为了能更加方便查询监控指标,提供了thanos query前端页面地址用来查询监控数据,但是这个地址只提供了内网访问的,很多时候,我们在pc端是无法直接访问vpc的内网地址的,这样查询数据就非常不方便,下面我们来说说如何暴露下TPS的数据查询地址到公网。
其实方案很简单,就是在和TPS同vpc下的tke集群中部署一个nginx反向代理出现就行,然后为nginx配置一个nodeport或者公网的clb类型的service即可,具体配置步骤如下。
1. 查询云原生监控实例数据查询地址
云原生监控的数据查询地址,可以在实例的基本信息页面查询,Prometheus数据查询地址就是thanos query的地址
2. 创建nginx转发配置文件
创建一个configmap配置default.conf文件用来转发TPS的thanos query查询地址,注意proxy_pass后面填写自己实际的内网查询地址,下一步挂载这个configmap到pod里面即可
3. 创建nginx的workload
创建一个nginx的工作负载,然后将上一步的配置挂载到容器的default.conf文件。
4. 生成service绑定workload
创建servic绑定后端的workload,如果不想花钱买公网的clb,可以用nodeport类型的svc,通过节点公网ip和nodeport访问。
5. ingress暴露域名提供访问
如果集群部署了nginx-ingress,也可以用nginx-ingress来暴露一个域名来访问,当然也可以用tke提供的负载均衡类型ingress暴露域名提供访问。
6. 公网访问查询地址
浏览器输入公网clb的vip访问TPS的prometheus数据查询地址
浏览器输入节点公网ip和nodeport访问TPS的prometheus数据查询地址
浏览器域名访问TPS的prometheus数据查询地址
后面我们就可以在浏览器通过ui页面来查询prometheus的监控数据了。