kube-prometheus(普罗米修斯)

prometheus(普罗米修斯)

Prometheus github 地址:https://github.com/coreos/kube-prometheus
官方文档:https://prometheus.io/docs/introduction/overview/

1. 组件说明

1)MetricServer:是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如kubectl,hpa,scheduler等。
2)PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。
3)NodeExporter:用于各node的关键度量指标状态数据。
4)KubeStateMetrics:收集kubernetes集群内资源对象数据,制定告警规则。
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输。
6)Grafana:是可视化数据统计和监控平台

2. 构建记录

包含了Grafana

# 1)下载相关配置文件
git clone https://github.com/coreos/kube-prometheus.git
cd kube-prometheus/manifests/

下面是手动方式安装,helm安装更方便,已经下载到本地了,直接上传。
在这里插入图片描述

manifests目录下都是需要部署的所有yaml文件
在这里插入图片描述

需要修改几个yaml文件

# 2) 修改 grafana-service.yaml 文件,使用 nodeport 方式访问 grafana
# vim grafana-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort #添加内容
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 30100 #添加内容
  selector:
    app: grafana

在这里插入图片描述

在这里插入图片描述

# 3)修改 prometheus-service.yaml,改为 nodePort
# vim prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort #添加
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 30200 #添加
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP

在这里插入图片描述

在这里插入图片描述

# 4)修改 alertmanager-service.yaml,改为 nodePort
# vim alertmanager-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort #添加
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 30300 #添加
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP

在这里插入图片描述

在这里插入图片描述

我们看一下grafana-deployment.yaml文件

在这里插入图片描述

看到会去这个地址下载镜像,能否下载成功不一定,所以最好本地上传

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上传给其他节点也执行一遍
在这里插入图片描述

在这里插入图片描述

# 开始执行安装 注意:执行之前必须把promutheus相关镜像导入本地镜像仓库(三个节点都必须导入),当然也可以从网络下载,但是必须解决外网访问的问题。
cd /root/k8s/prometheus/kube-prometheus/manifests
kubectl apply -f . #多运行几遍,以便于查看是否安装成功

进入manifests目录下,执行安装:
在这里插入图片描述

看到报错
在这里插入图片描述

# 找不到命名空间,解决方法如下
#1、直接创建monitoring命令空间
kubectl create namespace monitoring


#2、通过yml文件创建monitoring命令空间
apiVersion: v1
kind: Namespace
metadata:
  name: monitoring
  labels:
    name: monitoring

创建对应namespaces:
在这里插入图片描述

可以多执行几次kubectl apply -f .

在这里插入图片描述

# 查看是否安装成功
kubectl get pod -n monitoring
# 测试监控node节点
kubectl top node
# 测试监控pod
kubectl top pod
# prometheus访问测试
# prometheus 对应的 nodeport 端口为 30200,访问http://MasterIP:30200
# 通过访问http://MasterIP:30200/target可以看到 prometheus 已经成功连接上了 k8s 的 apiserver
# grafana访问测试,添加数据来源:默认已经添加好
# http://10.0.0.11:30100/login 
# admin admin (默认要修改密码)

在这里插入图片描述

grafana还没连上k8s,一旦连上,需要等待一会儿,就会有很多数据:

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41947378/article/details/111664318