k8s版本

prometheus


1.14.x

v0.2


1、下载、安装

下载protheus
[root@master protheus]# wget https://github.com/coreos/kube-prometheus/archive/v0.2.0.tar.gz

mkdir prometheus
cd prometheus
[root@master protheus]# tar xf v0.2.0.tar.gz 

[root@master kube-prometheus-0.2.0]# ls
build.sh            examples      jsonnet                Makefile   sync-to-internal-registry.jsonnet
code-of-conduct.md  experimental  jsonnetfile.json       manifests  tests
DCO                 go.mod        jsonnetfile.lock.json  NOTICE     test.sh
docs                go.sum        kustomization.yaml     OWNERS
example.jsonnet     hack          LICENSE                README.md

2、修改配置

#修改grafana配置,添加nodePort
[root@master manifests]# 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

#修改prometheus配置,添加nodePort
[root@master manifests]# 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

#修改grafana deployment
[root@master manifests]# vim grafana-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: grafana
  name: grafana

3、使用国内镜像

[root@master manifests]# pwd
/root/protheus/kube-prometheus-0.2.0/manifests
[root@master manifests]# grep -riE 'quay.io|k8s.gcr|grafana/' *
0prometheus-operator-deployment.yaml:        - --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
0prometheus-operator-deployment.yaml:        - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.33.0
0prometheus-operator-deployment.yaml:        image: quay.io/coreos/prometheus-operator:v0.33.0
alertmanager-alertmanager.yaml:  baseImage: quay.io/prometheus/alertmanager
grafana-deployment.yaml:      - image: grafana/grafana:6.2.2
grafana-deployment.yaml:        - mountPath: /etc/grafana/provisioning/datasources
grafana-deployment.yaml:        - mountPath: /etc/grafana/provisioning/dashboards
kube-state-metrics-deployment.yaml:        image: quay.io/coreos/kube-rbac-proxy:v0.4.1
kube-state-metrics-deployment.yaml:        image: quay.io/coreos/kube-rbac-proxy:v0.4.1
kube-state-metrics-deployment.yaml:        image: quay.io/coreos/kube-state-metrics:v1.7.2
kube-state-metrics-deployment.yaml:        image: k8s.gcr.io/addon-resizer:1.8.4
node-exporter-daemonset.yaml:        image: quay.io/prometheus/node-exporter:v0.18.1
node-exporter-daemonset.yaml:        image: quay.io/coreos/kube-rbac-proxy:v0.4.1
prometheus-adapter-deployment.yaml:        image: quay.io/coreos/k8s-prometheus-adapter-amd64:v0.4.1
prometheus-prometheus.yaml:  baseImage: quay.io/prometheus/prometheus

#镜像如下
quay.io/coreos/configmap-reload:v0.0.1
quay.io/coreos/prometheus-config-reloader:v0.33.0
quay.io/coreos/prometheus-operator:v0.33.0
quay.io/prometheus/alertmanager
quay.io/coreos/kube-rbac-proxy:v0.4.1
quay.io/coreos/kube-rbac-proxy:v0.4.1
quay.io/coreos/kube-state-metrics:v1.7.2
quay.io/prometheus/node-exporter:v0.18.1
quay.io/coreos/kube-rbac-proxy:v0.4.1
quay.io/coreos/k8s-prometheus-adapter-amd64:v0.4.1
quay.io/prometheus/prometheus
grafana/grafana:6.2.2
k8s.gcr.io/addon-resizer:1.8.4
alertmanager:v0.18.0
node-exporter:v0.18.1
prometheus:v2.11.0
grafana:6.2.2
addon-resizer:1.8.4

#使用脚本拉取镜像、改名

