prometheus 监控k8s集群

发布于 2022-05-12  18 次阅读


prometheus 监控k8s集群

介绍

名称 配置 版本 系统版本
master 4核8G 1.20.1 centos7.6
node1 2核4G 1.20.1 centos7.6
node2 2核4G 1.20.1 centos7.6
node3 2核4G 1.20.1 centos7.6
prometheus-operator - v0.9.0 -

prometheus-operator下载地址

prometheus-镜像下载地址

prometheus-包下载

镜像下载

下载镜像
docker pull quay.io/prometheus/alertmanager:v0.21.0
docker pull quay.io/prometheus/blackbox-exporter:v0.18.0
docker pull jimmidyson/configmap-reload:v0.5.0
docker pull quay.io/brancz/kube-rbac-proxy:v0.8.0
docker pull grafana/grafana:7.5.4
docker pull bitnami/kube-state-metrics:2.0.0
docker pull quay.io/prometheus/node-exporter:v1.1.2
docker pull ndirectxman12/k8s-prometheus-adapter:v0.8.4
docker pull quay.io/prometheus/prometheus:v2.26.0
docker pull quay.io/prometheus-operator/prometheus-operator:v0.47.0

修改镜像名称
docker tag bitnami/kube-state-metrics:2.0.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0

服务安装

[root@k8s-master ~]# wget https://codeload.github.com/prometheus-operator/kube-prometheus/tar.gz/refs/tags/v0.8.0
[root@k8s-master ~]# tar xf v0.8.0
[root@k8s-master ~]# cd kube-prometheus-0.8.0/manifests

安装prometheus-operator

[root@k8s-master ~]# kubectl apply -f setup/
[root@k8s-master ~]# kubectl get pods -n monitoring # 查看pod全部RUNNING之后再执行后面指令
[root@k8s-master ~]# kubectl apply -f . 
[root@k8s-master ~]# kubectl get pods -n monitoring # 等待podRUNNING

查看custom metrics api

[root@k8s-master ~]# kubectl get apiservices -n monitoring | grep metrics
v1beta1.metrics.k8s.io                 monitoring/prometheus-adapter   True        3h52m

获取prometheus端口

[root@k8s-master ~]# kubectl get svc -n monitoring  | grep NodePort
alertmanager-main       NodePort    10.101.12.122    <none>        9093/TCP               3h50m
grafana                 NodePort    10.109.2.214     <none>        3000/TCP               3h50m
prometheus-k8s          NodePort    10.105.121.223   <none>        9090/TCP               3h50m

配置ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  namespace: monitoring
  labels:
    name: ingress
spec:
  rules:
  - host: grafana.qf.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: grafana
            port: 
              number: 3000
  - host: prometheus.qf.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: prometheus-k8s
            port: 
              number: 9090
  - host: alert.qf.com
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: alertmanager-main
            port: 
              number: 9093

页面展示

prometheus.qf.com
67315bdbc3f9e3b95b615b04851c8f8b21ae512b

alert.qf.com
b78d6d3dbcd1cb02d811393a1c1869b81c8567eb

grafana.qf.com
a5e5369683ed8122eff824dba647a03ca0f7f43d

导入grafana仪表盘

02f5ab5addb2383e0e34f1b5a6d6912fb54b4a9a

仪表盘id 13105 、8919
8ebc9cfb7fd8cd5c536284c9bff8e8751a43fb39

13105
89ab260d150c5e4cb8d54af03a8200d28aa8ba43

8919
b44e0f0855517cc9f8c7e5ad14b9d66a370b8bbe