K8S环境部署Prometheus

K8S环境部署Prometheus

记录在K8S 1.18版本环境下部署Prometheus 0.5版本。

1. 下载kube-prometheus仓库

git clone https://github.com/coreos/kube-prometheus.git
cd kube-prometheus

笔者安装的K8S版本是1.18 ,prometheus选择配套的分支release-0.5:

# 切换到release-0.5
git checkout remotes/origin/release-0.5 -b 0.5

K8S和Pormetheus的配套关系:

kube-prometheus stack Kubernetes 1.14 Kubernetes 1.15 Kubernetes 1.16 Kubernetes 1.17 Kubernetes 1.18
release-0.3
release-0.4
release-0.5
HEAD

最新的版本配套关系查看kube-prometheus官方仓库:https://github.com/prometheus-operator/kube-prometheus ,可以切换版本查看配套关系。

2. 查看manifest

[root@k8s-master kube-prometheus]# cd manifests/
[root@k8s-master manifests]# ll
total 1684
-rw-r--r-- 1 root root     405 Jun 12 16:20 alertmanager-alertmanager.yaml
-rw-r--r-- 1 root root     973 Jun 12 16:20 alertmanager-secret.yaml
-rw-r--r-- 1 root root      96 Jun 12 16:20 alertmanager-serviceAccount.yaml
-rw-r--r-- 1 root root     254 Jun 12 16:20 alertmanager-serviceMonitor.yaml
-rw-r--r-- 1 root root     308 Jun 12 16:22 alertmanager-service.yaml
-rw-r--r-- 1 root root     550 Jun 12 16:20 grafana-dashboardDatasources.yaml
-rw-r--r-- 1 root root 1405645 Jun 12 16:20 grafana-dashboardDefinitions.yaml
-rw-r--r-- 1 root root     454 Jun 12 16:20 grafana-dashboardSources.yaml
-rw-r--r-- 1 root root    7539 Jun 12 16:20 grafana-deployment.yaml
-rw-r--r-- 1 root root      86 Jun 12 16:20 grafana-serviceAccount.yaml
-rw-r--r-- 1 root root     208 Jun 12 16:20 grafana-serviceMonitor.yaml
-rw-r--r-- 1 root root     238 Jun 12 16:22 grafana-service.yaml
-rw-r--r-- 1 root root     376 Jun 12 16:20 kube-state-metrics-clusterRoleBinding.yaml
-rw-r--r-- 1 root root    1651 Jun 12 16:20 kube-state-metrics-clusterRole.yaml
-rw-r--r-- 1 root root    1925 Jun 12 16:20 kube-state-metrics-deployment.yaml
-rw-r--r-- 1 root root     192 Jun 12 16:20 kube-state-metrics-serviceAccount.yaml
-rw-r--r-- 1 root root     829 Jun 12 16:20 kube-state-metrics-serviceMonitor.yaml
-rw-r--r-- 1 root root     403 Jun 12 16:20 kube-state-metrics-service.yaml
-rw-r--r-- 1 root root     266 Jun 12 16:20 node-exporter-clusterRoleBinding.yaml
-rw-r--r-- 1 root root     283 Jun 12 
### 安装和配置 Prometheus 监控系统 #### 准备工作 确保 Kubernetes 集群已经成功搭建并处于正常运行状态。可以通过命令 `kubectl get node` 来验证集群节点的状态[^1]。 #### 使用 Helm 安装 Prometheus Operator 为了简化 Prometheus 及其组件的管理,推荐采用官方提供的 Prometheus Operator 方案来部署监控环境。首先需安装 Helm 并添加稳定仓库: ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update ``` 接着执行如下命令完成 Prometheus 组件的一键式安装: ```bash helm install prometheus prometheus-community/prometheus \ --namespace monitoring \ --create-namespace ``` 这一步骤会创建名为 `monitoring` 的命名空间,并在此空间内部署一组默认配置下的 Prometheus 实例及相关资源对象[^4]。 #### 自定义 ServiceMonitor 和 PodMonitor 资源 对于特定应用的服务发现与数据采集路径定制化需求,可通过编写自定义的 `ServiceMonitor` 或者 `PodMonitor` CRD 对象描述文件实现。例如针对某 Web 应用设置 HTTP GET 请求形式的数据拉取接口: ```yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: example-app-monitor namespace: default spec: selector: matchLabels: app.kubernetes.io/name: webapp endpoints: - port: http-metrics path: /metrics interval: 30s ``` 上述 YAML 文件定义了一个用于监听带有标签 `app.kubernetes.io/name=webapp` 的服务实例上的 `/metrics` URL 地址作为指标端点,每三十秒周期性地发起一次请求获取最新性能统计信息[^3]。 #### 访问 Grafana 控制台界面 Prometheus 默认集成了基于浏览器访问的支持图形展示功能强大的开源可视化工具——Grafana。要查看已收集到的各项 KPI 数据图表表现形式,可以先查询确认 Grafana Deployment 是否存在以及对应的 ClusterIP 类型 Service 名称: ```bash kubectl get deployments --namespace=monitoring ``` 之后利用 NodePort 或 Ingress 罉道建立外部网络可达性的路由映射关系以便于远程登录操作控制面板进行后续仪表盘编辑等工作[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值