vim download.sh
#! /bin/bash
image=( kube-rbac-proxy:v0.4.1 kube-state-metrics:v1.7.2 k8s-prometheus-adapter-amd64:v0.4.1 configmap-reload:v0.0.1 prometheus-config-reloader:v0.33.0 prometheus-operator:v0.33.0 addon-resizer:1.8.4 node-exporter:v0.18.1 k8s-prometheus-adapter-amd64:v0.4.1 grafana:6.2.2 addon-resizer:1.8.4)

cn_regis="registry.cn-beijing.aliyuncs.com/cloud_registry"

for i in ${image[@]} 
do
docker pull $cn_regis/$i
docker tag $cn_regis/$i quay.io/coreos/$i
docker rmi $cn_regis/$i
done

4、安装组件及插件

#安装所有组件及插件
[root@master kube-prometheus-0.2.0]# kubectl apply -f manifests/

[root@master kube-prometheus-0.2.0]# kubectl get svc -n monitoring
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-main       ClusterIP   10.96.59.97      <none>        9093/TCP                     5m2s
alertmanager-operated   ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP   3m42s
grafana                 NodePort    10.106.80.28     <none>        3000:30100/TCP               5m1s
kube-state-metrics      ClusterIP   None             <none>        8443/TCP,9443/TCP            5m1s
node-exporter           ClusterIP   None             <none>        9100/TCP                     5m1s
prometheus-adapter      ClusterIP   10.99.233.37     <none>        443/TCP                      5m
prometheus-k8s          NodePort    10.109.153.215   <none>        9090:30200/TCP               7s
prometheus-operated     ClusterIP   None             <none>        9090/TCP                     3m41s
prometheus-operator     ClusterIP   None             <none>        8080/TCP                     5m2s
[root@master kube-prometheus-0.2.0]# kubectl top node
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   266m         13%    1248Mi          66%       
node01   187m         9%     1400Mi          74%       
node02   224m         11%    1151Mi          61%       
[root@master kube-prometheus-0.2.0]# kubectl get pods -n monitoring
NAME                                   READY   STATUS             RESTARTS   AGE
alertmanager-main-0                    2/2     Running            0          5m51s
alertmanager-main-1                    2/2     Running            0          5m51s
alertmanager-main-2                    2/2     Running            0          5m51s
grafana-598f68c777-bl5r7               1/1     Running            0          7m9s
kube-state-metrics-74894c6cf9-zjv8z    3/4     ImagePullBackOff   0          7m10s //注意镜像
node-exporter-659v6                    2/2     Running            0          7m9s
node-exporter-87n9p                    2/2     Running            0          7m9s
node-exporter-v982s                    2/2     Running            0          7m9s
prometheus-adapter-74fc6495d7-mgmr4    1/1     Running            0          7m9s
prometheus-k8s-0                       3/3     Running            1          5m50s
prometheus-k8s-1                       3/3     Running            1          5m50s
prometheus-operator-579b9fdc44-7qkpm   1/1     Running            0          7m10s

#安装完成后可以访问 prometheus 以及 grafana

http://192.168.100.50:30100/login      //grafana 登陆 admin/admin
http://192.168.100.50:30200/targets    //prometheus targets 登陆  status有很多选项可使用

#prometheus、grafana

k8s 部署prometheus 监控_prometheus 监控 k8s

#grafana添加prometheus源

k8s 部署prometheus 监控_prometheus 监控 k8s_02

五、使用node_exporter 监控node

k8s 部署prometheus 监控_prometheus 监控 k8s_03

#使用ID 导入模板

https://grafana.com/grafana/dashboards/1860-node-exporter-full/  使用ID号

#node_exporter 使用

https://github.com/prometheus/node_exporter#enabled-by-default
https://prometheus.io/docs/guides/node-exporter/

#node节点监控

k8s 部署prometheus 监控_prometheus 监控 k8s_04

#集群监控

k8s 部署prometheus 监控_prometheus 监控 k8s_05

#通过node-exporter 查看可调用监控内容

[root@node01 ~]# curl http://127.0.0.1:9100/metrics | grep -v "#"