单节点K8s上安装Prometheus

目录

[使用 Helm 部署(推荐)](#使用 Helm 部署(推荐))

[1. 安装 Helm](#1. 安装 Helm)

[2. 添加 Prometheus Helm 仓库](#2. 添加 Prometheus Helm 仓库)

[3. 创建命名空间](#3. 创建命名空间)

4.安装

检查外部访问信息

遇到镜像问题


Helm 和Prometheus是什么?

Helm是 Kubernetes 的包管理工具,能极大简化应用的部署和管理。这是最快捷、最省心的方式。就像:

  • Ubuntu 的 APT
  • CentOS 的 YUM

Prometheus开源的监控系统,Kubernetes 集群的"眼睛和耳朵",用于:

  • 收集各种指标(CPU、内存、网络等)
  • 提供查询接口和告警机制
  • 成为监控 Kubernetes 集群的行业标准

具体安装步骤

1. 安装 Helm

如果尚未安装 Helm,可以通过官方脚本安装:

复制代码
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

2. 添加 Prometheus Helm 仓库

Helm 通过"图表"来管理应用,首先需要添加包含 Prometheus 图表的仓库:

复制代码
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

3. 创建命名空间

为监控组件创建一个独立的命名空间,是个好习惯:

复制代码
kubectl create namespace monitoring

重要配置 :默认安装可能不使用持久化存储,这意味着重启后数据会丢失。对于生产环境,建议通过自定义 values.yaml文件启用持久化存储。

4.安装Prometheus

复制代码
helm install my-prometheus-stack prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  --create-namespace \
  --set grafana.service.type=NodePort \
  --set grafana.service.nodePort=30080 \
  --set grafana.adminPassword="admin" \
  --set prometheus.service.type=NodePort \
  --set prometheus.service.nodePort=30090 \
  --set alertmanager.service.type=NodePort \
  --set alertmanager.service.nodePort=30093

检查外部访问信息

安装成功后,查看如何从外部访问:

复制代码
# 获取服务器 IP
SERVER_IP=$(hostname -I | awk '{print $1}')

# 获取 NodePort 端口
kubectl get svc -n monitoring -o jsonpath='{range .items[*]}{.metadata.name}{": http://'$SERVER_IP':"}{.spec.ports[0].nodePort}{"\n"}{end}'

您现在可以先运行helm list -A和 kubectl get pods -n monitoring来了解当前的安装状态。

安装成功后,您可以通过以下地址访问:

  • Grafana : http://<服务器IP>:30080(用户名:admin,密码:admin

  • Prometheus : http://<服务器IP>:30090

  • Alertmanager : http://<服务器IP>:30093

遇到镜像问题

复制代码
#查看状态
kubectl get pods -n monitoring


编辑deployment文件:
kubectl edit deployment prometheus-kube-state-metrics -n monitoring

使用下面镜像加速网站,将源deployement文件中镜像换成加速后的地址重新删除pod,便会自动重新拉去。

https://console.ucloud.cn/

复制代码
编辑deployment文件:
kubectl edit deployment prometheus-kube-state-metrics -n monitoring
获取所有pod:
kubectl get pods -n monitoring
删除pod,会自动重新拉取:
kubectl delete pod -n monitoring prometheus-kube-state-metrics-5b667b7f89-97bhh
重启服务
kubectl rollout restart deployment prometheus-server -n monitoring

检查服务状态:
kubectl get svc -n monitoring
相关推荐
lbb 小魔仙2 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
zhoupenghui1682 天前
Golang pprof 工具详解:监控、压测与调优实战指南
prometheus·pprof
ggaofeng4 天前
prometheus时序数据库
prometheus
A心有千千结8 天前
Nginx网关可观测建设:打通流量入口,加速线上故障诊断
nginx·prometheus·devops
天天喝旺仔8 天前
Prometheus + Grafana 监控告警体系搭建实战:从 Exporter 指标采集、PromQL 查询到 Alertmanager 告警落地
容器·kubernetes·grafana·prometheus·时序数据库
川石课堂软件测试12 天前
涨薪技术|Prometheus之HTTP API中使用PromQL
网络协议·测试工具·jmeter·http·单元测试·postman·prometheus
IT界的老黄牛14 天前
Prometheus TSDB 拆不出来、也存不了一年:4 条外部存储出路 + 容量测算
prometheus·时序数据库·监控·thanos·victoriametrics·remote_write
Ningcode_cloud14 天前
Kubernetes 弹性伸缩实验手册:从集群搭建到 HPA / VPA 自动扩缩容
云原生·k8s·prometheus
2601_9620973615 天前
可观测性实战:Prometheus+Grafana+OTel构建监控
grafana·prometheus·微服务架构·可观测性·opentelemetry
IT界的老黄牛15 天前
Jenkins 监控一条龙:接入、看板 9964、11 条告警规则直接抄走
jenkins·grafana·prometheus·监控·ci-cd·告警规则