Rancher 2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aixiaoyang168/article/details/88943136

1、Prometheus & Grafana 介绍

Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,Prometheus 基本原理是通过 Http 协议周期性抓取被监控组件的状态,而通过 Exporter Http 接口输出这些被监控的组件信息,而且已经有很多 Exporter 可供选择。Grafana 是一个可视化仪表盘,它拥有美观的图标和布局展示,功能齐全的仪表盘和图形编辑器,默认支持 CloudWatch、Graphite、Elasticsearch、InfluxDB、Mysql、PostgreSQL、Prometheus、OpenTSDB 等作为数据源。我们可以将 Prometheus 抓取的数据,通过 Grafana 优美的展示出来,非常直观。

2、环境、软件准备

上一篇文章 Rancher 2.x 负载均衡配置及使用 中,我们是在虚拟机上安装 RancherOS 系统,然后在本机上启动 Rancher,然后通过 RKE 在 RancherOS 上搭建 Kubernetes 集群,这里需要的环境、软件准备跟之前一样,那么我们就直接在该环境下通过 Rancher 一键式安装 Prometheus + Grafana 监控 Kubernetes 集群。其他方式搭建 Prometheus + Grafana 可以参照之前文章,本地安装可以参照 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql,在 Kubernetes 集群中搭建可以参照 部署 Prometheus Operator 监控 Kubernetes 集群

3、Rancher 2.x 应用商店

Rancher 2.x 提供了应用商店功能,通过应用商店,我们可以非常方便的安装各服务到 Kubernetes 集群中,而且真的是一键式,非常方便了有木有。Rancher 应用商店默认支持官方认证Helm StableHelm Incubator 三种类型的仓库,当然也支持自定义类型的商店。

  • 官方认证:由 Rancher 维护的官方模板仓库
  • Helm Stable:由 Kubernetes 社区维护的模板仓库
  • Helm Incubator:未经测试验证的应用模板仓库
  • 自定义商店

注意:默认 Rancher 只开启了官方认证方式,即由 Rancher 维护的官方模板仓库,如果想也支持 Helm Stable 仓库,那么需要将开关设置为 启动 即可,那么 Rancher 会自动同步 Helm 模板仓库到本地。
rancher-appstore-default
稍等片刻,同步完成后,就可以切换到任意集群任意 project 下应用商店页面,点击 启动 就可以查看到所有支持的模板应用啦!例如下图显示了所有官方认证支持的模板应用。
rancher-appstore-default-list
可以看到其中有很多熟悉且常用的模板服务,例如一些常用基础服务:docker-registryefkfluentd-aggregatorgrafanaistiokubernetes-dashboardprometheus,还有一些常用数据存储服务:hadoopmariadbmysqlnfs-provisionerredis 等等。注意:这只是 Rancher 维护的官方模板仓库,Kubernetes 维护的模板仓库有更多服务,这里就不在截图列举了,太多了。

4、一键式部署 Prometheus

回到正题,接下来我们就可以通过 Rancher 官方提供的模板来一键式部署 Prometheus。登录 Rancher UI,切换到 my-rancheros 集群下 Default 项目下的应用商店页面,找到 Prometheus 点击 “查看详情” 进入到 Prometheus 配置页面。可以看到 Rancher 默认会将一些可配置信息已经提取出来了,例如 ImageService TypeIngressVolume 等参数,我们可以根据实际应用需要来配置它们。
rancher-appstore-prometheus-config
说明一下:

  • Container ImageUse Default Image 项我选择否,因为默认中有两个镜像,由于墙的问题我本地网络无法获取的到,所以这里需要修改 quay.io/coreos/kube-state-metricshuwanyang168/kube-state-metrics,修改 quay.io/coreos/grafana-watcherhuwanyang168/grafana-watcher,以上两个镜像对应的版本我已经上传到个人 Dockerhub 仓库。
  • Prometheus ServerHostname 我配置 Ingress 负载均衡域名为 my-prometheus.k8s.com,它会自动创建对应 Ingress,方便外部访问。
  • Grafana settingGrafana Admin password 项需要设置一下初始密码,方便登录 UI 页面。Hostname 我配置 Ingress 负载均衡域名为 my-grafana.k8s.com
  • AlertmanagerNodePort Http Port 项我设置为 30005,这样可以直接外部通过 NodePort 方式访问。

一切配置完毕,我们还可以点击预览,选择对应的模板,看下修改配置后的模板文件是怎样的,最后点击 “启动” 就会开始自动部署啦!稍等片刻,拉取镜像会费点时间,如果一切部署正常,在工作负荷、负载均衡、服务发现页面下 prometheus 命令空间下可以看到如下:
rancher-appstore-prometheus-loadblance
rancher-appstore-prometheus-ingress
rancher-appstore-promethues-service-discover
此时,切换到应用商店页面,就可以列举出来我们已经部署的模板服务。
rancher-appstore-install-list
点击应用名称 prometheus 进入到该模板服务详情页面,这里可以看到该服务所有启动的资源以及一些注释说明信息。
rancher-appstore-prometheus-running-status

5、验证 Prometheus + Grafana

5.1、NodePort 方式

最后,我们来验证一下通过模板仓库部署的 Prometheus 服务是否能够正常运行并访问。首先本地通过 NodePort 方式访问一下 Grafana 页面,Grafana 服务自动分配的端口号为 30424,本地访问 http://192.168.99.102:30424 地址,使用上边配置的 Grafana Admin password 登录一下即可。
rancher-appstore-grafana-ui
默认安装的 Grafana 已经配置好了 8 个 Dashboard,涉及到 Deployment、Nodes、Pods、Kubernetes Cluster Status 等监控仪表盘。
rancher-appstore-grafana-dashboard-default
我们选择 Kubernetes Capacity Planning Dashboard 监控一段时间,得到的监控图像如下,妥妥没问题。
rancher-appstore-grafana-dashboard
接下来,本地访问一下 http://192.168.99.102:30773 地址,Prometheus 服务自动分配的端口号为 30773,也是妥妥没有问题的。
rancher-appstore-prometheus-ui
rancher-appstore-prometheus-targets
最后,本地访问一下 http://192.168.99.102:30005 地址,上边 Alertmanager 配置的 NodePort 端口号为 30005,也是妥妥没有问题的。
rancher-appstore-alertmanager-ui

5.2、Ingress Host 方式

上边启动时,我们配置了使用 Ingress 来做 L7 负载均衡,并且配置了 Grafana 服务 Hostname 为 my-grafana.k8s.com,Prometheus 服务 Hostname 为 my-prometheus.k8s.com,那么本地绑定一下 Host 验证一下吧!

$ echo "192.168.99.102 my-grafana.k8s.com my-prometheus.k8s.com" >> /etc/hosts

分别访问一下,妥妥没有问题的。
rancher-appstore-grafana-ingress
rancher-appstore-prometheus-ingress
参考资料

猜你喜欢

转载自blog.csdn.net/aixiaoyang168/article/details/88943136